Lecture
The COCOMO method allows to estimate the complexity and development time of a software product. It was first published by Bari Boehme [3] in 1981 as the result of an analysis of 63 projects of TRW Aerospace. In 1997, the technique was improved and received the name COCOMO II. Parameters were calibrated according to 161 development projects. The model uses a regression formula with parameters determined on the basis of industry data and characteristics of a specific project.
Two stages of project evaluation are distinguished: a preliminary assessment at the initial phase and a detailed assessment after the elaboration of the architecture.
The formula for estimating the complexity of the project in people * months. has the form:
Where
The main feature of the technique is that in order to assess the complexity, you need to know the size of the software product in thousands of source code lines (KSLOC, Kilo Source Lines Of Code). The size of a software product can, for example, be estimated by experts using the PERT method.
If we have analyzed the product using the method of functional points, then its size can be calculated using our own statistical data or using industry statistics [5] (Table 13).
Table 13. Estimation of the number of lines required to implement one unaligned functional point for some common programming languages.
Programming language | Row count estimate | ||
---|---|---|---|
Most likely | Optimistic | Pessimistic | |
Assembler | 172 | 86 | 320 |
C | 148 | 9 | 704 |
C ++ | 60 | 29 | 178 |
C # | 59 | 51 | 66 |
J2ee | 61 | 50 | 100 |
Javascript | 56 | 44 | 65 |
PL / SQL | 46 | 14 | 110 |
Visual basic | 50 | 14 | 276 |
Scale factors
The methodology uses five factors of scale SF ;, which are determined by the following project characteristics:
The value of the scale factor, depending on the assessment of its level, is given in Table 14
Table 14. The value of the scale factor, depending on the assessment of its level
Scale factor | Factor level assessment | |||||
---|---|---|---|---|---|---|
Very low | Low | Nominal | High | Very high | Extra high | |
PREC | 6.20 | 4.96 | 3.72 | 2.48 | 1.24 | 0.00 |
Flex | 5.07 | 4.05 | 3.04 | 2.03 | 1.01 | 0.00 |
RESL | 7.07 | 5.65 | 4.24 | 2.83 | 1.41 | 0.00 |
TEAM | 5.48 | 4.38 | 3.29 | 2.19 | 1.10 | 0.00 |
PMAT | 7.80 | 6.24 | 4.68 | 3.12 | 1.56 | 0.00 |
Labor intensity multipliers
Our task does not include a detailed description of the COCOMO II method, so we will only consider the case of a preliminary assessment of the complexity of a software project. For this assessment, it is necessary to estimate for the project the level of the seven factors of labor intensity M, -:
The influence of labor intensity factors depending on their level is determined by their numerical values, which are presented in the matrix below, (Table 15).
Table 15. The values of labor intensity multipliers, depending on the assessment of their level
Estimation of the level of labor intensity | |||||||
Extra low | Very low | Low | Nominal | High | Very high | Extra high | |
---|---|---|---|---|---|---|---|
PERS | 2.12 | 1.62 | 1.26 | 1.00 | 0.83 | 0.63 | 0.5 |
Rcpx | 0.49 | 0.60 | 0.83 | 1.00 | 1.33 | 1.91 | 2.72 |
RUSE | n / a | n / a | 0.95 | 1.00 | 1.07 | 1.15 | 1.24 |
PDIF | n / a | n / a | 0.87 | 1.00 | 1.29 | 1.81 | 2.61 |
Prex | 1.59 | 1.33 | 1.22 | 1.00 | 0.87 | 0.74 | 0.62 |
FCIL | 1.43 | 1.30 | 1.10 | 1.0 | 0.87 | 0.73 | 0.62 |
Sced | n / a | 1.43 | 1.14 | 1.00 | 1.00 | 1.00 | n / a |
From this table, in particular, it follows that if in our project low qualification of analysts, then its labor intensity will increase approximately 4 times in comparison with the project, in which top-class analysts participate. And this is not the invention of theorists, and industry statistics!
Multicomponent product evaluation
As we noted earlier (see Lecture 4. Project planning), in order to adequately plan a project and evaluate its complexity, it is necessary to perform a preliminary design of the software product. As a result of decomposition, we get a number of components (N) that make up the software product.
It should be understood that the total complexity of the project is not equal to the simple sum of the complexity of the development of each of the components:
The simple amount does not take into account the relationship of components and labor costs for their integration.
The COCOMO II methodology determines the following sequence for calculating the project's labor input for multi-component development.
Estimation of project duration
The project duration in the COCOMO II method is calculated by the formula:
Where
findings
Evaluation of labor should be a probabilistic statement. This means that for it there is a certain probability distribution, which can be very wide, if the uncertainty is high, or narrow enough, if the uncertainty is low.
Using your own experience or the experience of colleagues obtained in similar projects is the most pragmatic approach that allows you to get quite realistic estimates of the complexity and duration of the implementation of a software project, quickly and without high costs.
If there is no own experience of similar projects, and expert colleagues are not available, then it is necessary to use formal methods based on generalized industry experience. Among them, the most common are two approaches:
Non-realistic assessments are one of the most serious demotivating factors for members of the project team. Underestimation leads to planning errors and inefficient interaction. Aggressive deadlines, constant pressure, overtime, rush jobs cause the project costs to grow exponentially and indefinitely.
Comments
To leave a comment
software project management
Terms: software project management