Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Software Cost Estimation
Outline <ul><li>Introduction </li></ul><ul><li>Inputs and Outputs </li></ul><ul><li>Methods of Estimation </li></ul><ul><l...
Cost Estimation Is Needed <ul><li>55% of projects over budget </li></ul><ul><ul><li>24 companies that developed large dist...
Cost Estimation Affects <ul><li>Planning and budgeting </li></ul><ul><ul><li>Requirements prioritization </li></ul></ul><u...
Cost Estimation During the Software Life Cycle <ul><li>Cost estimation should be done throughout the software life cycle t...
Who is the Estimator? <ul><li>Someone responsible for the implementation </li></ul><ul><ul><li>Can compare previous projec...
General Steps and Remarks <ul><li>Establish Plan </li></ul><ul><ul><li>What data should we gather </li></ul></ul><ul><ul><...
General Steps and Remarks (cont.) <ul><li>Do re-estimates during life cycle </li></ul><ul><li>Make any required changes to...
Software Cost Estimation Process <ul><li>Definition </li></ul><ul><ul><li>A set of techniques and procedures that is used ...
Inputs and Outputs to the Estimation Process <ul><li>Classical view of software estimation process [Vigder/Kark] </li></ul>
Inputs and Outputs to the Estimation Process (Cont.) <ul><li>Actual cost estimation process [Vigder/Kark] </li></ul>
Cost Estimation Accuracy <ul><li>To determine how well a cost estimation model predicts </li></ul><ul><li>Assessing model ...
Cost Estimation Methods <ul><li>Algorithmic (Parametric) model </li></ul><ul><li>Expert Judgment (Expertise Based) </li></...
Algorithmic (Parametric) Model <ul><li>Use of mathematical equations to perform software estimation </li></ul><ul><li>Equa...
Algorithmic (Parametric) Model (Cont.) <ul><li>Examples: </li></ul><ul><ul><li>COCOMO (COnstructive COst MOdel) </li></ul>...
Algorithmic (Parametric) Model (Cont.) <ul><ul><li>Putnam’s software life-cycle model (SLIM) </li></ul></ul><ul><ul><ul><l...
Algorithmic (Parametric) Model (Cont.) <ul><li>Advantages </li></ul><ul><ul><li>Generate repeatable estimations </li></ul>...
Expert Judgment <ul><li>Capture the knowledge and experience of the practitioners and providing estimates based upon all t...
Expert Judgment (Cont.) <ul><li>Advantages </li></ul><ul><ul><li>Useful in the absence of quantified, empirical data. </li...
Top - Down <ul><li>Also called Macro Model </li></ul><ul><li>Derived from the global properties of the product and then pa...
Top – Down (Cont.) <ul><li>Advantages </li></ul><ul><ul><li>Requires minimal project detail </li></ul></ul><ul><ul><li>Usu...
Bottom - Up <ul><li>Cost of each software components is estimated and then combine the results to arrive the total cost fo...
Bottom – Up (Cont.) <ul><li>Advantages </li></ul><ul><ul><li>More stable </li></ul></ul><ul><ul><li>More detailed </li></u...
Estimation by Analogy <ul><li>Comparing the proposed project to previously completed similar project in the same applicati...
Estimation by Analogy (Cont.) <ul><li>Advantages </li></ul><ul><ul><li>Based on actual project data </li></ul></ul><ul><li...
Price to Win Estimation <ul><li>Price believed necessary to win the contract </li></ul><ul><li>Advantages </li></ul><ul><u...
COCOMO 81 <ul><li>COCOMO stands for COnstructive COst MOdel </li></ul><ul><li>It is an open system First published by Dr B...
COCOMO 81 <ul><li>COCOMO has three different models (each one increasing with detail and accuracy): </li></ul><ul><ul><li>...
COCOMO 81 <ul><li>COCOMO uses two equations to calculate effort in man months (MM) and the number on months estimated for ...
COCOMO 81 <ul><li>A simple example: </li></ul><ul><li>Project is a flight control system (mission critical) with 310,000 D...
COCOMO II <ul><li>Main objectives of COCOMO II: </li></ul><ul><ul><li>To develop a software cost and schedule estimation m...
COCOMO II <ul><li>Has three different models: </li></ul><ul><li>The Application Composition Model </li></ul><ul><ul><li>Go...
COCOMO II Differences <ul><li>The exponent value b in the effort equation is replaced with a variable value based on five ...
COCOMO II Calibration <ul><li>For COCOMO II results to be accurate the model must be calibrated </li></ul><ul><li>Calibrat...
Importance of Calibration <ul><li>Proper calibration is very important </li></ul><ul><li>The original COCOMO II.1997 could...
Is COCOMO the Best? <ul><li>COCOMO is the most popular method however for any software cost estimation you should really u...
COCOMO Conclusions <ul><li>COCOMO is the most popular software cost estimation method </li></ul><ul><li>Easy to do, small ...
Conclusions <ul><li>Project costs are being poorly estimated </li></ul><ul><li>The accuracy of cost estimation has to be i...
References <ul><li>Boehm B., Clark B., Horowitz E., Madachy R., Shelby R., Westland C. (1995). Cost Models for Future Soft...
References <ul><li>Hussein, A. (2001). Introduction to Software Process Management. University of Calgary, Calgary, Canada...
Questions and Discussion
Prochain SlideShare
Chargement dans…5
×

Software cost estimation

Software Cost Estimation in Software Engineering

  • Soyez le premier à commenter

Software cost estimation

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

×