What are the various forms of COCOMO used in effort estimation?

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.

In modern software development practice, it is crucial to know the cost and time required for the software development before establishing new software projects. One of the efficient cost estimation models which are extensively applied to many software projects is called “Constructive Cost Model (COCOMO)”.

COCOMO is a procedural software cost estimation model proposed by Barry W. Boehm in 1981. This cost estimation model is extensively used in predicting the effort, development time, average team size and effort required to develop a software project. The distinctiveness of this strategy is that COCOMO estimates the cost based on the number of lines of source code and sets of subjective assessment (cost drivers) of product, hardware, personnel and project attributes. This provides transparency to the model which allows software managers to understand why the model gives the estimates it does. Moreover, the baseline COCOMO originally underlies a waterfall model lifecycle.

In this article, we shall discuss the overview of COCOMO model, generic types of the model, basic calculation of COCOMO-based cost estimation strategy, extension of the model, and strengths and weaknesses of the model, respectively.

Software Project types

Before jumping to the core concepts of the COCOMO itself, It is necessary for readers to recognise the characteristics of software project types before applying it to the model.

Software projects under COCOMO model strategies are classified to 3 categories including, organic, semi-detached, and embedded.

Organic

This suits a small software team since it has a generally stable development environment. The problem is well understood and has been solved in the past.

Semi-detached

The software project which requires more experience and better guidance and creativity. For example, Compiler or different Embedded System

Embedded

The project with operating tight constraints and requirements is under this category. The developer requires high experiences and has to be creative to develop complex models.

The table below indicates the criteria for selecting the type of software project to be applied for further calculation in the model.

Table 1. Comparison between three classes of software project in terms of size, team size, developer experience, environment, innovation and deadline.Types of COCOMO model

COCOMO model allows software manager to decide how detailed they would like to conduct the cost estimation for their own project. COCOMO can unveil the efforts and schedule of a software product based on the size of the software in different levels. There are basic COCOMO, Intermediate COCOMO, and Detailed/Completed COCOMO.

Basic COCOMO model

The basic COCOMO is used for rough calculation which limits accuracy in calculating software estimation. This is because the model solely considers based on lines of source code together with constant values obtained from software project types rather than other factors which have major influences to Software development process as a whole.

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.

Complete/detailed COCOMO model

The model incorporates all qualities of both Basic COCOMO and Intermediate COCOMO strategies on each software engineering process. The model accounts for the influence of the individual development phase (analysis, design, etc.) of the project.

For instance, detailed COCOMO will perform cost estimation in each development phase of Waterfall Model.

Figure 1. An illustration of classical Waterfall Model.Calculation

In COCOMO, the general calculation steps of COCOMO-based cost estimation are the following:

  1. Get an initial estimate of the development effort from evaluation of thousands of delivered lines of source code (KDLOC).
  2. Determine a set of 15 cost factors from various attributes of the project.
  3. Calculate the effort estimate by multiplying the initial estimate with all the multiplying factors i.e., multiply the values in previous steps.

Now, let’s apply these steps to the real example in Basic COCOMO first.

Question statement: Suppose the project was estimated to be 400 KDLOC , calculate the effort, development time, and time of each of the 3 modes

Note: the basic COCOMO is used in Organic mode by default.

The arithmetic formula of Basic COCOMO is

Figure 2. Formula for Basic COCOMO

Each of the constant a, b, c, d can be defined as show in the Table 2.

Table 2. Constant values corresponding to software project type as stated in previous section.

The calculations of Basic COCOMO corresponding to each of software project types are shown in the Table 3.

Table 3. The calculation of Basic COCOMO on each software project type.

Rather than the sole consideration on the number of lines of the source code as shown in Basic COCOMO, Intermediate COCOMO introduces sets of 15 subjective assessment called “Cost Drivers” to ensure that other aspects of Software Development are taken into account in the cost estimation. Cost drivers are divided into 4 groups including, product attributes, hardware attributes, personal attributes, and project attributes.

Figure 3. Cost drivers

Each of cost driver is rated on the scale of are very low to extremely high to calculate the specific effort multiplier and each of them returns an adjustment factor which multiplied yields in the total EAF (Effort Adjustment Factor).

The scale includes very low, low, normal, high very high, extra high, accordingly. The adjustment factor is 1 for a cost driver that is judged as normal. In practice, typical values for EAF range from 0.9 to 1.4.

Figure 4. Line graph indicating the ratings for each cost driver

Figure 5. Ratings for cost drivers under product attribures and computer attributes

Figure 6. Ratings for cost drivers under personnel attributes and project attributes

By taking all cost drivers into account represented by EAF, the arithmetic cost estimation formula for Intermediate COCOMO can be derived as follow:

Figure 7. Formula for Intermediate COCOMO with an inclusion of Effort Adjustment Factor (EAF)Extension of COCOMO

Although this article only cover about the COCOMO I model (1981), but it is worthy for you to do further research on the extension of this effective COCOMO model.

An obvious example of COCOMO II (1995) is an extension of COCOMO I used in other categories of Software development process, such as Agile, Iterative waterfall, and spiral waterfall model.

In addition, there are several cost estimation models being developed on top of the COCOMO I and COCOMO II model. For example, Constructive Rapid Application Development schedule estimation model (CORADMO), and Constructive Phased Schedule & Effort Model (COPSEMO).

Pros & Cons

Even though COCOMO model are widely used in many software projects since 1981, there are both advantages that outperform from other cost estimation model together with some disadvantages over the others.

Pros

  • COCOMO is transparent, one can see how it works unlike other models such as SLIM.
  • COCOMO works on historical data or the past experience, therefore it is predictable and more accurate.
  • Easy to implement factors, as the drivers help to estimate the impact of different factors that affect the projects.
  • Easy to estimate the total cost of the projects. This is because COCOMO uses a regression formula from historical projects.

Cons

  • Cocomo ignores the requirements of the project and also all the related documentation related to the project.
  • Cocomo ignores customer skills, cooperation, knowledge and other parameters.
  • When the Cocomo cannot establish a good understanding of the project between the customers and the developers.
  • Cocomo is dependent, If there are changes to the actual amount of time spent on these phases, it will affect the accuracy.
  • There are certain factors that are beyond the control of the developers or customers such as hardware malfunctions and failures.

Authors

  1. Warakorn Jetlohasiri 59090038
  2. Window Za 60099013
  3. Sumitra Chalotorn 60090036

This article is a part of Software Development Process course, Department of Software Engineering, Faculty of Engineering, KMITL, Thailand.

How effort estimation can be calculated using COCOMO model?

The necessary steps in this model are: Determine a set of 15 multiplying factors from various attributes of the project. Calculate the effort estimate by multiplying the initial estimate with all the multiplying factors i.e., multiply the values in step1 and step2.

What is COCOMO and its three types?

According to COCOMO, there are three modes of software development projects that depend on complexity. Such as: Web development, programming languages, Software testing & others. All in One Software Development Bundle(600+ Courses, 50+ projects) Price.

What is effort in COCOMO model?

COCOMO or Constructive Cost Estimation Model is a model that estimates the effort and time taken to complete the model based on the size of the source code. It includes 15 multiplying factors from different attributes of the project, and finally calculates time and effort using this information.

Which COCOMO estimation model is used to evaluate the effort to system design specification?

1. Which of the following uses empirically derived formulas to predict effort as a function of LOC or FP? Explanation: Function points and COCOMO are used to evaluate effort.