Software Cost Estimation | Software Cost Estimation Techniques

Software cost estimation is the process of predicting the effort required to develop a software system. Cost estimation can be defined as the approximate judgment of the costs for a project. It is a process to estimate the approximate cost of the software project before the development starts i.e. it describes the approximate requirements of effort, development time and resources to complete the software project. 


Cost estimation is usually measured in terms of effort. The most common metric used is person months or years (or man months or years). The effort is the amount of time for one person to work for a certain period of time. 

 

Software cost estimation is one of the crucial activities of the software development which involves predicting the effort, size and cost required to develop a software system. Without reasonably accurate cost estimation capability, project managers can’t determine how much time and manpower cost the project should take and that means the software portion of the project is out of control from its beginning; system analysts can’t make realistic hardware-software tradeoff analyses during the system design phase; software project personnel can’t tell managers and customers that their proposed budget and schedule are unrealistic. Cost estimation is one of the most challenging tasks in project management.

 

Cost estimation includes the process or methods that help us in predicting the actual and total cost that will be needed for our software and is considered as one of the complex and challenging activity for the software companies. Their goal is to  develop  software  which  is  cheap  and  at  the  same  time deliver  good  quality.  Software cost estimation is used basically by system analysts to get an approximation of the essential resources needed by a particular software project and their schedules. Important parameters in estimating cost are size, time, effort etc.

 


Techniques available for cost estimation:

1. Empirical Estimation Technique

2. Heuristic Technique 



Empirical Estimation Technique:

Empirical estimation techniques are based on making an educated guess of the project parameters and common sense. While using this technique, prior experience with development of similar project is helpful. These techniques are based on the data collected from a previously implemented project and also based on some guesses as well as assumptions. This technique takes into account the size of the software in order to provide an estimate of the amount of work required.

Two popular empirical estimation techniques are: 

·   Expert Judgment Technique

·   Delphi Cost Estimation


Expert Judgment Technique:

It is one of the most widely used estimation techniques. In this technique, an expert makes an educated guess of the problem size after analyzing the problem thoroughly. 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. Usually, the expert estimates the cost of the different components (i.e. modules or subsystems) of the system and then combines them to arrive at the overall estimate.


Shortcomings of Expert judgment:

1. Outcome is subject to human errors and individual bias.

2. The expert may overlook some factors inadvertently.

3. Expert may not have relevant experience and knowledge of all aspects of the project

 


Delphi Cost Estimation:

 

This technique tries to overcome some of the shortcomings of the expert judgment technique. Delphi cost estimation is carried out by a team comprising of a group of experts and a coordinator. The coordinator provides each estimator with a copy of the software requirements specification (SRS) document and a form for recording his cost estimate. Estimators complete their individual estimates and submit them to the coordinator. In their estimates, the estimators mention any unusual characteristic of the product which has influenced their estimation.

 

The coordinator prepares the summary of the responses of all the estimators, and also includes any unusual fact noted by any of the estimators. The prepared summary is distributed to the estimators. Based on this summary, the estimators re-estimate. This process is iterated for several rounds. However, no discussion among the estimators is allowed during the entire estimation process. After the completion of several iterations of estimations, the coordinator prepares the final estimate.




Heuristic Technique: 


Heuristic Techniques assume that the relationship among the different project parameters can be modeled using suitable mathematical expression. Once the basic parameters are known, the other parameters can be easily determined by substituting the value of the basic parameters in the mathematical expression.


Different heuristic estimation models can be divided into two classes:

 

1.  Single Variable Model

2.  Multivariable Model

 



Single Variable Estimation Models:

It provides a means to estimate the desired characteristics of a problem, using some previously estimated basic (independent) characteristic of the software product such as its size.

A single variable estimator model takes the following form:

Estimated Parameter=c1*ed1

Here, e is a characteristic of the software which has already been calculated.

Estimated parameter is the dependent parameter to be estimated. The dependent parameters to be estimated could be effort, duration, staff size etc.

c1 and d1 are constants. The values of the constants c1 and d1 are usually determined using data collected from past projects (historical data).

The COCOMO model is an example of Single Variable Estimation model.



Multivariable Cost Estimation Model:

A multivariable estimation model takes the following form:

Estimated Resources=c1*e1d1 + c2*e2d2 + …

Where e1, e2, … are the basic (independent) characteristics of the software already estimated. c1, c2, d1, d2, are constants.


Multivariable Estimation Models are expected to give more accurate estimate compared to the Single Variable Models, since a project parameter is typically influenced by several independent parameters. The independent parameters influence the dependent parameter to different extents. This is modeled by the constants c1,c2,d1,d2...... Values of these constants are determined from historical data.

The Intermediate COCOMO Model is an example of Multivariable Cost Estimation Model.






Post a Comment

0 Comments