What is COCOMO Model in Software Engineering?

Let us understand the different types of COCOMO model in software engineering and their applications. The COCOMO Model stands for Constructive Cost Model. Barry W. Boehm developed this model, and it is a procedural software cost estimation model.

What is COCOMO Model in Software Engineering?

This is a cost estimation model in software in software engineering and it allows you to input some parameters and get an estimate of the level of effort associated with a software project.

The initial version was published in 1981 and was known as COCOMO-81. It was developed considering a waterfall process would be used and that all software will be developed from scratch. The COCOMO model is one of the most popular models cost estimating in software engineering domain.

There are a lot of cost estimation techniques in software engineering such as:

Delphi cost estimation

COCOMO 1 cost estimation

COCOMO 2 cost estimation

Barry Boehm’s hierarchy of software estimation models bearing the name COCOMO, for a constructive model is of the following types:

Model 1: The Basic COCOMO Model

If the function of program size can be expressed as estimated LOC (Source Lines of code – SLOC, KLOC) then it can be computed as software development effort.

COCOMO applies to three classes of software projects:

Organic Mode Mode: It is related to projects with small development teams whose team members are familiar with the project. Eg. Payroll Systems

Semi-Detached Mode: It is related to the projects that involve the mixture of experienced team members in the project. E.g. Interactive Banking System

Embedded Mode: It is related to the complex projects that are developed under tight constraints with innovations in it having a high volatility of requirements. E.g. Nuclear Reactor Control Systems.

Model 2: The Intermediate COCOMO Model

If program size includes a set of “cost drivers” with personnel and project attributes, subjective assessments of products and hardware then it can be computed as software development effort. This extension includes a set of four cost drivers.

Product attributes

Hardware attributes

Personnel attributes

Project attributes

Model 3: The Advanced COCOMO Model:

Along with characteristics of an intermediate model this model also assesses the cost driver’s impact on each step of the software engineering process. There are a total of 6 phases of detailed COCOMO.

Planning and requirements

System design

Detailed design

Module code and test

Integration and test

Cost Constructive model

Let us understand different types of COCOMO model in software engineering in depth now.

The COCOMO 1 model is a regression-based model that considers various historical programs software size and multipliers.

The most important fundamental calculation is the use of effort equation to find the number of Person-Months required in developing a project.

This model estimates the cost by considering the size and other quality aspects of the similar type of historical programs. It calculates the Efforts i.e. estimation of the number of Person-Months required to develop a project.

Estimated Cost = Number of Person Months * Loaded Labour Rate

Estimates of requirements, maintenance are derived from the quantity. COCOMO requires input as the project’s estimated size in Source Lines of Code.

The COCOMO model in software engineering is based on the relationships between the two formulas:

Formula 1: Development Effort is based on system size:

MM = A * KSDI ^ B

where,

MM is the effort measured in Man per Months

KDSI is the number of Source Instructions Delivered in a Kilo (Thousands)

Formula 2: Effort (MM) and Development Time

TDEV = C * MM ^ D

where,

TDEV is the development Time

Coefficients A, B, C, and D depending upon the mode of development that can be categorized into following 3 distinct classes of software projects defined above.

Steps To Perform A Cost Estimate Using The COCOMO Model Include:

Determine all sub-systems and modules in the project.

Calculate the size of each subsystem, each model and also the size of the complete system.

Add other development costs also – like planning and analysis that were not included in the estimate.

Compare the estimation and correct the differences.

Disadvantages of COCOMO 1 Model:

It is difficult to estimate the exact KDSI in early phases of the project development since most of the effort estimates are still not known.

The focus is on adjusting the model as required by the organization and this done based upon the historical data which is not available all the time.

Advantages of COCOMO 1 Model:

The COCOMO model provides a transparent working environment.

It examines different factors affecting the project costs.

The COCOMO 2 model in Software Engineering is tuned to modern software life cycles. COCOMO 1 model has been very successful. However, it doesn’t apply to newer software development practices as well as it does to traditional practices.

This model targets modern software projects and will continue to evolve over the next few years. The sub-models of COCOMO 2 model are as follows:

Application Composition Model: Used when software is developed from existing parts.

Early Design Model: Used when system requirements are collected and concluded but designing has not yet started.

Reusable Model: Used when software is developed using the reusable components. It is used to compute the efforts taken to integrate these components.

Post-Architecture Model: Used once the system designing is completed and when further system information is collected.

Multiplier Affect: The capability of the developers, functional requirements, familiarity with the development platform, etc.

Cost Driver Attributes:

Product Attributes: This explains the required characteristics of the software product being developed such as the required reliability, database, and product complexity.

Hardware attributes: This explains the constraints imposed on the software product by the hardware platform such as execution time constraint, main storage constraint, virtual machine volatility, computer turnaround time.

Personal Attributes: This describes the experiences and capabilities that are taken into account such as analyst capacity, programmer capability, applications experience, virtual machine experience.

Project Attributes: This describes the particular characteristics of the project such as the use of modern programming practices, use of software tools and required development schedule.

The COCOMO 2 formula to estimate the calendar time required to complete a project when staff will be required.

TDEV = 3^(PM)(0.33 + 0.2 *(B-1.01))

where,

PM is the effort computation and B is the exponent (B = 1 for the early prototyping model). This computation predicts the nominal schedule for the project.

The time required is independent of the number of people working on the project.

How To Improve Software Economics?

The software economics may be improved using a balanced approach as the key. The five key parameters that help to improve the software economics are:

Reducing the product size (Number of Lines of Code) and the complexity of the software

Improve the software development process

Improve the team effectiveness

Create better environment by improving the automation more suitable tools and technologies

Achieve required quality by peer inspections.

Here’s the list of the trends on which the Five Key Parameters depend.

One thought on “What is COCOMO Model in Software Engineering?”

Hi Tushar Soni this article was very informative for me. Thanks for sharing your knowledge with us. I am beginner in programming and your articles are helping me very much. I have made https://www.codingknack.com/ with as much knowledge. Please suggest me some things for my improvement. Thanks.