COCOMO Model: Definition, Types, Formula, Advantages, Limitations and Applications

COCOMO (Constructive Cost Model) is one of the most popular software engineering models for cost estimation and software project effort, development time and human resources. The model was developed in 1981 by Barry W. Boehm from empirical data and mathematical equations, in order to offer a structured software cost estimation. The planning process in COCOMO is basically based on the estimated project size (measured in thousands of lines of code: KLOC) and on some characteristics of the project to estimate the required effort and schedule. It is based on the classification of software projects into three modes: Organic, Semi-detached, and Embedded, and offers three levels of estimation: Basic, Intermediate, and Detailed COCOMO.

What is the COCOMO Model?

What is the COCOMO Model

The COCOMO (Constructive Cost Model) is a software cost estimation model created by Barry W. Boehm in 1981. It is generally used to define the effort and development time, staffing needs and cost of a software development project, based primarily on the estimated size, usually expressed in thousands of lines of code (KLOC). COCOMO supplies mathematically structured estimates from historical data of projects. The original model has three levels: Basic, Intermediate, and Detailed COCOMO that provide growing detail in estimating. To complement the complexity of the projects, it also categorizes the projects in three ways: Organic, Semi-detached, and Embedded mode depending upon the various factors like project size, technical complexity, team experience, etc.

Key Features of the COCOMO Model

The COCOMO model is characterized by the following characteristics:

  • Empirical Estimation: Based on historic experiences with software projects.
  • Three project modes: Projects can be Organic, Semi-detached or Embedded.
  • Size Based Estimation: The traditional way to measure software size is by using the unit KLOC.
  • Multiple estimation levels: There are three versions of estimation (Basic, Intermediate, and Detailed versions) that offer increasing levels of accuracy.
  • Support in the form of cost-driver (Intermediate and Detailed COCOMO): reliability, complexity, tools, personnel capability.
  • Estimating effort: It is used to determine the effort in person-months.
  • Schedule Estimation: The estimation of how many calendar months it will take to develop.
  • Average Staffing: Effort and development time determine the staffing estimate.
  • Clear calculations: Users can analyze and modify the equations and parameters.
  • Planning support: It can help in the budget, allocation of resources, feasibility study, and project planning.

Meaning of the COCOMO Model

The term “constructive” in COCOMO is used because measurable and structured factors are used to estimate software development project, and not all decisions are subjective ones. COCOMO 81 serves as the original COCOMO model and uses past project data for its calibration. It linked the amount of software code to the effort needed for software construction. The basic principle is that the larger the software project, the greater the effort. This is expressed in a power-law instead of a linear equation.

COCOMO also acknowledges that the characteristics of the project also impact productivity. For instance, the development may take significantly more time for a highly complex system, with strict reliability requirements, than it does for a similarly complex system but with less stringent requirements.

Software Cost Estimation Process Using COCOMO

The COCOMO estimation process typically consists of a number of steps.

  • Step 1: Estimate Software Size. The first step is to estimate the size of the proposed software, normally in KLOC. For instance, if a project has 50,000 lines of code then the size of the project would be 50 KLOC. The size estimate directly affects the final result; hence, incorrect size estimation can have a major impact on the COCOMO.
  • Step 2: Choose Project Mode. The project can be coded in one of three COCOCO modes: Organic, Semi-detached, Embedded. The choice of mode relies on various factors including project size, complexity, experience of the team involved and technical constraints.
  • Step3: Select the COCOMO Version. The estimator then selects Basic, Intermediate, or Detailed COCOMO based on the available information and the desired level of accuracy.
  • Step 4: Calculate the development Effort. Estimators calculate development effort in person-months using the appropriate COCOMO equation.
  • Step 5: Estimate Staffing and Cost. The estimated effort determines the approximate development schedule. For this step, the team should determine the number of staff required and estimate the costs.

Average Staffing is equal to:

The Average Staff receives a score of Effort / Development Time.

Multiplying the total effort by the average fully loaded cost per person-month provides the estimated project cost.

Types of COCOMO Projects Modes

Organic Mode

Organic projects are relatively small and simple. The development team typically has experience with similar systems, and stakeholders keep the requirements relatively fixed.

Examples may include:

  • Business applications
  • Inventory systems
  • Payroll applications
  • Simple data-processing systems

In general, organic projects demand less technical effort, so teams discuss them more easily.

Semi-Detached Mode

