What is COCOMO Model in Software Engineering?

COCOMO Model in Software Engineering:

Constructive Cost Estimation Model (COCOMO) was proposed by Boehm in 1981. It prescribes a three-stage process for project estimation. In the first stage, an initial estimate arrives. Over the next two stages, the initial estimate refines to arrive at a more accurate estimate. COCOMO uses both single and multi-variable estimation models at different stages of estimation.

What is COCOMO Model in Software Engineering

Types of COCOMO Model:

In Software Engineering, There are three stages of the COCOMO Model estimation technique are:

    i. Basic COCOMO Model
    ii. Intermediate COCOMO Model
    iii. Complete COCOMO Model

Basic COCOMO Model:

Boehm postulated that any software development project. It classifies into one of the following three categories based on the development complexity –
i. Organic
ii. Semi-detached
iii. Embedded

Organic:

We can classify a development project to be of the organic type if the project deals with developing a well-understood application program, the size of the development team is reasonably small, and the team members are experienced in developing similar types of projects.

Semidetached:

A development project classifies the semidetached type if the development team. It consists of a mixture of experienced and inexperienced staff. Team members may have limited experience in related systems but may be unfamiliar with some aspects of the system being developed.

Embedded:

A development project considers the embedded type, if the software being developed is strongly coupled to hardware, or if stringent regulations on the operational procedures exist. Team members may have limited experience in related systems but they may be unfamiliar with some aspects of the system being developed.

General form of the Basic COCOMO Expressions:

The basic COCOMO model is a single-variable heuristic model that gives an approximate estimate of the project parameters. The basic COCOMO estimation model is of the following forms:

Effort = a1 × (KLOC)a2 PM
Tdev = b1 × (Effort)b2 months

where,
i. KLOC: It is the estimated size of the software product expressed in Kilo Lines Of Code.
ii. a1, a2, b1, and b2 are constants for each category of a software product.
iii. Tdev: It is the estimated time to develop the software, expressed in months.
iv. Effort: It is the total effort required to develop the software product, expressed in person-months (PMs).

Person month curve:

Person-month (PM) is a popular unit for effort measurement. It considers an appropriate unit for measuring effort. Because most developers assigning to a project for a certain number of months.

Intermediate COCOMO Model:

The basic COCOMO model assumes that effort and development time are functions of the product size alone. However, a host of other project parameters besides the product size affect the effort as well as the time required to develop the product.

It uses a set of 15 cost drivers (multipliers) that determines based on various attributes of software development. These cost drivers multiply with the initial cost and effort estimates to appropriately scale those up or down.

In general, Boehm identifies the cost drivers. He also classifies as being attributes of the following items:

Product: The characteristics of the product that considers include the inherent complexity of the product, reliability requirements of the product, etc.

Computer: The Characteristics of the computer that considers include the execution speed required, storage space required, etc.

Personnel: The attributes of development personnel that consider include the experience level of personnel, their programming capability, analysis capability, etc.

Development environment: These attributes capture the development facilities available to the developers. An important parameter that considers the sophistication of the automation (CASE) tools used for software development.

Complete COCOMO model:

A major shortcoming of both the basic and the intermediate COCOMO models is that they consider a software product as a single homogeneous entity. However, most large systems are made up of several smaller sub-systems. These sub-systems often have widely different characteristics.

The Complete COCOMO model considers these differences in characteristics of the subsystems and estimates the effort and development time as the sum of the estimates for the individual sub-systems.
In other words, the cost to develop each sub-system estimated separately. The complete system cost determines by the subsystem costs. This approach reduces the margin of error in the final estimate.