Saurabh Bilgaiyan
Ph.D. Scholar (CSE)
School of Computer
Engineering,
KIIT University, Bhubaneswar
Software Cost Estimation
Contents
 Fundamentals of Software Cost Estimation &
Pricing
 Cost Estimation During the Software Life Cycle
 Software Cost Estimation Process
 Methods for Cost Estimation
 Conclusion
 References
Fundamentals of Software Cost Estimation
& Pricing
 Hardware and software costs.
 Travel and training costs.
 Effort costs (the dominant factor in most
projects)
 The salaries of engineers involved in the project;
 Social and insurance costs.
 Effort costs must take overheads into account
 Costs of building, heating, lighting.
 Costs of networking and communications.
 Costs of shared facilities (e.g library, staff
restaurant, etc.).
Software Cost Components
Fundamentals of Software Cost Estimation
& Pricing
Costing & Pricing
 Estimates are made to discover the cost, to the
developer, of producing a software system.
 There is not a simple relationship between the
development cost and the price charged to the
customer.
 Broader organisational, economic, political and
business considerations influence the price
charged.
Fundamentals of Software Cost Estimation
& Pricing
Software Pricing Factors
Market
opportunity
A development organisation may quote a low price because it
wishes to move into a new segment of the software market.
Accepting a low profit on one project may give the opportunity
of more profit later. The experience gained may allow new
products to be developed.
Cost estimate
uncertainty
If an organisation is unsure of its cost estimate, it may increase
its price by some contingency over and above its normal profit.
Contractual terms A customer may be willing to allow the developer to retain
ownership of the source code and reuse it in other projects. The
price charged may then be less than if the software source code
is handed over to the customer.
Requirements
volatility
If the requirements are likely to change, an organisation may
lower its price to win a contract. After the contract is awarded,
high prices can be charged for changes to the requirements.
Financial health Developers in financial difficulty may lower their price to gain
a contract. It is better to make a smaller than normal profit or
break even than to go out of business.
Cost 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
General steps for Cost Estimation
 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
 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
Software 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
Input & Output for the Estimation Process
Methods for Software Cost Estimation
 Algorithmic (Parametric) model
 Expert Judgment (Expertise Based)
 Top – Down
 Bottom – Up
 Estimation by Analogy
 Price to Win Estimation