Semi-detached projects have a complexity of between Organic and Embedded projects.

They may involve:

  • Medium-sized systems
  • Groups of different levels of experience.
  • More complex requirements
  • Moderate technical constraints

These projects are more demanding than a regular Organic projects, but not as demanding as Embedded systems projects.

Embedded Mode

Embedded projects are usually very complex and have very specialized technical, hardware or regulatory requirements.

Examples can include:

  • Real-time control systems
  • Aerospace software
  • Defense systems
  • Automotive control systems
  • Safety-critical applications

Embedded projects tend to be more complex and constrained and to need significantly greater development cost.

Basic COCOMO Model

Basic COCOCOMO is simple and makes an initial estimate based on the software size and the project mode. It can be beneficial, especially in the early phases of project planning prior to the availability of detailed project information.

The work done can be calculated by the formula: E = a × (KLOC)^b

Where: E = Number of person-months of development effort

This is another large unit known as thousands of lines of code (KLOC).

a and b = Constants determined by the project mode

The development time equation is:

D = 2.5 × (E)^d

Where:

  • D = number of months required for development.
  • E = estimated effort
  • d = mode-specific constant

Simple COCOCOMOs coefficients used are:

Project Modeabcd
Organic2.41.052.50.38
Semi-detached3.01.122.50.35
Embedded3.61.202.50.32

This can then be computed to find average staffing:

  • Average Staff = E / D
  • Example of Basic COCOMO

Let’s assume an Organic project is estimated to be 32 KLOC.

Using the Organic equation:

E = 2.4 × (32)^1.05

This brings the resulting effort to be around 91 person-months.

The development is expected to take around 14 months.

Thus the average staffing requirement would be approximately:

91 / 14 ≈ 6.5 people

This is a further illustration of the ability of COCOCOMObased estimates to convert a software-size estimate to useful project planning data.

Intermediate COCOMO Model

Intermediate COCOCO is a more detailed estimate than Basic COCOCO, because it takes into account other project characteristics called cost drivers.

Very basic effort equation:

E = a × (KLOC)^b × EAF

It is here that EAF (Effort Adjustment Factor) is the total factor of cost-driver ratings.

The values of the COCOCOMO intermediate values are:

Project Modeabcd
Organic3.21.052.50.38
Semi-detached3.01.122.50.35
Embedded2.81.202.50.32

The cost drivers consider factors such as:

  • Required software reliability
  • Database size
  • Product complexity
  • Execution-time constraints
  • Memory constraints
  • Analyst capability
  • Programmer capability
  • Application experience
  • Platform experience
  • Programming language experience
  • Use of computer tools.
  • Development schedule
  • Modern programming practices

Estimators assign an appropriate rating to each factor and add the resultant multipliers together to determine the EAF. This means that Intermediate COCOMO is more realistic than Basic COCOMO since two projects with the same size may require different efforts.

Detailed COCOMO Model

The Detailed COCOMO, also known as “Complete COCOMO,” extends the Intermediate model, using cost-driver considerations at various stages of the software project and various components.

Unlike Regular COCOMO, Detailed COCOCO does not assume that the entire project is one homogeneous entity, but instead considers the differences between the phases of a project and the individual modules within the project itself.

Typical stages might include:

  • Requirements analysis
  • Product design
  • Detailed design
  • Coding
  • Integration
  • Testing

For instance, one module could be more complex, another more simple. Detailed COCOCO allows for the estimates to incorporate these differences.

This can help to deliver more useful information for the planning, staffing, budgeting and project control of the phase. It does, however, require detailed information and significant estimating effort, making it best suited for large, critical projects.

Efforts and Time calculations of  COCOMO

The two outputs of COCOMO are mainly effort and development time.

Effort

Effort is defined as the number of human hours (person-months) needed to finish the project.

For Basic COCOMO:

  • E = a × (KLOC)^b

For Intermediate COCOMO:

  • E = a × (KLOC)^b × EAF
  • Development Time

The determined effort allows teams to compute the development time with:

D = 2.5 × (E)^d

The exponent d can change depending on the project mode.

Average Staffing

Average staffing is given by:

Staff = E / D

For instance, if you have a project that needs 120 person-months to complete and the project duration is 15 months:

Staff = 120 / 15 = 8 people

It doesn’t have to be the case that exactly 8 people are working on the project at every stage of the project. The number of staff members needed for each phase may differ widely.

Project Cost

An approximated price estimate can be worked out by applying:

