Software Engineering | COCOMO Model

COCOMO (COnstructive COst estimation MOdel) was proposed by Boehm in 1981. According to the Boehm any software development project can be classified into one of the following three categories based on the development complexity:

 

1. Organic

2. Semi-detached

3. Embedded


Boehm’s definition of organic, semidetached, and embedded systems:


1. Organic:

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


2. Semidetached:

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


3. Embedded:

A development project can be considers to be of embedded type, if the software being developed is strongly coupled to hardware, or if stringent regulations on the operational procedures exist.

 

According to Boehm, software cost estimation should be done through three stages:

      
1. Basic COCOMO Model

2. Intermediate COCOMO Model

3. Complete COCOMO Model


Basic COCOMO Model:

Basic COCOMO Model  is a single-valued model and calculates the software development cost and effort by measuring Lines Of Code (LOC). It is one type of static model to estimate software development effort quickly and roughly. The Basic COCOMO model is good for quick estimates.

The basic COCOMO model gives an approximate estimate of the project parameters. The basic COCOMO estimation model is given by the following expressions:


        Effort, E= a(KLOC)b PM

        Time for development, Tdev = c(E)d  Months


Where,

E is the amount of effort required for the project in Person-Months (PM).

Tdev is estimated time to develop the software in months,

KLOC is the size of the code for the project in Kilo lines of code.

a, b, c, d is the constant parameter , values of a, b, c and d depends upon the three modes of development of projects.


(a) Organic mode: It is for small sized simple software projects upto 2-50 KLOC (thousand lines of code) with experienced developers in a familiar environment.

(b) Semi detached mode: It is for medium sized software projects upto 50-300 KLOC with average previous experience on similar projects.

 (c) Embedded mode:  It is for large and complex software projects typically over 300 KLOC with developers having very little previous experience.

The constant values of a , b , c and d of the Basic COCOMO Model for the different categories of system:

Mode

a

b

c

d

Organic

2.4

1.05

2.5

0.38

Semidetached

3.0

1.12

2.5

0.35

Embedded

3.6

1.20

2.5

0.32

 


Intermediate COCOMO model:

Intermediate COCOMO model is an extension of the Basic COCOMO model which includes a set of cost drivers into account in order to enhance more accuracy to the cost estimation model as a result.

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 required to develop the product as well as the development time. Therefore, in order to obtain an accurate estimation of the effort and project duration, the effect of all relevant parameters must be taken into account. The intermediate COCOMO model recognizes this fact and refines the initial estimate obtained using the basic COCOMO expressions by using a set of 15 cost drivers (multipliers) based on various attributes of software development.

In general, the cost drivers can be classified as being attributes of the following items:

  • Product: The characteristics of the product that are considered include the inherent complexity of the product, reliability requirements of the product, etc.
  • Computer: Characteristics of the computer that are considered include the execution speed required, storage space required etc.
  • Personnel: The attributes of development personnel that are considered include the experience level of personnel, programming capability, analysis capability, etc.
  • Development Environment: Development environment attributes capture the development facilities available to the developers. An important parameter that is considered is the sophistication of the automation (CASE) tools used for software development

 

Complete COCOMO model

A major shortcoming of both the basic and 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 may have widely different characteristics. For example, some sub-systems may be considered as organic type, some semidetached, and some embedded. Not only that the inherent development complexity of the subsystems may be different, but also for some subsystems the reliability requirements may be high, for some the development team might have no previous experience of similar development etc. 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 subsystems. The cost of each subsystem is estimated separately. This approach reduces the margin of error in the final estimate





Post a Comment

0 Comments