The CoCoMo Model (The Constructive Cost Model)
Tom Rethard based on a presentation by Jim Paulson of Novatel Wireless
COCOMO Outline
Introduction The Basic Model
Equations When You Should Use It Limitations
Intermediate Model Detailed Model
CSE 4310/5392
2
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
CSE 4310/5392
3
COCOMO: Three Models
COCOMO has three different models that reflect the complexity:
the Basic Model the Intermediate Model and the Detailed Model
CSE 4310/5392
4
The Development Modes: Project Characteristics
Organic Mode
Semidetached Mode
developed in a familiar, stable environment, similar to the previously developed projects relatively small and requires little innovation intermediate between Organic and Embedded
Embedded Mode
tight, inflexible constraints and interface requirements The product requires great innovation
CSE 4310/5392
5
COCOMO: Some Assumptions
Primary cost driver is the number of Delivered Source Instructions (DSI) developed by the project COCOMO estimates assume that the project will enjoy good management by both the developer and the customer Assumes the requirements specification is not substantially changed after the plans and requirements phase CSE 4310/5392
6
Basic COCOMO Model
Basic COCOMO model estimates the software development effort using only a single predictor variable (size in DSI) and three software development modes
CSE 4310/5392
7
Basic COCOMO Model: Equations Mode
Effort
Schedule
E=2.4*(KDSI)
1.05
Semidetached E=3.0*(KDSI)
1.12
Embedded
1.20
Organic
CSE 4310/5392
E=3.6*(KDSI)
TDEV=2.5*(E)
0.38
TDEV=2.5*(E)
0.35
TDEV=2.5*(E)
0.32
8
Basic COCOMO Model: When Should You Use It
Basic COCOMO is good for quick, early, rough order of magnitude estimates of software costs
CSE 4310/5392
9
Basic COCOMO Model: Limitations
Its accuracy is necessarily limited because of its lack of factors which have a significant influence on software costs The Basic COCOMO estimates are within a factor of 1.3 only 29% of the time, and within a factor of 2 only 60% of the time
CSE 4310/5392
10
Basic COCOMO Model: An Example
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 CSE 4310/5392
= 10 FSP
11
Intermediate COCOMO Model
The Intermediate Model estimates the software development effort by using fifteen cost driver variables besides the size variable used in Basic COCOMO
CSE 4310/5392
12
Intermediate COCOMO Model
Four areas for drivers
Product itself Computer Personnel Project itself
CSE 4310/5392
13
Intermediate Model: Cost Driver Categories
Product Attributes
RELY --- Required Software Reliability DATA --- Data Base Size CPLX --- Software Product Complexity
CSE 4310/5392
14
Intermediate Model: Cost Driver Categories
Computer Attributes
TIME --- Execution Time Constraint STOR --- Main Storage Constraint VIRT --- Virtual Machine Volatility TURN --- Computer Turnaround Time
CSE 4310/5392
15
Intermediate Model: Cost Driver Categories
Personnel Attributes
ACAP --- Analyst Capability AEXP --- Applications Experience PCAP --- Programmer Capability VEXP --- Virtual Machine Experience LEXP --- Programming Language Experience
CSE 4310/5392
16
Intermediate Model: Cost Driver Categories
Project Attributes
MODP --- Modern Programming Practices TOOL --- Use of Software Tools SCED --- Required Development Schedule
CSE 4310/5392
17
Intermediate Model: Effort Multipliers
Table of Effort Multipliers for each of the Cost Drivers is provided with ranges depending on the ratings Very Very Extra
Cost Driver
CPLX Product Complexity CSE 4310/5392
Low Low Nom High High High
0.70 0.85 1.00 1.15 1.30 1.65 18
Intermediate Model: Equations Mode
Effort
Schedule
Organic
E=EAF*3.2*(KDSI)
1.05
1.12
TDEV=2.5*(E)
1.20
TDEV=2.5*(E)
SemiE=EAF*3.0*(KDSI) detached Embedded E=EAF*2.8*(KDSI) CSE 4310/5392
0.38
TDEV=2.5*(E)
0.35
0.32
19
Intermediate Model: When Should You Use It The Intermediate Model can be applied across the entire software product for easily and rough cost estimation during the early stage or it can be applied at the software product component level for more accurate cost estimation in more detailed CSE 4310/5392
20
Intermediate Model: Limitations
The Intermediate Model estimates are within 20% of the actuals 68% of the time Its effort multipliers are phaseinsensitive It can be very tedious to use on a product with many components
CSE 4310/5392
21
Intermediate Model: An Example Project A is to be a 32,000 DSI semidetached software. It is in a mission critical area, so the reliability is high (RELY=high=1.15). Then we can estimate: Effort = 1.15*3.0*(32)1.12 = 167 man-months Schedule = 2.5*(167)0.35 = 15 months Productivity = 32,000 DSI/167 MM CSE 4310/5392 = 192 DSI/MM
22
Detailed COCOMO Model: How is it Different?
Phase-sensitive Effort Multipliers The effort multipliers for every cost drivers are different during the software development phases
Module-Subsystem-System Hierarchy
The software product is estimated in the three level hierarchical decomposition. The fifteen cost drivers are related to module or subsystem level CSE 4310/5392
23
Detailed COCOMO Model: Module-Subsystem-System
Module level
Subsystem Level
cost drivers tend to vary at the lowest level CPLX, PCAP, VEXP, LEXP cost drivers tend to vary from subsystem to subsystem, but are the same for modules in a subsystem RELY, DATA, TIME, STOR, VIRT
System Level
overall project relations such as nominal effort and schedule equations
CSE 4310/5392
24
Detailed COCOMO Model: Equations
Detailed Model uses the same equations for estimations as the Intermediate Model Detailed Model uses a very complex procedure to calculate estimation. The procedure uses the DSIs for subsystems and modules, and module level and subsystem level effort multipliers as inputs
CSE 4310/5392
25
Detailed COCOMO Model: When Should You Use It?
The Detailed Model can estimate the staffing, cost, and duration of each of the development phases, subsystems, modules It allows you to experiment with different development strategies, to find the plan that best suits your needs and resources
CSE 4310/5392
26
Detailed COCOMO Model: Limitations
Requires substantially more time and effort to calculate estimates than previous models Detailed Model estimates are within 20% of the actuals 70% of the time
CSE 4310/5392
27
Summary
Cost estimation models are not a substitute for a detailed estimate by task by project management Cost estimation models highly depend on the user’s knowledge of application domain, analysis ability and the understanding of the cost model itself The process of meeting the estimate is equally critical to the process of making the estimate
CSE 4310/5392
28
Links
COCOMO II web page can be found at:
sunset.usc.edu/research/COCOMOII/index.html
CSE 4310/5392
29
Questions / Discussion
Issues to discuss: Do you think cost multipliers are project phase dependent like COCOMO’s detailed model suggests? Is cost estimation only suitable for the Waterfall lifecycle, or can it be used with other life cycles, such as incremental? CSE 4310/5392
30
Questions / Discussion
Issues to discuss: Your cost estimate uses three methods which return widely varying results? How do you determine which method is right? What methods or models have you seen used in the workplace? How successful were they? CSE 4310/5392
31
Questions / Discussion
Issues to discuss: Is it possible to estimate the size using soft requirements?
CSE 4310/5392
32