Welcome to part 4 of our blog series reviewing software estimation cost models; we have previously covered non-algorithmic methods, and the COSMIC and Delphi methods. Today we will be discussing COCOMO II.
COCOMO stands for COnstructive COst MOdel – a method to calculate the cost of software project delivery using data from 63 historical projects. It was developed by Barry W. Boehm in the 70s (which in the software world seems ancient!) for his work in the Aerospace industry.
COCOMO II is an upgraded version of COCOMO that was published in 2000. It increased the number of historical projects to 163 and was fine-tuned to the modern software development methodologies that were popular at the time. COCOMO II is an open model and you can find free tools that allow you to calculate the cost of your project using this method.
The Idea behind COCOMO is to calculate the cost and predict the schedule of the project based on the following parameters:
COCOMO accepts two types of software size: Lines Of Code (LOC) expressed in thousands, so KLOC, and Function Points. KLOC is more archaic, as nowadays nobody expresses the size of software in lines of code. This is too difficult to predict, and was probably easier in the past. The Function Points approach makes more sense today as it is more plausible to size the software using this approach – you focus on the functionality required and how it will be implemented.
COCOMO allows the estimator to use 15 different drivers which may impact the cost. These drivers can be specified in one of six available ratings: very low, low, nominal, high, very high and extra high. Not all ratings are available for all cost drivers. For example, for the “Programming language experience” cost driver, the model allows only very low, low, nominal, and high ratings.
Behind these ratings, there are particular values (multipliers) that affect the final cost of the project. These values were calculated based on the original 63 projects and can be modified to adjust to, for example, a different Function Points method used for software sizing (read below).
The output of the COCOMO model calculation is the cost of the software expressed in work hours required to deliver the requirements. It can also calculate the most efficient number of people to execute the project.
While the calculation of the cost with this method is relatively easy, especially having access to free tools to do so, the challenge is to calculate the size of the software. The COCOMO model doesn’t cover software sizing, so it should only be considered an additional step in cost estimation.
Basic COCOMO uses Function Points for its calculations which may not be applicable to all kinds of projects. Companies already using COSMIC Function Points cannot easily use COCOMO as the points won’t match without modifying the cost drivers. There are papers available describing how to do it with approaches that provide relatively good results for some types of projects.
There is a free COCOMO II calculator available online for you to try out: http://softwarecost.org/tools/COCOMO/. It allows you to get a basic concept of what Cost Drivers are and how they impact the project cost. Keep in mind it uses Function Points, so if you use COSMIC or other methods to size the software, this tool probably won’t give you the right results.