Lecture 27: Project Estimation Techniques - Empirical (COCOMO)
Unit 4: Software Project Management (4353202)
Lecture Agenda
- Recap of Size Estimation Metrics
- Introduction to Project Estimation Techniques
- What is Empirical Estimation?
- The COCOMO Model (Constructive Cost Model)
- COCOMO Project Types
- Basic COCOMO Model
- Intermediate COCOMO Model
- Key Takeaways
Recap of Size Estimation Metrics
We discussed LOC (Lines of Code) and Function Points (FP) as metrics for estimating software size. LOC is simple but language-dependent, while FP is language-independent and focuses on functionality.
Introduction to Project Estimation Techniques
Project estimation techniques are methods used to predict the effort, cost, and schedule required to develop a software project. These techniques are crucial for effective project planning and management.
They help answer questions like: How much will it cost? How long will it take? How many people do we need?
What is Empirical Estimation?
Empirical estimation techniques are based on historical data and expert judgment. They use formulas derived from past projects to predict the characteristics of new projects.
These models are often statistical and rely on the assumption that past trends can predict future outcomes.
The COCOMO Model (Constructive Cost Model)
COCOMO is one of the most widely used empirical estimation models. It was developed by Barry Boehm in 1981 and provides a hierarchical approach to software cost estimation.
COCOMO estimates effort (person-months), development time, and staffing levels based on the estimated size of the software (typically in KLOC - thousands of Lines of Code).
COCOMO Project Types
COCOMO classifies projects into three types based on their characteristics, which influence the effort and time required:
- Organic Mode: Relatively small, simple projects with experienced teams working in a familiar environment. (e.g., business applications)
- Semi-Detached Mode: Intermediate projects with mixed experience teams, some strict and some less strict requirements. (e.g., operating system utilities, database management systems)
- Embedded Mode: Complex projects with tight constraints, requiring high innovation and strict adherence to specifications. (e.g., real-time systems, flight control software)
Basic COCOMO Model
The Basic COCOMO model provides a quick, rough estimate of software development effort and cost. It uses a single formula based on the estimated size of the software (KLOC) and the project type.
Formulas:
- Effort (E) = a * (KLOC)^b (in Person-Months)
- Development Time (D) = c * (Effort)^d (in Months)
| Project Type | a | b | c | d |
|---|---|---|---|---|
| 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 Example
Estimate effort and time for an Organic project of 50 KLOC.
- For Organic: a=2.4, b=1.05, c=2.5, d=0.38
- KLOC = 50
Effort (E) = 2.4 * (50)^1.05
E = 2.4 * 65.79 ≈ 157.9 Person-Months
Development Time (D) = 2.5 * (157.9)^0.38
D = 2.5 * 7.06 ≈ 17.65 Months
Intermediate COCOMO Model
The Intermediate COCOMO model refines the Basic COCOMO by introducing 15 "cost drivers" (also called effort multipliers). These factors account for various attributes of the project, product, personnel, and development environment.
Formula:
Effort (E) = a * (KLOC)^b * EAF
Where EAF (Effort Adjustment Factor) is the product of all selected cost driver multipliers.
Cost drivers are rated on a scale (e.g., very low, low, nominal, high, very high), each having a specific multiplier value.
Intermediate COCOMO Cost Drivers (Examples)
- Product Attributes: Required software reliability, database size, product complexity.
- Hardware Attributes: Execution time constraint, main storage constraint, virtual machine volatility.
- Personnel Attributes: Analyst capability, applications experience, programmer capability, virtual machine experience, programming language experience.
- Project Attributes: Use of software tools, application of software engineering methods, required development schedule.
Each attribute has a multiplier (e.g., 0.75 for very low, 1.00 for nominal, 1.40 for very high).
Key Takeaways
- **Empirical estimation** uses historical data and formulas to predict project characteristics.
- The **COCOMO model** is a widely used empirical model based on KLOC.
- **Basic COCOMO** provides a rough estimate based on project type.
- **Intermediate COCOMO** refines the estimate using **cost drivers** (effort multipliers) for more accuracy.
Next Lecture
Topic: Project Estimation Techniques - Heuristic
Q & A
Questions & Discussion

