COCOMO Model
Basic
The Constructive Cost Model
(COCOMO)
⚫ COCOMO is one of the most widely used software
estimation models in the world
⚫ It was developed by Barry Boehm in 1981
⚫ COCOMO predicts the effort and schedule for a
software product development based on inputs
relating to the size of the software and a number of
cost drivers that affect productivity
COCOMO Models
⚫ COCOMO has three different models that
reflect the complexity:
⚫ the Basic Model
⚫ the Intermediate Model
⚫ and the Detailed Model
Basic Model
⚫ Applicable to small to medium sized software
projects
⚫ Use for a quick and rough estimates
⚫ Three modes of software development are
considered
⚫ Organic
⚫ Semi-detached
⚫ Embedded
Organic Mode
⚫ A small team of experienced programmers
develop software in a very familiar
environment
⚫ Require little Innovation
⚫ Size range ( 0-50 KLOC)
Semi-detached mode
⚫ An intermediate mode between the organic
mode and embedded mode
⚫ Depending on the problem at hand, the team
include the mixture of experienced and less
experienced people
⚫ Require medium Innovation
⚫ Development environment is medium
⚫ Size range ( 50 - 300 KLOC)
Embedded mode
⚫ Project has tight constraints
⚫ Hard to find experienced persons
⚫ Require significant Innovation
⚫ Development environment is complex
⚫ Size range ( over 300 KLOC)
COCOMO:
Some Assumptions
⚫ Primary cost driver is the number of
Delivered Source Instructions (DSI) /
Delivered Line Of Code developed by the
project
⚫ COCOMO estimates assume that the project
will enjoy good management by both the
developer and the customer
Basic COCOMO Model:
Formula
The basic COCOMO equation
⚫ E= ab (KLOC or KDSI) bb (person-month, 1 month of effort by one person)
⚫ D= cb (E) db (months)
⚫ P=E/D (persons) where
⚫ E is the effort applied in person-months,
⚫ D is the development time in months,
⚫ KLOC / KDSI is the estimated number of
delivered lines of code for the project (expressed
in thousands)
⚫ P is the number of people required and
⚫ ab, bb, cb and db are coefficients given in next slide.
Constant values
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
Basic COCOMO Model:
Equation
Mode Effort Schedule
1.05 0.38
Organic E=2.4*(KDSI) TDEV=2.5*(E)
Semidetached E=3.0*(KDSI)1.12 TDEV=2.5*(E)0.35
Embedded E=3.6*(KDSI)1.20 TDEV=2.5*(E)0.32
Basic COCOMO Model:
Example
E.g. 2: We have determined our project fits the characteristics of
Semi-Detached mode
⚫ We estimate our project will have 32,000 Delivered Source
Instructions. Using the formulas, we can estimate:
⚫ Effort = 3.0*(32) 1.12 = 146 man-months
⚫ Schedule = 2.5*(146) 0.35 = 14 months
⚫ Productivity = 32,000 DSI / 146 MM
= 219 DSI/MM
⚫ Average Staffing = 146 MM /14 months
= 10 FSP
Basic COCOMO Model:
Example
E.g.1: Suppose that a project was estimated to be 400 KLOC.
Calculate the effort and development time for each of the three
modes I.e., organic, semidetached and embedded
The basic COCOMO equation take the form:
E = ab(KLOC) bb
D = cb(E) db
Basic COCOMO Model:
Example cont…
E = ab(KLOC)bb
D = Cb(E)db
Organic Mode E = 2.4(400)1.05 = 1285.31 PM
D = 2.5(1285.31)0.38 =38.07 M
Semidetached Mode E = 3.0(400)1.12 = 2462.79 PM
D = 2.5(2462.79)0.38 =38.45 M
Embedded Mode E = 3.6(400)1.20 = 4772.81 PM
D = 2.5(2462.79)0.32 = 38 M
Another 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
(3)Person estimation
P=E/D
=135/14
P=10 persons approx.
Limitations of Basic COCOMO Model :
1.The accuracy of this model is limited because it
does not consider certain factors for cost estimation of
software.
2. These factors are hardware constraints, personal
quality and experiences, modern techniques and
tools.
3. The estimates of COCOMO model are within a
factor of 1.3 only 29% of the time.
Intermediate COCOMO
1. The Intermediate COCOMO is an extension
of the “Basic COCOMO“ model,
2. It estimates the programmer time to develop
a software product.
3. This extension considers a set of four "cost
driver attributes", each with a number of
subsidiary attributes:
Intermediate COCOMO Contd.
⚫ Product attributes
⚫ Required software reliability
⚫ Size of application database
⚫ Complexity of the product
⚫ Hardware attributes
⚫ Run-time performance constraints
⚫ Memory constraints
⚫ Volatility of the virtual machine environment
⚫ Required turnabout time
Intermediate COCOMO Contd.
⚫ Personnel attributes
⚫ Analyst capability
⚫ Software engineer capability
⚫ Applications experience
⚫ Virtual machine experience
⚫ Programming language experience
⚫ Project attributes
⚫ Use of software tools
⚫ Application of software engineering methods
⚫ Required development schedule
Intermediate COCOMO Contd.
1. Each of the 15 attributes receives a rating on a
6-point scale that ranges from "very low" to
"extra high" (in importance)
2. Based on the rating, effort multipliers is
determined. The product of all effort Multipliers
result in “effort adjustment factor” (EAF).
3. Typical values for EAF range from 0.9 to 1.4.
The Intermediate Cocomo formula now takes the
form...
➢ E=ai (KLOC)^(bi)*EAF
➢ E is the effort applied in person-months
➢ KLOC is kilo lines of code for the project
➢ EAF is the effort adjustment factor
➢ The coefficient ai and the exponent bi are given in the
next table.
Intermediate COCOMO Contd.
Project ai bi
Organic 3.2 1.05
Semi-detached 3.0 1.12
Embedded 2.8 1.20
The duration and person estimate is same as in basic
Cocomo model i.e;
D=cb(E)Exp (db) months i.e; use values of cb and db
coefficients
P=E/D persons
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 approximately
P=E/D
=191/13
P=15 persons approx.
COCOMO II
⚫ Revised version of the original COCOMO
⚫ Developed at University of Southern California under the leadership
of Dr. Barry Boehm
⚫ Categories of application/project identified by COCOMO II
⚫ End User Programming
⚫ Infrastructure Sector
⚫ Intermediate Sectors
Levels of COCOMO II
⚫ 3 level model that allows increasingly detailed estimates to be
prepared as development progresses
⚫ Early prototyping level/ Application composition
Use for Application composition projects
Estimates based on object points and a simple formula is used for
effort estimation
⚫ Early design level
Use for Application generators, infrastructure & system integration
projects
Estimates based on function points that are then translated to
LOC
⚫ Post-architecture level
Use for Application generators, infrastructure & system integration
projects
Estimates based on lines of source code