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.
0 Comments
if you have any doubts plz let me know...