Algorithmic (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
 Advantages
 Generate repeatable
estimations
 Easy to modify input data
 Easy to refine and
customize formulas
 Objectively calibrated to
experience
Advantages & Disadvantages
 Disadvantages
 Unable to deal with
exceptional conditions
 Some experience and
factors can not be
quantified
 Sometimes algorithms
may be proprietary
Expert 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
 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
Advantages & Disadvantages
 Disadvantages
 Estimate is only as good
expert’s opinion
 Hard to document the
factors used by the experts
Top-Down
 Also called Macro Model
 Derived from the global properties of the product and
then partitioned into various low level components
 Example – Putnam model
 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
Advantages & Disadvantages
Bottom-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 – COCOMO’s detailed modelAdvantages & Disadvantages
 Advantages
 More stable
 More detailed
 Allow each software group to hand an estimate
 Disadvantages
 May overlook system level costs
 More time consuming
Estimation 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 levelAdvantages & Disadvantages
 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
Price to Win Estimation
 Price believed necessary to win the contract
Advantages & Disadvantages
 Advantages
 Often rewarded with the contract
 Disadvantages
 Time and money run out before the job is
done
Conclusion
 Accurate software cost estimation is a primary &
essential task for a successful software project
 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
References
 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.pdf.
 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.pdf.
 Boehm B., Chulani S., Clark B. (1997). Calibration Results of COCOMO
II.1997. http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98-
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/1998/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.

Software cost estimation

  • 1.
    Saurabh Bilgaiyan Ph.D. Scholar(CSE) School of Computer Engineering, KIIT University, Bhubaneswar Software Cost Estimation
  • 2.
    Contents  Fundamentals ofSoftware Cost Estimation & Pricing  Cost Estimation During the Software Life Cycle  Software Cost Estimation Process  Methods for Cost Estimation  Conclusion  References
  • 3.
    Fundamentals of SoftwareCost Estimation & Pricing  Hardware and software costs.  Travel and training costs.  Effort costs (the dominant factor in most projects)  The salaries of engineers involved in the project;  Social and insurance costs.  Effort costs must take overheads into account  Costs of building, heating, lighting.  Costs of networking and communications.  Costs of shared facilities (e.g library, staff restaurant, etc.). Software Cost Components
  • 4.
    Fundamentals of SoftwareCost Estimation & Pricing Costing & Pricing  Estimates are made to discover the cost, to the developer, of producing a software system.  There is not a simple relationship between the development cost and the price charged to the customer.  Broader organisational, economic, political and business considerations influence the price charged.
  • 5.
    Fundamentals of SoftwareCost Estimation & Pricing Software Pricing Factors Market opportunity A development organisation may quote a low price because it wishes to move into a new segment of the software market. Accepting a low profit on one project may give the opportunity of more profit later. The experience gained may allow new products to be developed. Cost estimate uncertainty If an organisation is unsure of its cost estimate, it may increase its price by some contingency over and above its normal profit. Contractual terms A customer may be willing to allow the developer to retain ownership of the source code and reuse it in other projects. The price charged may then be less than if the software source code is handed over to the customer. Requirements volatility If the requirements are likely to change, an organisation may lower its price to win a contract. After the contract is awarded, high prices can be charged for changes to the requirements. Financial health Developers in financial difficulty may lower their price to gain a contract. It is better to make a smaller than normal profit or break even than to go out of business.
  • 6.
    Cost Estimation Duringthe 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
  • 7.
    General steps forCost Estimation  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  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
  • 8.
    Software Cost EstimationProcess  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 Input & Output for the Estimation Process
  • 9.
    Methods for SoftwareCost Estimation  Algorithmic (Parametric) model  Expert Judgment (Expertise Based)  Top – Down  Bottom – Up  Estimation by Analogy  Price to Win Estimation
  • 10.
    Algorithmic (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  Advantages  Generate repeatable estimations  Easy to modify input data  Easy to refine and customize formulas  Objectively calibrated to experience Advantages & Disadvantages  Disadvantages  Unable to deal with exceptional conditions  Some experience and factors can not be quantified  Sometimes algorithms may be proprietary
  • 11.
    Expert Judgment  Capturethe 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  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 Advantages & Disadvantages  Disadvantages  Estimate is only as good expert’s opinion  Hard to document the factors used by the experts
  • 12.
    Top-Down  Also calledMacro Model  Derived from the global properties of the product and then partitioned into various low level components  Example – Putnam model  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 Advantages & Disadvantages
  • 13.
    Bottom-Up  Cost ofeach 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 – COCOMO’s detailed modelAdvantages & Disadvantages  Advantages  More stable  More detailed  Allow each software group to hand an estimate  Disadvantages  May overlook system level costs  More time consuming
  • 14.
    Estimation 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 levelAdvantages & Disadvantages  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
  • 15.
    Price to WinEstimation  Price believed necessary to win the contract Advantages & Disadvantages  Advantages  Often rewarded with the contract  Disadvantages  Time and money run out before the job is done
  • 16.
    Conclusion  Accurate softwarecost estimation is a primary & essential task for a successful software project  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
  • 17.
    References  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.pdf.  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.pdf.  Boehm B., Chulani S., Clark B. (1997). Calibration Results of COCOMO II.1997. http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98- 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/1998/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.

Editor's Notes

  • #2 Dr. Samaresh Mishra Dean
  • #3 Objectives
  • #4 Software Cost Component
  • #5 Software Cost Component
  • #6 Software Cost Component
  • #7 Software Cost Component
  • #8 Software Cost Component
  • #9 Software Cost Component
  • #10 Software Cost Component
  • #11 Software Cost Component
  • #12 Software Cost Component
  • #13 Software Cost Component
  • #14 Software Cost Component
  • #15 Software Cost Component
  • #16 Software Cost Component
  • #17 Software Cost Component
  • #18 Software Cost Component