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).
Advantages:
- Generate repeatable estimations
- Easy to modify input data
- Easy to refine and customize formulas
- Objectively calibrated to experience
Disadvantages:
- 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).
Advantages:
- 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.
Disadvantages:
- 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.
Advantages:
- Requires minimal project detail
- Usually faster and easier to implement
- Focus on system level activities
Disadvantages:
- 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.
Advantages:
- More stable
- More detailed
- Allow each software group to hand an estimate
Disadvantages:
- 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.
Advantages:
- Based on actual project data
Disadvantages:
- 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.
Advantages:
- Often rewarded with the contract
Disadvantages:
Time and money run out before
the job is done
Post a Comment