3. COCOMO Model stands for the constructive cost model.
It is developed by Barry W. Boehm.
The model uses a basic regression formula with parameters
that are derived from historical project data and current as
well as future project characteristics.
4. History
It was first published in Boehm's 1981book Software
Engineering Economics.
Cocomo model is used for estimating effort, cost, and
schedule for software projects.
The study examined projects ranging in size from 2,000 to
100,000 line of code.
These projects were based on the Waterfall model.
5. COCOMO Model
COCOMO model have a 3 types , that reflects the
complexity:-
Basic Model
Intermediate Model
Detailed Model
6. Basic COCOMO
Basic COCOMO compute software development effort
(and cost) as a function of program size. Program size is
expressed in estimated thousands of source lines of
code(SLOC,KLOC).
COCOMO applies to three classes of software projects:
Organic projects
Semi-detached projects
Embedded projects
7. Organic projects
"small" teams with "good" experience working with "less
than rigid" requirements
relatively small, simple software projects in which small
teams with good application experience work to a set of
less than rigid requirements
e.g., a thermal analysis program developed for a heat
transfer group
8. Semi-detached projects
"medium" teams with mixed.
Intermediate (in size and complexity) software project in
which teams with mixed experience levels must meet a
mix of rigid and less than rigid requirements .
9. Embedded mode
A software project that must be developed within a set
of tight hardware, software and operational
constraints .
It is also combination of organic & semi-detached
projects.
10. The basic COCOMO equations take
the form
Effort Applied (E) = ab(KLOC)b
b [ person-months]
Development Time (D) = cb(Effort Applied)d
b [months]
People required (P) = Effort Applied / Development
Time [count]
where, KLOC is the estimated number of delivered lines
(expressed in thousands ) of code for project.
KLOC - Kilo lines of code of the project
11. The coefficients ab, bb, cb and db are
given in the following table.
Software Project ab bb cb db
organic 2.4 1.05 2.5 0.38
Semi-
detached
3.0 1.12 2.5 0.35
embedded 3.6 1.20 2.5 0.32
12. Example: consider a software project using semi-
detached mode with 30,000 lines of code . We will
obtain estimation for this project as follows:
(1)Effort estimation
E= ab(KLOC)Exp(bb) person-months
E=3.0(30)1.12
where lines of code = 30000 = 30 KLOC
E=135 person-month
(2) Duration estimation
D = cb(E)Exp(db)months = 2.5(135)0.35
D = 14 months
14. Intermediate COCOMO
Intermediate COCOMO computes software development
effort as function of program size & a set of “cost
drivers”.
This is extension considers a set of four “cost drivers”, each
with a number of subsidiary attributes.
15. The basic model is extended to consider a set of "cost driver
attributes“ that can be grouped into four major categories:
1. Product attributes
a. required software reliability
b. size of application data base
c. complexity of the product
2. Hardware attributes
a. run-time performance constraints
b. memory constraints
c. volatility of the virtual machine environment
d. required turnaround time
16. 3. Personnel attributes
a. analyst capability
b. software engineer capability
c. applications experience
d. virtual machine experience
e. programming language experience
4. Project attributes
a. use of software tools
b. application of software engineering methods
c. required development schedule
17. Each of the 15 attributes is rated on a 6 point scale that
ranges from "very low" to "extra high" (in importance or
value). Based on the rating, an effort multiplier is
determined from tables published by Boehm and the
product of all effort multipliers results is an effort
adjustment factor (EAF). Typical values for EAF range
from 0.9 to 1.4.
18. E = ai(KLOC)bi*EAF
where
E : Effort applied in terms of person-months
KLOC : Kilo lines of code for the project
EAF : It is the effort adjustment factor
19. The values of ai and bi for various
class of software projects are:
Software Project ai bi
organic 3.2 1.05
Semi-detached 3.0 1.12
embedded 2.8 1.20
20.
21. Example:
Consider a project having 30,000 lines of code which in an
embedded software with critical area hence reliability is
high.
The estimation can be
E = ai(KLOC)bi*(EAF) As reliability is high
EAF = 1.15(product attribute)
ai = 2.8 bi = 1.20 for embedded software
E = 2.8(30)1.20 *1.15 = 191 person month
D = cb(E)db = 2.5(191)0.32 = 13 months approx.
N = E/D =191/13 N=15 persons approx.
22. Detailed COCOMO
Detailed COCOMO incorporates all characteristics of
the intermediate version with an assessment of the
cost driver's impact on each step (analysis, design, etc.)
of the software engineering process.
The detailed model uses different effort multipliers for
each cost driver attribute. These Phase Sensitive
effort multipliers are each to determine the amount of
effort required to complete each phase. In detailed
cocomo, the whole software is divided into different
modules and then we apply COCOMO in different
modules to estimate effort and then sum the effort.
23. A Detailed project schedule is never static
The Six phases of detailed COCOMO are:-
planning and requirements
system design
detailed design
module code and test
integration and test
Cost Constructive model