SOFTWARE PROJECT ESTIMATION
Software project planning encompasses five major activities
Estimation, scheduling, risk analysis, quality management planning, and change
management planning
Estimation determines how much money, effort, resources, and time it will take to build a
specific system or product. Define scope and feasibility
Software scope describes
The functions and features that are to be delivered to end users
The data that are input to and output from the system
The "content" that is presented to users as a consequence of using the software
The performance, constraints, interfaces, and reliability that bound the system
Software feasibility has four dimensions
Technology Is the project technically feasible? Is it within the state of the art?
Can defects be reduced to a level matching the application's needs?
Finance Is is financially feasible? Can development be completed at a cost that
the software organization, its client, or the market can afford?
Time Will the project's time-to-market beat the competition?
Resources Does the software organization have the resources needed to succeed
in doing the project?
The accuracy of a software project estimate is predicated on
The degree to which the planner has properly estimated the size (e.g., KLOC) of
the product to be built
The ability to translate the size estimate into human effort, calendar time, and
money
The degree to which the project plan reflects the abilities of the software team
The stability of both the product requirements and the environment that supports
the software engineering effort
Options for achieving reliable cost and effort estimates
Delay estimation until late in the project (we should be able to achieve 100%
accurate estimates after the project is complete)
Base estimates on similar projects that have already been completed
Use relatively simple decomposition techniques to generate project cost and effort
estimates
Use one or more empirical estimation models for software cost and effort
estimation
Decomposition techniques
These take a "divide and conquer" approach.
2 approaches are used
Problem-based estimation
Based on either source lines of code or function point estimates
Process-based estimation
Based on the effort required to accomplish each task
Empirical estimation models
Offer a potentially valuable estimation approach if the historical data used to seed
the estimate is good
PROBLEM BASED ESTIMATION TECHNIQUE
1) Start with a bounded statement of scope
2) Decompose the software into problem functions that can each be estimated individually
3) Compute an LOC or FP value for each function
4) Derive cost or effort estimates by applying the LOC or FP values to your baseline
productivity metrics (e.g., LOC/person-month or FP/person-month)
5) Combine function estimates to produce an overall estimate for the entire project
For both approaches, the planner uses lessons learned to estimate an optimistic, most
likely, and pessimistic size value for each function or count (for each information
domain value)
Then the expected size value S is computed as follows:
S = (Sopt + 4Sm + Spess)/6
EXAMPLE OF LOC BASED ESTIMATION FOR CAD SOFTWARE
Function
Estimated LOC
User interface and control facilities (UICF)
2,300
Two-dimensional geometric analysis (2DGA)
5,300
Three-dimensional geometric analysis (3DGA)
6,800
Database management (DBM)
3,350
Computer graphics display facilities (CGDF)
4,950
Peripheral control function (PCF)
2,100
Design analysis modules (DAM)
8,400
Estimated lines of code
33,200
Estimation table
Estimated lines of code = W = 33,200
Let,Average productivity = 620 LOC/pm = X
Labor rate = $8,000 per month = Y
So,Cost per line of code = Z = Y/X = $13 (approx.)
Total estimated project cost = W*Z = $431,000 (approx.)
Estimated effort = W/X = 54 person-months (approx)
EXAMPLE OF FP BASED ESTIMATION FOR CAD SOFTWARE
value adjustment factors
Now, FPestimated = count-total [0.65 + 0.01 (Fi)]
Fi (i = 1 to 14 are value adjustment factors)
So, FPestimated = W = 320 [0.65 + 0.01 52] = 375 (approx.)
Let, Average Productivity = X = 6.5 FP/pm
Labor rate = Y = $8,000 per month
So, Cost per FP = Z = Y/X = $1,230 (approx.)
Total estimated project cost = W*Z = $461,000 (approx.)
-
Estimated effort = W/X = 58 person-months (approx)
EMPIRICAL ESTIMATION MODEL
-
Uses empirically derived formulas to predict effort as a function of LOC or
FP.
The empirical data are derived from a limited sample of projects
So, no estimation model is appropriate for all classes of s/w and in all
development environments.
STRUCTURE OF EMPIRICAL MODEL
E = A + B (ev)c
Here,
A, B, and C are empirically derived constants
E is effort in person-months
ev is the estimation variable (either LOC or FP)
Example of a LOC-oriented estimation model (Bailey-Basili model)
E = 5.5 + 0.73 (KLOC)1.16
Example of a FP-oriented estimation model (Kemerer model)
E = -37 + 0.96 FP
The COCOMO II Model (by Barry Boehm)
Its a hierarchy of estimation models.
It uses object points.
Object point is computed using counts of the number of
Screens (at the user interface)
Reports
Components likely to be required to build the application
Complexity weight
Object type
Simple
Medium
Difficult
Screen
Report
3GL component
10
once complexity is determined for each object, the object point count is determined by
multiplying the original number of object instances by weighting factor and
summing to obtain a total object point.
percentage of reuse is estimated and object point count is estimated by,
NOP = (object points) [(100-%reuse)/100]
NOP = New Object Points
Object Points = Weighted Total
%reuse = Percent of reuse
productivity rate is calculated as,
PROD=NOP/Person-month
Estimated Effort is calculated by,
Estimated effort = NOP/PROD
PROD = Productivity Rate, PROD = NOP/person-month
SOFTWARE EQUATION (multivariate model)BY PUTNAM
E = [LOC B0.333/P]3 (1/t4)
Here, E = effort in person-months or person-years
t = project duration in months or years
B = special skills factor
P = productivity parameter
For small programs (KLOC = 5 to 15), B = 0.16
For programs greater than 70 KLOC, B = 0.39
P = 2000 for development of real-time embedded s/w
P = 10,000 for telecommunication and systems s/w
P = 28,000 for business systems applications
Simplified formulas
tmin = 8.14 (LOC/P)0.43 in months for tmin > 6 months
tmin = minimum development time
E = 180 Bt3 in person-months for E 20 person-months
Here t is represented in years