The most fundamental calculation in the COCOMO model is the use of the Effort Equation to estimate the number of Person-Months required to develop a project. Most of the other COCOMO results, including the estimates for Requirements and Maintenance, are derived from this quantity.
Basic COCOMO
Basic COCOMO computes software development effort (and cost) as a function of program size. Program size is expressed in estimated thousands of source lines of code (SLOC)
COCOMO applies to three classes of software projects:
- Organic projects – “small” teams with “good” experience working with “less than rigid” requirements
- Semi-detached projects – “medium” teams with mixed experience working with a mix of rigid and less than rigid requirements
- Embedded projects – developed within a set of “tight” constraints. It is also combination of organic and semi-detached projects.(hardware, software, operational)
The basic COCOMO equations take the form
Effort Applied (E) = ab(KLOC)bb [man-months]
Development Time (D) = cb(Effort Applied)db [months]
People required (P) = Effort Applied / Development Time [count]
where, KLOC is the estimated number of delivered lines (expressed in thousands ) of code for project. The coefficients ab, bb, cb and db are given in the following table:
Software project | ab | bb | cb | db |
Organic | 2.4 | 1.05 | 2.5 | 0.38 |
Semi-detached | 3.0 | 1.12 | 2.5 | 0.35 |
Embedded | 3.6 | 1.20 | 2.5 | 0.32 |
Basic COCOMO is good for quick estimate of software costs.
Intermediate COCOMO
Intermediate COCOMO computes software development effort as function of program size and a set of “cost drivers” that include subjective assessment of product, hardware, personnel and project attributes. This extension considers a set of four “cost drivers”, each with a number of subsidiary attributes:-
- Product attributes
- Required software reliability
- Size of application database
- Complexity of the product
- Hardware attributes
- Run-time performance constraints
- Memory constraints
- Volatility of the virtual machine environment
- Required turnabout time
- Personnel attributes
- Analyst capability
- Software engineering capability
- Applications experience
- Virtual machine experience
- Programming language experience
- Project attributes
- Use of software tools
- Application of software engineering methods
- Required development schedule
Detailed COCOMO
Detailed COCOMO incorporates all characteristics of the intermediate version with an assessment of the cost driver’s impact on each step (analysis, design, etc.) of the software engineering process.
The detailed model uses different effort multipliers for each cost driver attribute. These Phase Sensitive effort multipliers are each to determine the amount of effort required to complete each phase.
In detailed COCOMO, the effort is calculated as function of program size and a set of cost drivers given according to each phase of software life cycle.
A Detailed project schedule is never static.
The five phases of detailed COCOMO are:-
- plan and requirement.
- system design.
- detailed design.
- module code and test.
- integration and test.
Line Of Code
- LOC is the simplest and most popular method to measure the size of the project by couting the total number of source instruction in the developed program. In this the lines for commenting the code and header lines are ignored.
- Counting the values for LOC at the beginning of the project is difficult but at the end it is simple.
- So in order to find loc modules are sub divided into sub modules and so on until the size of leaf level module can be approximately predicted.
Function Point
- It was proposed by Alen Albrecht.
- The advantage of FP is that it can be used to easily estimate the size of a software product directly from problem specification.
- The logic behind FP is the size of software product directly dependent upon the number of different functions or features it support.