Software Cost Estimation

 For any new software project, it is necessary to know how much it will cost to develop and how much development time will it take. These estimates are needed before development is initiated, but how is this done? Several estimation procedures have been developed and are having the following attributes in common.

  1. Project scope must be established in advanced.
  2. Software metrics are used as a support from which evaluation is made.
  3. The project is broken into small PCs which are estimated individually.
    To achieve true cost & schedule estimate, several option arise.
  4. Delay estimation
  5. Used symbol decomposition techniques to generate project cost and schedule estimates.
  6. Acquire one or more automated estimation tools.

Uses of Cost Estimation

  1. During the planning stage, one needs to choose how many engineers are required for the project and to develop a schedule.
  2. In monitoring the project's progress, one needs to access whether the project is progressing according to the procedure and takes corrective action, if necessary.

Cost Estimation Models

A model may be static or dynamic. In a static model, a single variable is taken as a key element for calculating cost and time. In a dynamic model, all variable are interdependent, and there is no basic variable.



Static, Single Variable Models: When a model makes use of single variables to calculate desired values such as cost, time, efforts, etc. is said to be a single variable model. The most common equation is:

                                C=aLb

Where    C = Costs
                L= size
                a and b are constants

The Software Engineering Laboratory established a model called SEL model, for estimating its software production. This model is an example of the static, single variable model.HTML Tutorial

                E=1.4L0.93
                DOC=30.4L0.90
                D=4.6L0.26

Where    E= Efforts (Person Per Month)
                DOC=Documentation (Number of Pages)
                D = Duration (D, in months)
                L = Number of Lines per code

Static, Multivariable Models: These models are based on method (1), they depend on several variables describing various aspects of the software development environment. In some model, several variables are needed to describe the software development process, and selected equation combined these variables to give the estimate of time & cost. These models are called multivariable models.

WALSTON and FELIX develop the models at IBM provide the following equation gives a relationship between lines of source code and effort:

                E=5.2L0.91

In the same manner duration of development is given by

                D=4.1L0.36

The productivity index uses 29 variables which are found to be highly correlated productivity as follows:

Where Wi is the weight factor for the ith variable and Xi={-1,0,+1} the estimator gives Xone of the values -1, 0 or +1 depending on the variable decreases, has no effect or increases the productivity.

Example: Compare the Walston-Felix Model with the SEL model on a software development expected to involve 8 person-years of effort.

     a.  Calculate the number of lines of source code that can be produced.

  1. Calculate the duration of the development.
  2. Calculate the productivity in LOC/PY
  3. Calculate the average manning

Solution:

The amount of manpower involved = 8PY=96persons-months

(a)Number of lines of source code can be obtained by reversing equation to give:

Then

 L (SEL) = (96/1.4)1⁄0.93=94264 LOC
                L (SEL) = (96/5.2)1⁄0.91=24632 LOC

(b)Duration in months can be calculated by means of equation

                D (SEL) = 4.6 (L) 0.26
                               = 4.6 (94.264)0.26 = 15 months
                D (W-F) = 4.1 L0.36
                               = 4.1 (24.632)0.36 = 13 months

(c) Productivity is the lines of code produced per persons/month (year)




(d)Average manning is the average number of persons required per month in the project