So the total cost of the project is equal to the total number of person-months of effort multiplied by the cost per person-month.

For instance, if effort is estimated to be 120 person-months and the average fully loaded cost is ₹1.5 lakh per person-month:

Project Cost = 120 × ₹1.5 lakh = ₹1.8 crore

The actual cost of the organization will vary depending on the salaries and benefits, infrastructure, tools, overhead, and more.

Advantages of COCOMO model

  • Simple and Structured. COCOMO gives well-defined equations, which facilitates the understanding and application of the estimation process.
  • Transparent. The model openly explains its fundamental equations and parameters, making them public and accessible for study unlike proprietary estimation systems.
  • Based on Historical Data. Empirical project data formed the basis of the model rather than subjective estimates alone.
  • Assesses various types of projects. The model adapts to various complexity levels through its three modes: Organic, Semi-detached, and Embedded.
  • Progressive Levels of Detail. Organizations can use Basic COCOMO for quick approximations, then gradually shift to Intermediate and Detailed COCOMO as more project information becomes available.

Limitations of the COCOMO Model 

  • Difficult to estimate KLOC. Indeed, model size is a crucial factor, but teams often struggle to predict the required lines of code during early development.
  • Original Calibration Is Outdated. Historic data from the earlier software industry shaped COCOMO 81.
  • There are so many varying technologies, frameworks, cloud platforms, automation, and development practices that could be modern.
  • Limited support for Agile Development. The first model reflected traditional development processes rather than today’s fast-changing, highly iterative methods.
  • Subjectivity in Cost Drivers. Intermediate and Detailed COCOMO require estimators to rate various cost drivers. These ratings have the potential of introducing human judgment and variation.
  • Does Not Estimate the size of software. The COCOMO needs an estimate of size. Does not establish the end size of the software product.

Practical Application of COCOMO Model

  • Project Planning: COCOMO can help the managers to have insight into the needed development time, effort, and manpower before development starts.
  • Budgeting: Applying the organizational Labor rate to the estimated PMs can give an approximation project costs.
  • Resource Allocation: The model can be used to estimate the number of developers and other staff that might be needed.
  • Feasibility Studies: Teams can use COCOMO to compare available resources, effort, cost, and schedule against project requirements prior to approval.
  • Contract Negotiations: Algorithmic estimates can be helpful in discussions of cost and schedule for large government, defense and enterprise projects.
  • Risk Analysis: Teams can conduct what if analysis by adjusting software size and/or project attributes and watching the software effort change.
  • For academic and training purposes: Educators widely use COCOMO in software engineering courses because its practical equations help students understand formal estimation methods.

COCOMO vs COCOMO II

FeatureCOCOMOCOCOMO II
Year1981Later successor
FocusTraditional projectsModern projects
SizeMainly KLOCKLOC, Function Points
Project TypesOrganic, Semi-detached, EmbeddedApplication, Early Design, Post-Architecture
ReuseLimitedBetter support
DevelopmentWaterfall-orientedIterative and modern
AccuracyLower for modern projectsBetter for modern projects

Conclusion

COCOMO has continued to be an important concept for software engineering and software project management. It is a structured mathematical model for predicting effort, time, manpower, and cost of a development project developed by Barry Boehm.

The 3 project modes in the model categorize projects based on complexity and constraints: Organic, Semi-detached, Embedded. There are three versions of it: Basic COCOMO, Intermediate COCOCO, and Detailed COCOCO, which means that the estimation becomes more sophisticated as the amount of information known about the project becomes greater.

FAQs

Q1. What is meant by COCOMO?

A1. COCOMO is an acronym for Constructive Cost Model. It was developed by Barry W. Boehm as a software cost and effort estimation model.

Q2. Name the three types of COCOCOMOs?

A2. There are three principal versions, Basic COCOMO, Intermediate COCOMO and Detailed COCOMO.

Q3. What does KLOC stand for in COCOMO?

A3. KLOC is the acronym for Thousands of Lines of Code. The traditional software-size measurement used as a key figure in the original COCOMO.

Q4. In COCOMO, what is EAF?

A4. Estimators apply the Effort Adjustment Factor (EAF) to the estimated effort in Intermediate and Detailed COCOMO to adjust for different project and development attributes.

Also Read: Chatgpt 4: Features, How to Use, Applications, Pricing, Advantages and Limitations

Recent Articles

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Stay on op - Ge the daily news in your inbox