Skip to main content
  1. Resources/
  2. Study Materials/
  3. Information & Communication Technology Engineering/
  4. ICT Semester 5/
  5. Software Engineering (4353202)/

4 mins· ·
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Lecture 27: Project Estimation Techniques - Empirical (COCOMO)

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 Typeabcd
Organic2.41.052.50.38
Semi-Detached3.01.122.50.35
Embedded3.61.202.50.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