7.    Model Calibration to the Local Environment

Studies of the data used to calibrate all the parameters of the COCOMO II Post-Architecture model have shown the model to be significantly more accurate when calibrated to an organization.  All that was done in the study was to calibrate the constant, A, in the effort estimation equation.  This is simple enough to do that it can be performed with a calculator, spreadsheet, or a statistical regression tool.

The intent of calibration is to take the productivity and activity distributions of the local development environment into account.  Figure 7 is a fictitious example of data from 8 projects.  The effect of calibrating the constant A is to raise or lower the fitted line from the “out-of-the-box” COCOMO estimates to estimates that reflect local conditions.

Figure 1.                  

Difference Between COCOMO II and Local Calibrations

Calibration to the local environment consists of adjusting the constant, A, in the model.  Only the calibration of A is discussed here; however for calibration of A and E see Chapter 4 in [Boehm et al. 2000].  The applicable portion of Equation 1 is repeated here for this discussion.

                                                      

There is more than one method to calibrate the constant A (see other examples in [Boehm 1981; Chapter 29; Boehm et al. 2000; Chapter 4].  The technique described here uses natural logs.  It is recommended that at least 5 data points from projects be used in calibrating the constant A.

As an example, the table below shows eight projects.  The data needed is the actual effort (PMactual) that was expended between the end of Requirements Analysis and the end of software Integration and Test.  The activities should be the same as those discussed in Section 6.4.  The end-product size, Scale Drivers, and Cost Drivers are also needed.  An unadjusted estimated is created using Equation 1 without the constant A.  Next, natural logs (ln) are taken of the actual effort and unadjusted estimate.  For each project, the difference between the log of the actual effort and the log of the unadjusted estimate are determined.  The average of the differences, X, will determine the constant A by taking the anti-log of the average: A = eX.

 

Table 1.         Example of Local Calibration of A

PMactual

KSLOC

PEMi

E

Unadjusted Estimate

ln(PMactual)

ln(Unadjusted Estimate)

Difference

1854.6

134.5

1.89

1.20

686.7

7.53

6.53

0.99

258.5

132.0

0.49

1.08

94.3

5.55

4.55

1.01

201.0

44.0

1.06

1.13

77.7

5.30

4.35

0.95

58.9

3.6

5.05

1.09

20.3

4.08

3.01

1.07

9661.0

380.8

3.05

1.18

3338.8

9.18

8.11

1.06

7021.3

980.0

0.92

1.16

2753.5

8.86

7.92

0.94

91.7

11.2

2.45

1.15

38.9

4.52

3.66

0.86

689.7

61.6

2.38

1.17

301.1

6.54

5.71

0.83

 

 

 

 

 

 

X=

0.96

 

 

 

 

 

 

A=

2.62

 

This example shows that instead of using the COCOMO II.2000 constant of A = 2.94, a local constant of 2.62 should be used for estimating software projects in the local development.

In addition to calibrating the estimation equations, the distribution of the estimates should be calibrated too.  Recall the distribution of effort in Section 6.4.  This may be different for the local environment due to the use of different development methodologies and organizational processes.

The table below is an example of a collection of effort data by lifecycle phase and by activity.  This table could be expanded to cover all activities and phases of the local development lifecycle.  Even if the local activities are not all covered by the COCOMO effort estimate the information will still be useful in planning and tracking project progress.

 

 

 

 

Table 2.         Example of Local Effort Data Collection

 

Effort by Lifecycle Phase in Person-Months

 

 

 

 

 

 

 

 

 

Activity

 

Architectural Design

 

Software Design

Implementation Build-1 (DD & CUT)

Integration Test Build-1

Implementation Build-2 (DD & CUT)

 

Integration Test Build-2

 

Total Effort by Activity

Management

3.72

6.24

7.08

0

9.96

0

27.00

Requirements Engineering

3.72

5.88

4.20

0

7.08

0

20.88

Test Engineering

3.72

7.08

12.24

10.56

11.4

5.16

50.16

Software Engineering (A+B)

19.56

26.88

46.92

3.96

65.28

6.84

169.44

Subsystem A

13.20

16.44

34.56

3.00

42.48

5.76

115.44

Subsystem B

6.36

10.44

12.36

0.96

22.80

1.08

54.00

Support

3.96

4.92

12.00

4.80

10.56

0

36.24

Total Effort by Phase

34.68

51.00

82.44

19.32

104.28

12.00

303.72

 

The data from the above table can be converted into phase distribution percentages.  This is used with the calibrated COCOMO II model to derive estimates broken down by phase and activity.

Table 3.         Example of Local Effort Distribution

 

Percentage Effort by Lifecycle Phase

 

 

 

 

 

 

 

Activity

 

Architectural Design

 

Software Design

 

Implementation

 

Integration Testing

 

Total Effort by Activity

Management

1.22%

2.05%

5.61%

0.00%

8.89%

Requirements Engineering

1.22%

1.94%

3.71%

0.00%

6.87%

Test Engineering

1.22%

2.33%

7.78%

5.18%

16.52%

Software Engineering

6.44%

8.85%

36.94%

3.56%

55.79%

Support

1.30%

1.62%

7.43%

1.58%

11.93%

Total Effort by Phase

11.42%

16.79%

61.48%

10.31%

100.00%

 

Calibration of the model to the local environment is an important activity.  The results of the calibration can be an important input to planning and quantitative management practices.