cocomo (2)

21
COCOMO

Upload: anirbansur

Post on 21-Jul-2016

22 views

Category:

Documents


2 download

DESCRIPTION

COCOMO

TRANSCRIPT

Page 1: COCOMO (2)

COCOMO

Page 2: COCOMO (2)

Estimate uncertainty

x

2x

4x

0.5x

0.25x

Feasibility Requirements Design Code Delivery

Page 3: COCOMO (2)

The COCOMO modelAn empirical model based on project experience.Well-documented, ‘independent’ model which is

not tied to a specific software vendor.Long history from initial version published in

1981 (COCOMO-81) through various instantiations to COCOMO 2.

COCOMO 2 takes into account different approaches to software development, reuse, etc.

Page 4: COCOMO (2)

COCOMO 81Project

complexity Formula Description

Simple PM = 2.4 (LOC)1.05 M Well-understood applications developed by small teams.

Moderate PM = 3.0 (LOC)1.12 M More complex projects where team members may have limited experience of related systems.

Embedded PM = 3.6 (LOC)1.20 M Complex projects where the software is part of a strongly coupled complex of hardware, software, regulations and operational procedures.

Page 5: COCOMO (2)

COCOMO 2COCOMO 81 was developed with the

assumption that a waterfall process would be used and that all software would be developed from scratch.

Since its formulation, there have been many changes in software engineering practice and COCOMO 2 is designed to accommodate different approaches to software development.

Page 6: COCOMO (2)

COCOMO 2 modelsCOCOMO 2 incorporates a range of sub-models

that produce increasingly detailed software estimates.

The sub-models in COCOMO 2 are:Application composition model. Used when software is

composed from existing parts.Early design model. Used when requirements are

available but design has not yet started.Reuse model. Used to compute the effort of integrating

reusable components.Post-architecture model. Used once the system

architecture has been designed and more information about the system is available.

Page 7: COCOMO (2)

7

Feasibility

Concept ofOperation

Rqts.Spec.

Plansand

Rqts.

ProductDesign

ProductDesignSpec.

DetailDesignSpec.

DetailDesign

Devel.and Test

AcceptedSoftware

Phases and Milestones

RelativeSize Range x

4x

2x

1.25x

1.5x

0.25x

0.5x ApplicationsComposition

(3 parameters)

Early Design(13 parameters)

Post-Architecture(23 parameters)0.67x

0.8x

COCOMO II Model Stages

Page 8: COCOMO (2)

Use of COCOMO 2 modelsNumber of application

points

Application composition

model

Prototype system

developed using scripting,

DB programming

etc.

Based on Used for

Number of function points

Early design model

Initial effort estimation based on

requirements and design

options

Based on Used for

Number of lines of code

reused or generated

Reuse model

Effort to integrate reusable

components or automatically

generated code

Based on Used for

Number of lines of source

code

Post-architecture

model

Development effort based on system design specification

Based on Used for

Page 9: COCOMO (2)

Application composition modelSupports prototyping projects and projects where

there is extensive reuse.Based on standard estimates of developer

productivity in application (object) points/month.Takes CASE tool use into account.Formula is

PM = ( NOP (1 - %reuse/100 ) ) / PRODPM is the effort in person-months, NAP is the number of

application points and PROD is the productivity.

Page 10: COCOMO (2)

Object point productivity

Developer’s experience and capability

Very low Low Nominal High Very high

ICASE maturity and capability

Very low Low Nominal High Very high

PROD (NOP/month) 4 7 13 25 50

Page 11: COCOMO (2)

Early design modelEstimates can be made after the

requirements have been agreed.Based on a standard formula for algorithmic

modelsPM = A SizeB M whereM = PERS RCPX RUSE PDIF PREX

FCIL SCED;A = 2.94 in initial calibration, Size in KLOC, B

varies from 1.1 to 1.24 depending on novelty of the project, development flexibility, risk management approaches and the process maturity.

Page 12: COCOMO (2)

MultipliersMultipliers reflect the capability of the

developers, the non-functional requirements, the familiarity with the development platform, etc.RCPX - product reliability and complexity;RUSE - the reuse required;PDIF - platform difficulty;PREX - personnel experience;PERS - personnel capability;SCED - required schedule;FCIL - the team support facilities.

Page 13: COCOMO (2)

The reuse modelTakes into account black-box code that is

