Methods of Cost Estimation:-
There is a lot of software cost estimation methods or techniques in the software industry. Here are a few techniques that will be discussed in this document:
- Algorithmic (Parametric) model
- Expert Judgment (Expertise Based)
- Top - Down
- Bottom - Up
- Estimation by Analogy
- Price to Win Estimation
Algorithmic (Parametric) Model
This software cost estimation technique use the mathematical equations to perform the software estimation. The mathematical equations are based on historical data or theory. SLOC (source line of code), function points, and other cost drivers are the inputs. For most algorithmic model, calibration to the specific software environment can be performed to improve the estimation. Examples of the parametric models are COCOMO (COnstructive COst MOdel), COCOMO II, Putnam's software life-cycle model (SLIM).
- Generate repeatable estimations
- Easy to modify input data
- Easy to refine and customize formulas
- Objectively calibrated to experience
- Unable to deal with exceptional conditions
- Some experience and factors can not be quantified
- Sometimes algorithms may be proprietary
This technique captures the experience and the knowledge of the estimator who provides the estimate based on their experience from a similar project to which they have participated. Examples are the Delphi, Wideband Delphi and Work Breakdown Structure (WBS).
- Useful in the absence of quantified, empirical data.
- Can factor in differences between past project experiences and requirements of the proposed project
- Can factor in impacts caused by new technologies, applications and languages.
- Estimate is only as good expert’s opinion
- Hard to document the factors used by the experts
This technique is also called Macro Model, which utilize the global view of the product and then partitioned into various low level components. Example of this technique is the Putnam model.
- Requires minimal project detail
- Usually faster and easier to implement
- Focus on system level activities
- Tend to overlook low level components
- No detailed basis
The cost of each software components is estimated first and then the results are combined to derive the final cost estimation for the project. An example is the COCOMO’s detailed model.
- More stable
- More detailed
- Allow each software group to hand an estimate
- May overlook system level costs
- More time consuming
Estimation by Analogy
This technique utilize the actual data that is extrapolated from a previous completed project and compare that with the proposed project in the same application domain to derive the cost estimate.
- Based on actual project data
- Impossible if no comparable project had been tackled in the past.
- How well does the previous project represent this one
The cost estimate is the price that is necessary to win the contract or the project.
- Often rewarded with the contract
Disadvantages:Time and money run out before the job is done