CIS210: Software Engineering and Development
Empirical Estimation Models
1. Software Project Estimation
Software project estimation is necessary to achieve reliable cost and effort prediction. A project estimation method usually involves the following steps:
- identify the project scope
- perform project decomposition
- compute the empirical metrics KLOC and/or FP
- apply an empirical model to obtain estimates of
software cost, effort and duration
- use for comparison automated estimation tools (optional)
The contemporary software projects are usually extremely large,
and require decomposition and recharacterization as a set of smaller,
more manageable subproblems.
The decomposition techniques take the "divide and conquer" approach
to software project estimation. Software estimation activities can be
performed in a stepwise fashion when the project is decomposed in
major functions and related tasks.
The expected values for KLOC and FP can be computed as follows:
E = ( a + 4 m + b ) / 6
where: a is the optimistic value
m is the most likely value
b is the pessimistic value
2. Empirical Estimation Models
An estimation model for computer software uses empirically derived
formulas to predict effort as a function of LOC or FP.
2.1. Structure of the Estimation Models
E = A + B * ( ev )C
where: E is effort in person-months
A, B, and C are empirically derived constants
ev is the estimated variable (LOC or FP).
2.2. Concrete Estimation Models
LOC oriented models
E = 5.2 * ( KLOC )0.91 Walston-Felix model
E = 5.5 + 0.73 * ( KLOC )1.16 Bailey-Basili model
E = 3.2 * ( KLOC )1.05 Boehm simple model
E = 5.288 * ( KLOC )1.047 Doty model
FP oriented models
E = -13.39 + 0.0545 * FP Albrecht and Gaffney model
E = 60.62 * 7.728 * 10-8 * FP3 Kemerer model
E = 585.7 + 15.12 FP Matson, Barnett, Mellichamp
6.3. The COCOMO Models: Constructive Cost MOdels
The COCOMO model is an hierarchy of models as follows:
Model 1: The Basic COCOMO model- computes software
development effort and cost as a function of program
size expressed in estimated lines of code.
Model 2: The Intermediate COCOMO -computes software
development effort and cost as a function of program
size and a set of cost drivers that include subjective
assessments of product, hardware, personel, and
project attributes.
Model 3: The Advanced COCOMO model- incorporates all
characteristics of the intermediate model with an
assessment of the impact on each step of the software
development process.
The COCOMO can be applied to three different
kinds of software project classes:
- organic mode projects: small, simple projects developed by
small teams of software engineers, that work with
less than rigid requirements;
- semi-detached mode projects: medium in size and complexity
projects, developed by teams with mixed experience,
that work with mixed requirements;
- embedded mode projects: projects that have to be developed
under tight hardware and software constraints.
Model 1: The Basic COCOMO equations have the following form:
E = ab * ( KLOC )exp( bb )
D = cb *( E )exp( db )
where: E is effort in person-months
D is development time in chronological months
the coefficients are given in the table below:
Project class / ab / bb / cb / dborganic / 2.4 / 1.05 / 2.5 / 0.38
semidetached / 3.0 / 1.12 / 2.5 / 0.35
embedded / 3.6 / 1.20 / 2.5 / 0.32
Example: Let the expected size of a semidetached software project
is 33.3 KLOC. Using the coefficients in the above table, the
BasicCOCOMO estimates can be produced as follows:
E = ab * ( KLOC )exp( bb )
= 3.0 * ( 33.3 )exp( 1.12 )
= 3.0 * 33.31.12
= 152 [person-months]
D = cb *( E )exp( db )
= 2.5( 152 )exp( 0.35 )
= 2.5*1520.35
= 14.5 [months]
The recommended number of people is:
N = E / D
= 152 / 14.5
= 11 [people]
Model 2: The Intermediate COCOMO equation takes the form:
E = ai * ( LOC )exp( bi ) * EAF
where: E is effort in person-months
EAF is error adjustment factor [0.9 ¸ 1.4] determined with
respect to cost driver attributes (given in a table)
the coefficients are given in the table below:
Project class / ai / biorganic / 3.2 / 1.05
semidetached / 3.0 / 1.12
embedded / 2.8 / 1.20
Web Resources:
http://sunset.usc.edu/research/COCOMOII/index.html