Any cost estimation model can be viewed as a function that outputs the cost estimate. The basic idea of having a model or procedure for cost estimation is that it reduces the problem of estimation of determining the value of he “key parameters” that characterize the project, based on which the cost can be estimated.
The primary factor that controls the cost is the size of the project. That is, the larger the project, the greater the cost & resource requirement. Other factors that affect the cost include programmer ability, experience of developers, complexity of the project, & reliability requirements.
The goal of a cost model is to determine which of these many parameters have significant effect on cost & then to discover the relationships between the cost. The most common approach for estimating effort is to make a function of a single variable. Often this variable is the project size, & the equation of efforts is:
EFFORT = a x size b
Where a & b are constants.
If the size estimate is in KDLOC, the total effort, E, in person-months can be given by the equation.
E = 5.2 (KDLOC) 91
We’ll be covering the following topics in this tutorial:
On Size Estimation
Though the single variable cost models with size as the independent variable result in simple models that can be easily obtained, applying them for estimation is not simple. The reason is that these models now require size as the input, & size of the project is not known early in development & has to be estimated.
For estimating the size, the system is generally partitioned into components it is likely to have. Once size estimates for components are available, to get the overall size estimate for the system, the estimates for all the components can be added up. Similar property does not hold for cost estimation, as cost of developing a system is not the sum of costs of developing the components. With the size-based models, if the size estimate is inaccurate, the cost estimates produced by the models will also be inaccurate.
The Constructive cost model (COCOMO) was developed by Boehm. This model also estimates the total effort in terms of person-months of the technical project staff. The effort estimate includes development, management, and support tasks but does not include the cost of the secretarial and other staff that might be needed in an organization. The basic steps in this model are: –
1. Obtain an initial estimate of the development effort from the estimate of thousands of delivered lines of source code (KDLOC).
2. Determine a set of 15 multiplying factors from different attributes of the project.
3. Adjust the effort estimate by multiplying the initial estimate with all the multiplying factors.
The initial estimate is determined by an equation of the form used in the static single – variable models, using KDLOC as the measures of size. To determine the initial effort Ei in person-months the equation used is of the type
Ei = a * (KDLOC)b.
The value of the constants a and b depend on the project type. In COCOMO, projects are categorized into three types – organic, semidetached, and embedded.
Organic projects are in an area in which the organization has considerable experience and requirements are less stringent. A small team usually develops such systems. Examples of this type of project are simple business systems, simple inventory management systems, and data processing systems.