reused without change and code that has to be adapted to integrate it with new code.

There are two versions:Black-box reuse where code is not modified. An

effort estimate (PM) is computed.White-box reuse where code is modified. A size

estimate equivalent to the number of lines of new source code is computed. This then adjusts the size estimate for new code.

Page 14: COCOMO (2)

Reuse model estimates 1For generated code:

PM = (ASLOC * AT/100)/ATPRODASLOC is the number of lines of generated codeAT is the percentage of code automatically

generated.ATPROD is the productivity of engineers in

integrating this code. Boehm measured ATPROD to be about 2400 LOC

Example: If there is 20,000 lines of white-box reused code in a system

and 30% of this is automatically generated, then the effort required to integrate this generated code is as follows:

PM = (20000 * 30/100) / 2400 = 2.5 man-month.

Page 15: COCOMO (2)

Reuse model estimates 2When code has to be understood and integrated:

ESLOC = ASLOC * (1-AT/100) * AAM.ASLOC and AT as before.AAM is the adaptation adjustment multiplier is the of

the costs of changing the reused code (AAF), the costs of understanding how to integrate the code (SU) and the costs of reuse decision making assessment (AA). AMM = AAF + SU + AA SU = 50 complex unstructured code SU = 10 for well written OO code AA = 0 to 8 depending on the amount of analysis effort

required

Page 16: COCOMO (2)

Post-architecture levelUses the same formula as the early design

model but with 17 rather than 7 associated multipliers.

PM = A SizeB MThe code Size is estimated as:

LOC: Number of lines of new code to be developed;

ESLOC: Estimate of equivalent number of lines of new code computed using the reuse model;

An estimate of the number of lines of code that have to be modified according to requirements changes.

Page 17: COCOMO (2)

The exponent term, B

This depends on 5 scale factors (see next slide). Their sum/100 is added to 1.01

A company takes on a project in a new domain. The client has not defined the process to be used and has not allowed time for risk analysis. The company has a CMM level 2 rating.Precedenteness - new project (W1=4)Development flexibility - no client involvement - Very

high (W2=1)Architecture/risk resolution - No risk analysis - V. Low .

(W3=5)Team cohesion - new team - nominal (W4=3)Process maturity - some control - nominal (W5=3)

Scale factor is therefore 1.17.

Page 18: COCOMO (2)

Exponent scale factorsPrecedentedness Reflects the previous experience of the organisation with this type of

project. Very low means no previous experience, Extra high meansthat the organisation is completely familiar with this applicationdomain.

Developmentflexibility

Reflects the degree of flexibility in the development process. Verylow means a prescribed process is used; Extra high means that theclient only sets general goals.

Architecture/riskresolution

Reflects the extent of risk analysis carried out. Very low means littleanalysis, Extra high means a complete a thorough risk analysis.

Team cohesion Reflects how well the development team know each other and worktogether. Very low means very difficult interactions, Extra highmeans an integrated and effective team with no communicationproblems.

Process maturity Reflects the process maturity of the organisation. The computationof this value depends on the CMM Maturity Questionnaire but anestimate can be achieved by subtracting the CMM process maturitylevel from 5.

Page 19: COCOMO (2)

Multipliers, MA total of 17 attributes are multiplied to compute

M. These attributes fall in the following categories

Product attributes Concerned with required characteristics of the software product

being developed.Computer attributes

Constraints imposed on the software by the hardware platform.Personnel attributes

Multipliers that take the experience and capabilities of the people working on the project into account.

Project attributes Concerned with the particular characteristics of the software

development project.

Page 20: COCOMO (2)

Effects of cost driversExponent value 1.17System size (including factors for reuseand requirements volatility)

128, 000 DSI

Initial COCOMO estimate withoutcost drivers

730 person-months

Reliability Very high, multiplier = 1.39Complexity Very high, multiplier = 1.3Memory constraint High, multiplier = 1.21Tool use Low, multiplier = 1.12Schedule Accelerated, multiplier = 1.29Adjusted COCOMO estimate 2306 person-months

Reliability Very low, multiplier = 0.75Complexity Very low, multiplier = 0.75Memory constraint None, multiplier = 1Tool use Very high, multiplier = 0.72Schedule Normal, multiplier = 1Adjusted COCOMO estimate 295 person-months

Page 21: COCOMO (2)

RefSoftware Engineering 8th ed by Sommerville

Pages 648 to 658