Title: Software Cost Estimation
1Software Cost Estimation
- Seth Bowen
- Samuel Lee
- Lance Titchkosky
2Outline
- Introduction
- Inputs and Outputs
- Methods of Estimation
- COCOMO
- Conclusion
3Cost Estimation Is Needed
- 55 of projects over budget
- 24 companies that developed large distributed
systems (1994) - 53 of projects cost 189 more than initial
estimates - Standish Group of 8,380 projects (1994)
4Cost Estimation
- An approximate judgment of the costs for a
project - Many variables
- Often measured in terms of effort (i.e., person
months/years) - Different development environments will determine
which variables are included in the cost value - Management costs
- Development costs
- Training costs
- Quality assurance
- Resources
5Cost Estimation Affects
- Planning and budgeting
- Requirements prioritization
- Schedule
- Resource allocation
- Project management
- Personnel
- Tasks
6Cost Estimation During the Software Life Cycle
- Cost estimation should be done throughout the
software life cycle to allow for refinement - Need effective monitoring and control of the
software costs to verify and improve accuracy of
estimates - At appropriate level of detail
- Gathering data should not be difficult
- Success of a cost estimate method is not
necessarily the accuracy of the initial
estimates, but rather the rate at which estimates
converge to the actual cost
7Who is the Estimator?
- Someone responsible for the implementation
- Can compare previous projects in organization to
current project - Usually experienced
- Someone from outside the organization
- Can provide unbiased estimate
- Tend to use empirical methods of estimation
- Difficulties
- Lack of confidence that a model will outperform
an expert - Lack of historical data to calibrate the model
8General Steps and Remarks
- Establish Plan
- What data should we gather
- Why are we gathering this data
- What do we hope to accomplish
- Do cost estimation for initial requirements
- Decomposition
- Use several methods
- There is no perfect technique
- If get wide variances in methods, then should
re-evaluate the information used to make estimates
9General Steps and Remarks (cont.)
- Do re-estimates during life cycle
- Make any required changes to development
- Do a final assessment of cost estimation at the
end of the project
10Software Cost Estimation Process
- Definition
- A set of techniques and procedures that is used
to derive the software cost estimate - Set of inputs to the process and then the process
will use these inputs to generate the output
11Inputs and Outputs to the Estimation Process
- Classical view of software estimation process
Vigder/Kark
12Inputs and Outputs to the Estimation Process
(Cont.)
- Actual cost estimation process Vigder/Kark
13Cost Estimation Accuracy
- To determine how well a cost estimation model
predicts - Assessing model performance
- Absolute Error (Epred Eact)
- Percentage Error (Epred Eact) / Eact
- Mean Magnitude of Relative Error
-
14Cost Estimation Methods
- Algorithmic (Parametric) model
- Expert Judgment (Expertise Based)
- Top Down
- Bottom Up
- Estimation by Analogy
- Price to Win Estimation
15Algorithmic (Parametric) Model
- Use of mathematical equations to perform software
estimation - Equations are based on theory or historical data
- Use input such as SLOC, number of functions to
perform and other cost drivers - Accuracy of model can be improved by calibrating
the model to the specific environment
16Algorithmic (Parametric) Model (Cont.)
- Examples
- COCOMO (COnstructive COst MOdel)
- Developed by Boehm in 1981
- Became one of the most popular and most
transparent cost model - Mathematical model based on the data from 63
historical software project - COCOMO II
- Published in 1995
- To address issue on non-sequential and rapid
development process models, reengineering, reuse
driven approaches, object oriented approach etc - Has three submodels application composition,
early design and post-architecture
17Algorithmic (Parametric) Model (Cont.)
- Putnams software life-cycle model (SLIM)
- Developed in the late 1970s
- Based on the Putnams analysis of the life-cycle
in terms of a so-called Rayleigh distribution of
project personnel level versus time. - Quantitative software management developed three
tools SLIM-Estimate, SLIM-Control and
SLIM-Metrics.
18Algorithmic (Parametric) Model (Cont.)
- 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
19Expert Judgment
- Capture the knowledge and experience of the
practitioners and providing estimates based upon
all the projects to which the expert
participated. - Examples
- Delphi
- Developed by Rand Corporation in 1940 where
participants are involved in two assessment
rounds. - Work Breakdown Structure (WBS)
- A way of organizing project element into a
hierarchy that simplifies the task of budget
estimation and control
20Expert Judgment (Cont.)
- 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 experts opinion
- Hard to document the factors used by the experts
21Top - Down
- Also called Macro Model
- Derived from the global properties of the product
and then partitioned into various low level
components - Example Putnam model
22Top Down (Cont.)
- 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
23Bottom - Up
- Cost of each software components is estimated and
then combine the results to arrive the total cost
for the project - The goal is to construct the estimate of the
system from the knowledge accumulated about the
small software components and their interactions - An example COCOMOs detailed model
24Bottom Up (Cont.)
- Advantages
- More stable
- More detailed
- Allow each software group to hand an estimate
- Disadvantages
- May overlook system level costs
- More time consuming
25Estimation by Analogy
- Comparing the proposed project to previously
completed similar project in the same application
domain - Actual data from the completed projects are
extrapolated - Can be used either at system or component level
26Estimation by Analogy (Cont.)
- 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
27Price to Win Estimation
- Price believed necessary to win the contract
- Advantages
- Often rewarded with the contract
- Disadvantages
- Time and money run out before the job is done
28COCOMO 81
- COCOMO stands for COnstructive COst MOdel
- It is an open system First published by Dr Barry
Bohem in 1981 - Worked quite well for projects in the 80s and
early 90s - Could estimate results within 20 of the actual
values 68 of the time
29COCOMO 81
- COCOMO has three different models (each one
increasing with detail and accuracy) - Basic, applied early in a project
- Intermediate, applied after requirements are
specified. - Advanced, applied after design is complete
- COCOMO has three different modes
- Organic relatively small software teams
develop software in a highly familiar, in-house
environment Bohem - Embedded operate within tight constraints,
product is strongly tied to complex of hardware,
software, regulations, and operational
procedures Bohem - Semi-detached intermediate stage somewhere
between organic and embedded. Usually up to 300
KDSI
30COCOMO 81
- COCOMO uses two equations to calculate effort in
man months (MM) and the number on months
estimated for project (TDEV) - MM is based on the number of thousand lines of
delivered instructions/source (KDSI) - MM a(KDSI)b EAF
- TDEV c(MM)d
- EAF is the Effort Adjustment Factor derived from
the Cost Drivers, EAF for the basic model is 1 - The values for a, b, c, and d differ depending on
which mode you are using
31COCOMO 81
- A simple example
- Project is a flight control system (mission
critical) with 310,000 DSI in embedded mode - Reliability must be very high (RELY1.40). So we
can calculate - Effort 1.403.6(319)1.20 5093 MM
- Schedule 2.5(5093)0.32 38.4 months
- Average Staffing 5093 MM/38.4 months 133 FSP
32COCOMO II
- Main objectives of COCOMO II
- To develop a software cost and schedule
estimation model tuned to the life cycle
practices of the 1990s and 2000s - To develop software cost database and tool
support capabilities for continuous model
improvement - From Cost Models for Future Software Life Cycle
Processes COCOMO 2.0," Annals of Software
Engineering, (1995).
33COCOMO II
- Has three different models
- The Application Composition Model
- Good for projects built using rapid application
development tools (GUI-builders etc) - The Early Design Model
- This model can get rough estimates before the
entire architecture has been decided - The Post-Architecture Model
- Most detailed model, used after overall
architecture has been decided on
34COCOMO II Differences
- The exponent value b in the effort equation is
replaced with a variable value based on five
scale factors rather then constants - Size of project can be listed as object points,
function points or source lines of code (SLOC). - EAF is calculated from seventeen cost drivers
better suited for today's methods, COCOMO81 has
fifteen - A breakage rating has been added to address
volatility of system
35COCOMO II Calibration
- For COCOMO II results to be accurate the model
must be calibrated - Calibration requires that all cost driver
parameters be adjusted - Requires lots of data, usually more then one
company has - The plan was to release calibrations each year
but so far only two calibrations have been done
(II.1997, II.1998) - Users can submit data from their own projects to
be used in future calibrations
36Importance of Calibration
- Proper calibration is very important
- The original COCOMO II.1997 could estimate within
20 of the actual values 46 of the time. This
was based on 83 data points. - The recalibration for COCOMO II.1998 could
estimate within 30 of the actual values 75 of
the time. This was based on 161 data points.
37Is COCOMO the Best?
- COCOMO is the most popular method however for any
software cost estimation you should really use
more then one method - Best to use another method that differs
significantly from COCOMO so your project is
examined from more then one angle - Even companies that sell COCOMO based products
recommend using more then one method. Softstar
(creators of Costar) will even provide you with
contact information for their competitors
products
38COCOMO Conclusions
- COCOMO is the most popular software cost
estimation method - Easy to do, small estimates can be done by hand
- USC has a free graphical version available for
download - Many different commercial version based on COCOMO
they supply support and more data, but at a
price
39Conclusions
- Project costs are being poorly estimated
- The accuracy of cost estimation has to be
improved - Data collection
- Use of tools
- Use several methods of estimation
40References
- Boehm B., Clark B., Horowitz E., Madachy R.,
Shelby R., Westland C. (1995). Cost Models for
Future Software Life Cycle Processes COCOMO 2.0,
Annals of Software Engineering.
http//sunset.usc.edu/research/COCOMOII/Docs/stc.p
df. - Boehm B., Clark B., Horowitz E., Madachy R.,
Shelby R., Westland C. (1995). An Overview of the
COCOMO 2.0 Software Cost Model.
http//sunset.usc.edu/research/COCOMOII/Docs/stc.p
df. - Boehm B., Chulani S., Clark B. (1997).
Calibration Results of COCOMO II.1997.
http//sunset.usc.edu/publications/TECHRPTS/1998/u
sccse98-502/CalPostArch.pdf. - Boehm B., Chulani S., Clark B. (1997).
Calibrating the COCOMO II Post Architecture
Model. http//sunset.usc.edu/Research_Group/Sunita
/down/calpap.pdf. - Boehm B., Chulani S., Reifer D., The Rosetta
Stone Making COCOMO 81 Files Work With COCOMO
II. http//sunset.usc.edu/publications/TECHRPTS/19
98/usccse98-516/usccse98-516.pdf. - Chulani, S. (1998). Software Development Cost
Estimation Approaches A Survey. IBM Research. - Humphrey, W.S. (1990). Managing the Software
Process. Addison-Wesley Publishing Company, New
York, NY.
41References
- Hussein, A. (2001). Introduction to Software
Process Management. University of Calgary,
Calgary, Canada. http//sern.ucalgary.ca/courses/S
ENG/621/W01/intro.ppt. - Londeix, B. (1987). Cost Estimation for Software
Development. Addison-Wesley Publishing Company,
New York, NY. - Pressman, R.S. (2001). Software Engineering A
Practitioners Approach. McGraw-Hill Higher
Education, New York, NY. - Vigder, M. R. and Kark, A. W. (1994). Software
Cost Estimation and Control. Software Engineering
Institute for Information Technology.
http//wwwsel.iit.nrc.ca/seldocs/cpdocs/NRC37116.p
df. - Wu, L. (1997). The comparison of the Software
Cost Estimating Methods. University of Calgary,
Calgary, Canada. http//sern.ucalgary.ca/courses/s
eng/621/W97/wul/seng621_11.html. - Basic COCOMO Software Cost Model.
http//www.jsc.nasa.gov/bu2/COCOMO.html. - COCOMO 2, Softstar Systems. http//www.softstarsys
tems.com/cocomo2.htm. - Answers to Frequently Asked Questions, Softstar
Systems. http//www.softstarsystems.com/faq.htm.
42Questions and Discussion