COCOMO Dr. Prem Kumar Singuluri M.Tech ., M.Phil., Ph.D ., MISTE, AMIEI Professor, Department of Computer Science and Engineering GPCET, Kurnool Software Engineering
COnstructive COst estimation MOdel (COCOMO) was proposed by Boehm [1981]. COCOMO prescribes a three stage process for project estimation. In the first stage, an initial estimate is arrived at. Over the next two stages, the initial estimate is refined to arrive at a more accurate estimate. COCOMO uses both single and multivariable estimation models at different stages of estimation. The three stages of COCOMO estimation technique are—basic COCOMO, intermediate COCOMO, and complete COCOMO
Types of Projects in the COCOMO Model Organic: A software project is said to be an organic type if the team size required is adequately small, the problem is well understood and has been solved in the past and also the team members have a nominal experience regarding the problem. Semi-detached : A software project is said to be a Semi-detached type if the vital characteristics such as team size, experience, and knowledge of the various programming environments lie in between organic and embedded. Embedded: A software project requiring the highest level of complexity, creativity, and experience requirement falls under this category. Such software requires a larger team size than the other two models and also the developers need to be sufficiently experienced and creative to develop such complex models.
Basic COCOMO Model The Basic COCOMO model is a straightforward way to estimate the effort needed for a software development project. It uses a simple mathematical formula to predict how many person-months of work are required based on the size of the project, measured in thousands of lines of code (KLOC). It estimates effort and time required for development using the following expression: E = a*(KLOC) b PM Tdev = c*(E) d Person required = Effort/ Time Where, E is effort applied in Person-Months KLOC is the estimated size of the software product indicate in Kilo Lines of Code Tdev is the development time in months a, b, c are constants determined by the category of software project given in below table.
The above formula is used for the cost estimation of the basic COCOMO model and also is used in the subsequent models. The constant values a, b, c, and d for the Basic Model for the different categories of the software projects are:
Example of Basic COCOMO Model Suppose that a Basic project was estimated to be 400 KLOC (kilo lines of code). Calculate effort and time for each of the three modes of development. All the constants value provided in the following table: Solution From the above table we take the value of constant a,b,c and d. For organic mode, effort = 2.4 × (400) 1.05 ≈ 1295 person-month. dev. time = 2.5 × (1295) 0.38 ≈ 38 months. For semi-detach mode, effort = 3 × (400) 1.12 ≈ 2462 person-month. dev. time = 2.5 × (2462) 0.35 ≈ 38 months. For Embedded mode, effort = 3.6 × (400) 1.20 ≈ 4772 person-month. dev. time = 2.5 × (4772) 0.32 ≈ 38 months.
Intermediate COCOMO Model The basic COCOMO model assumes that the effort is only a function of the number of lines of code and some constants evaluated according to the different software systems. However, in reality, no system’s effort and schedule can be solely calculated based on Lines of Code. For that, various other factors such as reliability, experience, and Capability. These factors are known as Cost Drivers (multipliers) and the Intermediate Model utilizes 15 such drivers for cost estimation.
Classification of Cost Drivers and their Attributes: The cost drivers are divided into four categories Product attributes: Required software reliability extent Size of the application database The complexity of the software Hardware attributes Run-time performance constraints Memory constraints The volatility of the virtual machine environment Required turnabout time
Personal attributes Analyst capability Software engineering capability Application experience Virtual machine experience Programming language experience Project attributes Use of software tools Application of software engineering methods Required development schedule
Now these 15 attributes get a 6-point scale ranging from "very low" to "extra high'. These ratings can be viewed as
Intermediate COCOMO Model equation: E = a*(KLOC) b * EAF PM Tdev = c*(E) d Where, E is effort applied in Person-Months KLOC is the estimated size of the software product indicate in Kilo Lines of Code EAF is the Effort Adjustment Factor (EAF) is a multiplier used to refine the effort estimate obtained from the basic COCOMO model. Tdev is the development time in months a, b, c are constants determined by the category of software project
Example: Consider a project having 30,000 lines of code which is embedded software with critical area hence reliability is high. The estimation can be
Complete COCOMO The complete COCOMO model considers these differences in characteristics of the subsystems and estimates the effort and development time as the sum of the estimates for the individual sub-systems Let us consider the following development project as an example application of the complete COCOMO model. A distributed management information system (MIS) product for an organization having offices at several places across the country can have the following sub-component: Database part , Graphical user interface (GUI) part and Communication part of these, the communication part can be considered as embedded software. The database part could be semi-detached software, and the GUI part organic software. The costs for these three components can be estimated separately, and summed up to give the overall cost of the system.