COCOMO for Cost Estimation
The Standish Group Example • The Standish Group’s reports on project management chaos contain some of the most respected statistics about software project failures. According to the Standish group, the average project exceeds its budget by 90%, and its schedule by 120%. Furthermore, over 30% of projects are cancelled before completion. In the United States alone, this represents about $100 billion in wasted money per year. (http://www.standishgroup.com)
General • Accurately forecasting how much time and effort it will take to develop a system, or to take a specific set of changes is one of the biggest challenges in SE. • Although a lot of projects underestimated the cost they needed, cost estimation is still necessary for a new project.
Types of Cost • Time: The difference in time from the start date to the end date of a project. This is called elapsed time. • Effort: Also called development effort. This is the amount of labor needed for a project. Effort is expressed in person-months mostly.
From Effort to Money 1. Find the average salary in the company. 2. Calculate the weighted average cost by multiplying the average salary by a weight, determined from the expenses on employees (the number is usually between 2 and 3). 3. Cost of the project = effort * weighted average cost
COCOMO • Constructive Cost Model (COCOMO) proposed by Barry Boehm. • It is a cost estimation model that considers the complexity of a project: – Organic – Semidetached – embedded
Organic • In the organic mode, relatively small software teams develop software in a highly familiar, in-house environment. Most people connected with the project have extensive experience in working with related systems within the organization, and have a thorough understanding of how the system under development will contribute to the organizations objectives. Very few organic-mode projects have developed products with more than 50 thousand delivered source instructions (KDSI).
Semidetached • The semidetached mode of software development represents an intermediate stage between the organic and embedded modes. "Intermediate" may mean either of two things: 1.An intermediate level of project characteristic. 2.A mixture of the organic and embedded mode characteristics.
• The size range of a semidetached mode product generally extends up to 300 KDSI.
Embedded • The major distinguishing factor of an embedded-mode software project is a need to operate within tight constraints. The product must operate within (is embedded in) a strongly coupled complex of hardware, software, regulations, and operational procedures, such as an electronic funds transfer system or an air traffic control system.
Basic COCOMO • Basic COCOMO model estimates the software development effort using only a single predicator variable (size in DSI) and three software development modes. Development Mode
Effort Equation
Schedule Equation
Organic
E=2.4*(KDSI)^1.05
TDEV=2.5*(E)^0.38
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 • Basic COCOMO is good for quick, early, rough order of magnitude estimates of software costs, but its accuracy is necessarily limited because of its lack of factors which have a significant influence on software costs.
An Example • Project A is to be a 32,000 DSI semi-detached software. Then we can estimate: – Effort = 3.0*(32)^1.12 = 146 person months – Productivity = 32,000 DSI/ 146 PM = 219 DSI/PM – Schedule = 2.5*(146)^0.35 = 14 months – Average staffing = 146 pm/ 14 months = 10 Persons
Intermediate COCOMO • The Intermediate COCOMO estimates the software development effort by using 15 cost driver variables besides the side variable used in Basic COCOMO. • The Intermediate COCOMO can be applied across the entire software product for easily and roughly cost estimation during the early stage, or be applied at the software product component level for more accurate cost estimation in more detailed stages.
Intermediate COCOMO • The Intermediate COCOMO uses an Effort Adjustment Factor (EAF) and slightly different coefficients for the effort equations than the Basic COCOMO. • The EAF is simply the product of the Effort Multipliers corresponding to each of the cost drives for the target product.
Intermediate COCOMO Development Mode Effort Equation
Schedule Equation
Organic
E=EAF*3.2*(KDSI)^1.05
TDEV=2.5*(E)^0.38
Semidetached
E=EAF*3.0*(KDSI)^1.12
TDEV=2.5*(E)^0.35
Embedded
E=EAF*2.8*(KDSI)^1.20
TDEV=2.5*(E)^0.32
EAF Features – Product attributes • Required software reliability(RELY)—The extent to which the software product must perform its intended functions satisfactorily over a period of time. • Database size(DATA)—The degree of the total amount of data to be assembled for the database. • Product complexity(LX)—The level of complexity of the product to be develop.
EAF Features – Computer attributes • Execution time constraint(TIME)—The degree of the execution constraint imposed upon a software product. • Main storage constraint(STOR)—The degree of main storage constraint imposed upon a software product. • Virtual machine volatility(VIRT)—The level of the virtual machine underlying the product to be developed. • Computer turnaround time(TURN)—The level of computer response time experienced by the project team developing the product.
EAF Features – Personal attributes • Analyst capability(ACAP)—The level of capability of the analysts working on a software product. • Applications experience(AEXP)—The level of applications experience of the project team developing the software product. • Programmer capability(PCAP)—The level of capability of the programmers working on the software product. • Virtual machine experience(VEXP)—The level of virtual machine experience of the project team developing the product. • Programming language experience(LEXP)—The level of programming language experience of the project team developing the product.
EAF Features – Project attributes • Use of modern programming practices—(MODP)The degree to which modern programming practices are used in developing software product. • Use of software tools(TOOL)—The degree to which software tools are used in developing the software product. • Required development schedule(SCED)—The level of schedule constraint imposed upon the project team developing the software product.
EAF Rating Cost Drivers
Very Low
Low
Nominal
High
Very High
RELY
0.75
0.88
1.00
1.15
1.40
0.94
1.00
1.08
1.16
0.85
1.00
1.15
1.30
1.65
TIME
1.00
1.11
1.30
1.66
STOR
1.00
1.06
1.21
1.56
DATA LX
0.70
VIRT
0.87
1.00
1.15
1.30
TURN
0.87
1.00
1.07
1.15
ACAP
1.46
1.19
1.00
0.86
0.71
AEXP
1.29
1.13
1.00
0.91
0.82
PCAP
1.42
1.17
1.00
0.86
0.70
VEXP
1.21
1.10
1.00
0.90
LEXP
1.14
1.07
1.00
0.95
MODP
1.24
1.10
1.00
0.91
0.82
TOOL
1.24
1.10
1.00
0.91
0.83
SCED
1.23
1.08
1.00
1.04
1.10
Extra High
An Example • Project B is in embedded mode and estimated to be 10,000 delivered source instructions in length. Its EAF is as: Cost Drivers – – – – – – – – – – – – – – –
RELY DATA LX TIME STOR VIRT TURN ACAP AEXP PCAP VEXP LEXP MODP TOOL SCED
1.15 0.94 1.30 1.11 1.06 1.00 1.00 0.86 1.00 0.86 1.10 1.00 0.91 1.10 1.00
An Example • Nominal Effort = 2.8*(10)^1.20 = 44 personmonths • The product of the multipliers = 1.15*…*1.00 = 1.35 • The estimated effort = 1.35*44 = 59 personmonths
Detailed COCOMO • The Detailed COCOMO differs from the Intermediate COCOMO in two aspects: – Phase sensitive effort multipliers • The effort multipliers for every cost drivers are different during the software development phases. These multipliers are used to determine the amount of effort required to complete each phase.
– The Module-Subsystem-System Hierarchy • The Software product is estimated in the three level hierarchical decomposition. The 15 EAF are related to module or subsystem level.
Detailed COCOMO • Module Level Cost Drivers – LX, PCAP, VEXP, LEXP
• Subsystem Level Cost Drivers – RELY, DATA, TIME, STOR, VIRT… – The subsystem level cost drivers vary from subsystem to subsystem, but tend to be the same for all the modules within a subsystem.
Detailed COCOMO • The Detailed COCOMO uses the same equations for estimation as the Intermediate COCOMO. • Detailed Model uses a very complex procedure to estimate the cost of the product. The procedure uses the DSIs for subsystems and modules, and module level and subsystem level effort multipliers as inputs. • The Detailed COCOMO can estimate the staffing, cost, and duration of each of the development phases, subsystems, modules—allowing you to experiment with different development strategies, to find the plan that best suits your needs and resources.
Summary for COCOMO • All the cost models are adjunct to, not substitute for, a detailed estimate by task by the project management. • All the cost estimation models highly depends on the ’s knowledge of application domain, analysis ability and understanding of the cost model itself. • The process of meeting the estimate is equally critical to the process of making the estimate.