Title: COCOMO
1COCOMO COCOMO 2.0byDeanna B. Legg Barry
Boehm, Bradford Clark, Ellis Horowitz and Chris
Westland1995
- EEL6887 Software Engineering
- Sirisha Budaty
- February 1st 2006
2Reference Sources
- Textbook Software Engineering Project
Management, 2nd ed., edited by Thayer and
Yourdon, IEEE Computer Society, 2000. - pp230 Synopsis of COCOMO", by Deanna B. Legg
- pp270 Cost Modelsfor Future Software Lifecycle
Processes COCOMO 2.0, by Barry Boehm, Bradford
Clark, Ellis Horowitz, Chris Westland, Ray
Madachy and Richard Selby - Safe and simple software cost analysis, by
Boehm, B., Software, IEEEVolume 17, Issue 5,Â
Sept.-Oct. 2000 Page(s)14 17, Digital Object
Identifier 10.1109/52.877854 - http//softstarsystems.com/cocomo2.htm
- http//sunset.usc.edu/research/COCOMOII/Docs/mode
lman.pdf
3What is COCOMO ?
- COCOMO COnstructive COst MOdel
- A software cost estimation method that is based
on a set of empirically derived equations. The
equations incorporate a number of variables
considered to be the major cost drivers of
software development and maintenance. - It is based on the classical waterfall model of
the software life cycle. - System Feasibility
- Software Plans and Requirements
- Software Design
- Programming
- Integration and Test
- Implementation
- Maintenance
4Waterfall Model of Software life cycle
COCOMO provides effort estimation for the
development phase only.
5Definitions and Assumptions
- DSI (Delivered Source Instructions) is the
primary cost driver. The term delivered
excludes non-delivered support software. - PM (Person-Month) A COCOMO person-month
consists of 19 days(152hrs) of working time
(including the average time off due to sick
leave, holidays, and vacation). - The development period covered by COCOMO cost
estimates start at the beginning of the software
design phase and ends at the end of the
integration and test phase. - COCOMO estimates assume that the project will be
managed well by both the developer and the
customer. - COCOMO estimates assume that the requirements
specification does not significantly change after
the plans and requirements phase. - COCOMO should not be used for projects below 2000
DSI, since differences in personnel will tend to
dominate all other effects.
6 Versions of COCOMO
- Basic, used mostly for rough early estimates.
- Intermediate, is the most commonly used version.
- - Incorporates 15 cost drivers to account for
software project cost variations that are not
directly related to project size (i.e., personnel
capability, use of modern tools, hardware
constraints etc) - Detailed, Not used very often
- - accounts for the influence of the different
factors on individual project phases.. - Development Types
- Organic Type
- Relatively small software teams develop familiar
types of software in an in-house environment. - Most of the personnel connected with the project
have previous experience working with related or
similar systems in the organizations. - Embedded Type
- Project may require new technology, unfamiliar
algorithms or an innovative new method of solving
a problem. - Semi-detached Type
- An intermediate stage between organic and
embedded types (i.e., either a mixture of organic
and embedded type or an intermediate level of the
project characteristics).
7Cost Estimation using Basic COCOMO
- Type Effort Schedule
- Organic PM 2.4 (KDSI)1.05 TD 2.5 (PM)0.38
- Semi-Detached PM 3.0 (KDSI)1.12 TD 2.5
(PM)0.35 - Embedded PM 3.6 (KDSI)1.20 TD 2.5 (PM)0.32
- - PM person-month
- KDSI delivered source instructions, in
thousands - TD number of months estimated for software
development - EXAMPLE
- Assumption
- Organic Project with estimated size of 128,000
lines of code. - Effort PM 2.4 (128)1.05 392 person-months
- Productivity 128,000 DSI/392 PM 327 DSI/PM
- Schedule TD 2.5 (392)0.38 24 months
- Avg. Staffing 392 PM/ 24 months 16 PM/TD
-
8Cost Estimation using Intermediate COCOMO
- It is a compatible extension to basic COCOMO.
- It provides great accuracy and level of detail
which makes it more suitable for cost estimations
in the more detailed stages of software product
definition. - The intermediate COCOMO exponents for the three
software development types are the same as Basic
COCOMO, but the coefficients are different. The
Intermediate development schedule is determined
using the Basic COCOMO schedule equations. - Type Effort Schedule
- Organic PM 3.2 (KDSI)1.05 TD 2.5 (PM)0.38
- Semi-Detached PM 3.0 (KDSI)1.12 TD 2.5
(PM)0.35 - Embedded PM 2.8 (KDSI)1.20 TD 2.5 (PM)0.32
9Cost Drivers
- Intermediate COCOMO incorporates 15 predictor
variables called Cost Drivers - These are grouped into 4 categories
- - Software Attributes
- Required Software Reliability (RELY)
- Data Base Size (DATA)
- Software Complexity (CPLX)
- - Personnel Attributes
- Analyst Capability (ACAP)
- Applications Experience (AEXP)
- Programmer Capability (PCAP)
- Virtual Machine Experience (VEXP)
- Programming Language Experience (LEXP)
- - Computer Attributes
- Execution Time Constraint (TIME)
- Main Storage Constraint (STOR)
- Virtual Machine Volatility (VIRT)
- Computer Turnaround Time (TURN)
- - Project Attributes
- Use of Modern Programming Practices (MODP)
- Use of Software Tools (TOOL)
- Schedule Constraint (SCED)
Text pp-240 effort calculation chart
10COCOMO 2.0
- COCOMO failed to estimate cost for the new
processes which include - Non-sequential and rapid-development process
model - Reuse and re-engineering driven approaches
- Object-oriented approaches
- Software process maturity initiatives
- Changes in scaling effects
- Changes in cost drivers
- COCOMO 2.0 was successful in addressing these
issues - COCOMO 2.0 is tuned to modern software life
cycles. - COCOMO 2.0 targets the software projects of the
1990s and 2000s.
11COCOMO 2.0 Objectives
- To develop a software cost and schedule
estimation model tuned to the life cycle
practices of the 1990s and 2000s - To develop software cost database and tool
support capabilities for continuous model
improvement - To provide a quantitative analytic framework
- These objective support
- Project Planning and scheduling
- Project staffing
- Estimates-to-complete
- Project preparation
- Preplanning and rescheduling
- Project tracking
- Contract negotiation
- Proposal evaluation
- Resource leveling
- Concept exploration
- Design evaluation and
- Bid/on-bid decisions
12COCOMO 2.0 Models
- Suitable for projects built with modern
GUI-builder tools. - Based on new Object Points.
- Suitable to get rough estimates of a project's
cost and duration before its entire architecture
is determined.
- Used after the projects overall architecture is
developed.
13COCOMO 2.0 Cost Factors Sizing
- COCOMO 2 Sizing quantities
- Object Points
- Function Points
- Object Point Estimation Procedure
- Estimates the effort involved in Application
Composition and prototyping projects. - Definitions of terms
- NOP New Object Points
- srvr number of server/mainframe data tables
used in conjunction with the screen or Report - Clnt number of client/personal workstation data
tables used in conjunction with the Screen and
Report - reuse the percentage of screens, reports, and
3GL modules reused from previous applications. - OBJECT in Object Points defines screens,
reports, and 3GL modules as objects.
14Object Point Estimation Procedure
Algorithm
- Step1 Assess Object-Counts by estimating the
number of screens, reports and 3GL components of
an application. - Step2 Classify each object instances into
simple, medium and difficult - Step3 Weight the number in each cell using the
following schema
15Object Point Estimation Procedure contd.
- Step4 Determine object point by adding all the
weighted object instances. - Step5 Compute NOP (Object-Points) (100 -
reuse)/100. - Step6 Compute Estimated Person-Month
-
- This process of person-month calculation is
followed for the entire software application and
for each of the components comprising that
application.
PM NOP / PROD
16Cost Estimation using Object Points
- For each component and for the entire software,
estimate the average man-power cost (K/PM) - Compute the dollar cost for each component and
for the entire software as a whole using the
following formula - Add up the software development costs of the
components and compare it with the cost of the
entire software application already obtained. - If the difference between the two costs is
greater than a certain threshold, the whole
process is redone.
K PM (K / PM)
17Function Points
- COCOMO 2.0 model uses Function Points as the
basic for measuring size for the Early Design
stage.
Please refer Presentation Slides of Software
System Size Estimation by Shamik Sengupta.
18 COCOMO 2.0 Reuse Model
- COCOMO 2.0 reuse model is different from original
COCOMO - ESLOC Equivalent source lines of code
- ASLOC adapted source lines of code
- DM percentage of design modification
- CM percentage of code modification
- IM percentage of original integration effort
required for integrating the reused software. - AA percentage of reuse effort due to Assessment
and Assimilation - SU percentage of reuse effort due to Software
Understanding
19COCOMO 2 Cost Factors Scaling
- Software cost estimation models often have
exponential factor to account for the relative
economies or diseconomies of scale encountered as
a software project increase its size. - Effort A (Size)B
- The value of coefficient A is provisionally set
at 3.0 for COCOMO 2.0 - The scaling factor (B) adds two factors
precedentedness and flexibility, to account for
the mode effects in the original COCOMO. - Also adds Team Cohesiveness factor to account for
the diseconomy-of-scale effects on software
projects. - A projects numerical ratings Wi are summed
across all the factors, and used to determine a
scale exponent B - B 0.91 0.01 Sum (Wi)
From Ref4
20Tools
- Leading COCOMO 2.0 based Software Cost-Estimation
Tools - These URLs provide descriptions of leading
software cost-estimation tools. Each tool cited
has been backed by a lot of effort to relate the
tool to a wide variety of software project
experiences. - COSTAR (Softstar Systems) www.softstarsystems.com
- - Software project managers use Costar to produce
estimates of a project's duration, staffing
levels, effort, and cost . - CostXpert (Marotz, Inc.) www.costxpert.com
- Cost Xpert is a cost estimating software
development process tool. - COCOTS is a model complementary to COCOMO 2.0
21Summary
- Software cost estimation
- Performed at the beginning of the projects
- performed by project managers
- Project manager should go through extensive
training - Methods to support cost estimation
- basic COCOMO
- Intermediate COCOMO
- COCOMO 2.0
- COCOMO 2.0 more successful for processes tuned to
the life cycle practices of the 1990s and 2000s - Cost estimation method supported by COCOMO 2.0
applies directly to CMM level 2