Annex 1 5.6.2.2 Constructive Cost Model (CoCoMo)

Constructive Cost Model (CoCoMo)

/Boehm, 1981/

#### 2 Brief Characteristic of the Method

CoCoMo (Constructive Cost Model) was developed by Barry W. Boehm; it is a combination of parametric estimation equation and weighting method. Based on the estimated instructions (Delivered Source Instructions DSI), the effort is calculated by taking into consideration both the attempted quality and the productivity factors.

CoCoMo is based on the traditional top-down programming and concentrates on the number of instructions. It is comprised of three levels:

1. Basic CoCoMo
By means of parametric estimation equations (differentiated according to the different system types) the development effort and the development duration are calculated on the basis of the estimated DSI.

The breakdown to phases is realized in percentages. In this connection it is differentiated according to system types (organic-batch, semidetached-on-line, embedded-real-time) and project sizes (small, intermediate, medium, large, very large).

2. Intermediate CoCoMo
The estimation equations are now taking into consideration (apart from DSI) 15 influence factors; these are product attributes (like software reliability, size of the database, complexity), computer attributes (like computing time restriction, main memory restriction), personnel attributes (like programming and application experience, knowledge of the programming language), and project attributes (like software development environment, pressure of development time). The degree of influence can be classified as very low, low, normal, high, very high, extra high; the multipliers can be read from the available tables.
3. Detailed CoCoMo
In this case the breakdown to phases is not realized in percentages but by means of influence factors allocated to the phases. At the same time, it is differentiated according to the three levels of the product hierarchy (module, subsystem, system); product-related influence factors are now taken into consideration in the corresponding estimation equations.

#### Criteria for the Application of Method CoCoMo

• Medium and Large Projects
For small projects, the effort for an estimation according to intermediate and detailed CoCoMo is too high; but the results from basic CoCoMo alone are not sufficiently exact.
• Technical Application
For software projects developing commercial applications, CoCoMo usually comes up with exaggerated effort estimation values (also compare /Noth, 1986/ p. 87), therefore CoCoMo is only applied for the development of technical software.

This circumstance is due to the fact that the ratio DSI and man months implemented in the CoCoMo estimation equation fits the productivity rate in a technical development; with regard to commercial software development a higher productivity rate DSI/man-month can be assumed.

#### Strong and Weak Points of the Method and possible Remedial Measures

• Estimation Base "Delivered Source Instructions"
By means of estimation base instructions (DSI) it was attempted to lessen the great uncertainties and problems in connection with the traditional estimation base LOC. However, some problems remain: the uncertainty of a DSI estimation (-) and for the development effort the DSI are-based on modern software engineering methods-no longer of great importance since the effort increasingly occurs during the early activities and DSI will only be effective towards the end of the development process (-); DSI as well as LOC depends on the selected programming language (an Ada adoption to CoCoMo is already available, however).

A remedy can be achieved by the weighting of instructions according to their various types (see /Sneed, 1987/ pp. 73-74: compiler, data description, transformation, control, and I/O instruction, or see /Sneed, 1987/ pp. 183-185: data description instructions (differentiated according to integration degree, message/data object, modification degree) and processing instructions (differentiated according to batch/on-line, modification degree, complexity, language)).

• Macro and Micro Estimation
By means of the various levels of the model, CoCoMo makes it possible to realize both a macro estimation by means of Basic CoCoMo and a micro estimation by means of Intermediate CoCoMo and Detailed CoCoMo (+). The micro estimation allows the effort allocation to activities and functional units. However, method CoCoMo is not only based on a software life cycle deviating from the V-Model but also on another system structure (-). Therefore, in order to list individual efforts for submodels, (sub-) activities, and (sub-) products, it is necessary to adjust these items of method CoCoMo to the V-Model concept.
• Influence Factors/Objectivity
In the effort estimation, CoCoMo takes into consideration the characteristics of the project, the product, and the personnel as well as of the technology (+). In order to achieve an objective evaluation of these influence factors, CoCoMo offers exact definitions (+). The quantification of influence factors represents a certain problem, though (-) which has a strong impact on the quality of the estimation method and on the required DSI information.
• Range of Application
By differentiating the estimation equations according to project sizes and system types, the range of application for method CoCoMo is a wide one (+). It is also one of the few estimation methods offering-apart from the support for development projects-support for the effort estimation of SWMM tasks as well (also by parametric estimation equations) as for the estimation of the project duration (+).
• Tool Support
Computer-based support is required for Intermediate and Detailed CoCoMo, based on the quantity problem (differentiation of influence factors on phases and subproducts (-).

#### 4 Application of the Method in the V-Model

• CoCoMo in PM1.5 - Generation of Preliminary Plan:
For preliminary planning in an early project stage, the application of Basic CoCoMo is recommended; in a first approximation it calculates the development effort, the development duration, and a preliminary breakdown to "phase" (transformation to main activities is required, see above).
• CoCoMo in PM4 - Detailed Planning:
For the detailed planning, Intermediate CoCoMo and Detailed CoCoMo have to be applied in order to break the costs down in a more exact way to the activities and functional units.

#### 5 Interfaces

- not applicable -

#### 6 Further Information

Further Developments/Versions

CoCoMo has already been modified in several ways. Various versions exist with regard to, e. g.

• the type and number of influence factors:
/Boehm, 1981/: 15 influence factors
/Sneed, 1987/: 12 influence factors and special quality factor

• the numbers and types of the influence factors:
/Boehm, 1981/: Batch-On-line-Real-time /Sneed, 1987/: Batch-On-line-Mixed Systems
Related Methods

In literature (mostly generated prior to CoCoMo) a great number of parametric equations like "effort = a * (KDSI) b" exist for effort estimation-similar to the Basic CoCoMo and with exactly the same disadvantage of being inaccurate. To name only a few authors in this connection: Nelson (1978), Freburger-Basili (1979), Herd (1977), Frederic (1974), Phister (1979), Jones (1977), Halstead (1977), Schneider (1977). The equation factors have a very wide band width (a: between 0,7 and 5,3; b: between 0,98 and 1,83) and Basic CoCoMo-just like these methods-cannot be realized alone.

#### 7 Literature

/Boehm, 1981/ Original Literature Definition and Introduction into FPM, Appraisal, Further Developments, and Application Proposals (pp. 89-105, p. 118) Description of Method ASSERT-R as compared to other Estimation Methods Explanation of the CoCoMo Method as compared to FPM and Component Analysis Method (pp. 73-74, p. 174, pp. 177-179, pp. 183-186, pp. 193-195, pp. 199-201)

 GDPA Online Last Updated 29.May.2002 Updated by Webmaster Last Revised 29.May.2002 Revised by Webmaster