Download - COCOMO (2)
COCOMO
Estimate uncertainty
x
2x
4x
0.5x
0.25x
Feasibility Requirements Design Code Delivery
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.
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.
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.
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.
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
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
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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
RefSoftware Engineering 8th ed by Sommerville
Pages 648 to 658