Discuss COCOMO model in cost estimation of the software in detail.

 COCOMO Model 

  • The COCOMO (Constructive Cost Model) is one of the most popularly used software cost estimation models i.e. it estimates or predicts the effort required for the project, total project cost, and scheduled time for the project. This model depends on the number of lines of code for software product development. 
  • This model was developed in 1981 by Barry Boehm to estimate the number of man-months it will take to develop a software product.
  • COCOMO predicts the efforts and schedule of a software product based on the size of the software.

The COCOMO model has three types:

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


Basic Model
Intermediate Model
Detailed Model

1. The Basic COCOMO

It is the one type of static model to estimate software development effort quickly and roughly. It mainly deals with the number of lines of code and the level of estimation accuracy is less as we don’t consider all parameters belonging to the project. The estimated effort and scheduled time for the project are given by the relation:

Effort (E) = a*(KLOC)b  MM

Scheduled Time (D) = c*(E)d  Months(M)

Where,

E = Total effort required for the project in Man-Months (MM).
D = Total time required for project development in Months (M).
KLOC = the size of the code for the project in Kilo lines of code.
a, b, c, d = The constant parameters for a software project.


2. The Intermediate COCOMO

The intermediate model estimates software development effort in terms of the size of the program and other related cost drivers parameters (product parameter, hardware parameter, resource parameter, and project parameter) of the project. The estimated effort and scheduled time are given by the relationship:

Effort (E) = a*(KLOC)b *EAF  MM
Scheduled Time (D) = c*(E)d  Months(M)

EAF = It is an Effort Adjustment Factor, which is calculated by multiplying the parameter values of different cost driver parameters. For ideal, the value is 1.


3. The Detailed COCOMO

It is the advanced model that estimates the software development effort like Intermediate COCOMO in each stage of the software development life cycle process.
                                  OR,

     COCOMO Model 

    COCOMO (Constructive Cost Modeling) cost modeling is an empirical model based on project experience. It is a well-documented, 'independent' model which is not tied to a specific software vendor. A long history from the initial version published in 1981 (COCOMO-81) through various instantiations to COCOMO 2. COCOMO 2 takes into account different approaches to software development, reuse, etc. COCOMO 2 incorporates a range of sub-models that produce increasingly detailed software estimates. The sub-models in COCOMO 2 are:

    • Application composition model used when software is composed of existing parts.

    • Early design model used when requirements are available but the design has not yet started.

    • Reuse model used to compute the effort of integrating reusable components.

    • Post-architecture model is used once the system architecture has been designed and more information about the system.


    Example of COCOMO Model

    Example: 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: The semidetached mode is the most appropriate, keeping in view the size,

    schedule and experience of development time.

    Hence E=3.0(200)1.12=1133.12PM

    D=2.5(1133.12)0.35=29.3PM

    P= 176 LOC/PM


    Advantages and Disadvantages of the COCOMO Model

    Following are some advantages and disadvantages of the COCOMO model.

    Advantages

    • Easy to estimate the total cost of the project.
    • Easy to implement with various factors.
    • Provide ideas about historical projects.

    Disadvantages

    • It ignores requirements, customer skills, and hardware issues.
    • It limits the accuracy of the software costs.
    • It mostly depends on time factors.


    Comments