COCOMO Model In Software Engineering

What is the COCOMO model?

The constructive cost model(COCOMO Model) was proposed by Bohem who gave the idea that any software development project can be classified into one of the following three categories which are:-Organic, Semi-detached, and Embedded. Roughly speaking these 3 modes correspond to application programs, utility programs and system programs respectively. Brooks stated that utility programs are 3 times as difficult to write as application and system programs. Thus, according to groups the ratio of relative complexities for product development in the three categories are 1:3:9. These three categories of the COCOMO model are described as:

Organic Mode:

A small team of experienced developers develops software in a very familiar environment. For example Application Programs like payroll software, Library management system etc.

Semi-Detached Mode:

The Semi-Detached Mode is an intermediate model between the organic mode and embedded mode. For Example:- Utility programs like compiler etc.

Embedded Mode:

In the Embedded Mode of software development, the project has tight constraints, which might be related to the target processor and its interface with the associated hardware. For Example:- Operating systems, Real-Time systems etc.

Stages of Model:

Stages of COCOMO Model

Basic COCOMO Model

In this model, Bohem has given different mathematical expressions to predict the effort (person-months) and development time from size estimation ( in KLOC). Basic COCOMO Model gives an estimate of the following project parameter with the given expressions in the following equations:

  • E = ab (KLOC)bb
  • D = Cb(E)db

Where,

  • E: effort gives an estimate of the required effort in person-months.
  • D: development time in months.
  • ab, bb, Cb, db: These are the constants for each category of Software Project.
  • KLOC: Kilo Lines of Code is the estimated size of the project.

Person-Month:- This is the effort any individual can typically put in a month. This is an appropriate unit for measuring the effort since engineers are typically assigned to a project for a certain number of months.

  • Average Staff Size (SS): (E/D) Persons
  • Productivity(P): (KLOC/E ) KLOC/Person-Months
Person-Month Curve

The effort estimation which is expressed in person-month is given by the area under person month plot. The values of the constants for the three categories as given Bohem are given below:-

COCOMO Model

The Plot of estimated effort v/s product size can be given as:

Effort vs Product Size Graph
Development Time vs Product Size

Here we see that the effort require to develop of product increases very rapidly with product size. Whereas in the size vs time curve we see that as the size of the product increases the development time increases but moderately. This can be explained by the fact that for larger products a large number of activities can be carried out concurrently or parallel activities can be carried out simultaneously by the engineers. This reduces the time for project completion. From the estimate of effort project cost can be obtained by multiplying the effort with manpower cost per month that is:

Project cost = (effort)* (Manpower Cost per Month)

Intermediate COCOMO Model

The basic COCOMO model assumes that effort and development time are the functions of product size alone. However various other project parameters apart from size also affect the time required and effort involved.

In order to get an accurate estimate of effort and time the effect of all the relevant parameters must be taken into account. The intermediate COCOMO model recognizes this fact and refines the initial estimate expression by using various other cost drivers based on various attributes of software development. These cost drivers can be given as the attributes of the following parameter:-

  • Product:- The characteristics of the product which are the cost drivers are – complexity of the product and reliability of the product.
  • Computer System:- The characteristics of a computer system that affect the effort time, cost are execution speed, storage space, working memory etc.
  • Personnel:- The attributes of personnel are experience level, technical skills and analysis capability etc.
  • Development Environment:- The development environment attributes affecting the effort, cost etc are development facilities available interface etc.

Complete COCOMO Model

A major shortcoming of both the basic and intermediate COCOMO model is that they consider a software product as a single homogenous entity. However, most large systems are made up of several smaller components. Where some subsystems may be considered organic type, some semi-detached while some embedded. This approach reduces the margin of error in the final estimate. For Example: Considering the management information system (MIS) product for an organization can have the following sub-components:-

  • Database Part
  • GUI Part
  • Communication Part

In these the communication part can be considered embedded, the database part can be considered semi-detached and the GUI part can be considered organic. The costs of these three components can be estimated separately and summed up to give the overall cost of the system.

COCOMO Model Numerical In Software Engineering

Question 1: Suppose that a project was estimated to be 400 KLOC. Calculate the effort and development time for each of the three modes i.e. organic, semi-detached, and embedded.

Solution 1: The Basic COCOMO equations are

  • E = ab (KLOC)bb
  • D = Cb(E)db

Estimated size of the project = 400 KLOC

  1. Organic Mode:
    • E = 2.4 (400)1.05 = 1295.31 PM
    • D = 2.5(1295.31)0.38=38.07 M
  2. Semi Detached Mode:
    • E = 3.0 (400)1.12 = 2462.79 PM
    • D = 2.5 (2462.79)0.35 = 38.45 M
  3. Embedded Mode :
    • E = 3.6 (400)1.20 = 4772.81 PM
    • D = 2.5 (4772.8)0.32 = 38 M

Question 2: A project Size of 200 KLOC is to be developed. The software development team has average experience on similar types of projects. The project schedule is not very tight. Calculate the effort, development time, average staff size, and productivity of the project.

Solution 2: The Semi-Detached Mode is the most appropriate mode, Keeping the view of the size, schedules, and experience of the development team.

Hence,

  • E= 3.0(200)1.12 = 1133.12 PM
  • D = 2.5 (1133.12)0.35 = 29.3 M
  • Average Staff Size (SS) = E/D Persons = 1133.12/29.3 Persons = 38.67 Persons
  • Productivity(P) =KLOC/ E = 200/1133.12 = 0.1765 KLOC/PM = 176 LOC/PM

Question 3: Assume that size of an organic type software product has been estimated as 32000 lines of source code. Assuming that the average salary of the software engineer is 1500/month. Calculate the effort required to develop the software product and the nominal development time.

Solution 3: Since, it is organic type software product

so, E = 2.4 (32) 1.05 = 91 PM

D = 2.5 (91) 0.38= 1 4 M

Project Cost = 91 * 15000 = 13,65,000

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments