Cost Estimation Methods for Software Engineering
Total Page:16
File Type:pdf, Size:1020Kb
Cost Estimation Methods For Software Engineering By Andre Ladeira Dissertation submitted in partial fulfillment of the requirements for the degree Magister lngeneriae in Engineering Management In the faculty of Engineering at the Rand Afrikaans University Supervisor: Prof L Pretorius January 2002 Cost Estimation Methods for Software Engineering Executive Summary This dissertation summarizes several classes of software cost estimation models and techniques. Experience to date indicates that expertise-based techniques are less mature than the other classes of techniques (algorithmic models), but that all classes of techniques are challenged by the rapid pace of change in software technology. The primary conclusion is that no single technique is best for all situations, and that a careful comparison of the results of several approaches is most likely to produce realistic estimates. As more pressure on accurate cost estimation increase, research attention is now directed at gaining a better understanding of the software-engineering process as wall as constructing and evaluating software cost estimation tools. This dissertation evaluated four of the most popular algorithmic models used to estimate software cost (SLIM, COCOMO II, Function points and SLOC) This dissertation also provides an overview of the baseline cost estimation model tailored to these new forms of software engineering. The major new modeling capabilities are an adaptable family of software sizing models, involving Function Points and Source Lines of Code. These models are serving as a framework for an extensive current data collection and analysis effort to further refine and calibrate the model's estimation capabilities. Cost Estimation Methods for Software Engineering Index Chapter 1 Introduction ..........................................................................& 1.1. Background to the problem .................................................................... 6 1.2. Background literature ............................................................................. 6 1.3. Problem Statement .............................................................................. 10 1.4. Research objective .............................................................................. 11 1.5. Conclusion ........................................................................................... 11 Chapter 2 Estimation Processes ....................................................... 12 2.1 . Software Cost ...................................................................................... 12 2.2. Software Cost Estimation Process ....................................................... 13 2.3. Estimation and the software process ................................................... 13 2.4. Inputs and Outputs to the Estimation Process ..................................... 15 2.5. The Estimation Process ....................................................................... 19 2.6. Timing of the estimates ........................................................................ 21 2.7. Estimation Constraints .......................................................................... 22 2.8. Data gathering ..................................................................................... 24 2.9. Problems with the Cost Estimation Process ......................................... 25 2.1 0. Problems with Requirements ............................................................... 26 2.11. Conclusion ........................................................................................... 28 Chapter 3 Size Estimation .................................................................. 30 3.1 Lines of code ........................................................................................ 30 3.2 Function Point Analysis ........................................................................ 34 3.3 Conclusion ........................................................................................... 42 2 Cost Estimation Methods for Software Engineering Chapter 4 E:!itirrlettiC>rl ~E!tll()cJ!i .......................................................... 44 4.1. Software Life-cycle Management (SLIM) method ................................ 44 4.2. Constructive Cost Model (COCOMO II) ............................................... 49 4.3. Expertise-Based Technique ................................................................. 57 4.4. Cost Estimation method ....................................................................... 59 4.5. Conclusion ........................................................................................... 61 Chapter 5 Case Stucty .........................................................................64 5.1 Project description .............................................................................. 64 5.2 Project Size estimation ....................................................................... 64 5.3 Effort estimation .................................................................................. 66 5.4 Conclusion .......................................................................................... 70 Chapter 6 Conclusions a net Recorr1rt1enctations .............................. 71 6.1 Conclusions ........................................................................................ 71 6.2 Recommendations .............................................................................. 73 6.3 Further Investigation ........................................................................... 76 References ............................... Error! Bookmark not defined. ~IC>!iSCir)f .............................................................................~~ 3 Cost Estimation Methods for Software Engineering Appendix A ......................................................................... 82 Scaling Drivers ........................................................................... 86 Appendix 8 ......................................................................... 85 Architecture I Risk Resolution .......................................................89 Appendix C ......................................................................... 86 Team Cohesion ..........................................................................90 Appendix 0 ......................................................................... 86 Process Maturity .........................................................................90 Appendix E ......................................................................... 87 Product Complexity ..................................................................... 91 Appendix F ......................................................................... 88 Effort multipliers .......................................................................... 92 Appendi>e c:J ...•••••••.........••.........•••............•••..........••••.......... !JE; Nu Metro Server Technical Specification .......................................... 99 List of figures Figure 1.1: Influencing factors to be evaluated to produce an accurate estimate .9 Figure 1.2: Information to be used to predict scenarios on future projects ......... 10 Figure 1.3: Estimation principle .......................................................................... 11 Figure 2. 1: Classical view of software estimation process ................................. 16 Figure 2.2: Actual cost estimation process ......................................................... 18 4 Cost Estimation Methods for Software Engineering Figure 3.1: Definition checklist for source statements counts ............................. 32 Figure 4.1: Rayleigh curve ................................................................................. 44 List of tables Table 1.1: Project levels of complexity ........................................................8 Table 3.1: Function point complexity matrix ................................................ 37 Table 3.2: Function point complexity-weight matrix .....................................37 Table 4.1: Rating scheme for the COCOMO II scale factors ........................... 55 Table 4.2: Effort multipliers cost driving rating for the post-architecture model. .. 58 Table 4.3: Early design and post-architecture cost driver .............................. 57 5 Cost Estimation Methods for Software Engineering Chapter 1 Introduction 1.1. Background to the problem "If there is one management danger zone to mark above all others, it is software cost estimation." Robert Glass - Building Software Quality The reason for the strong emphasis on software engineering cost estimation is that it provides the vital link between the general concepts and techniques of economic analysis and the particular world of software engineering. There is no good way to perform a software cost-benefit analysis, breakeven analysis, or make-or-buy analysis without some reasonably accurate method of estimating software engineering costs, and their sensitivity to various product, project, and environmental factors. Software engineering cost estimation techniques also provide an essential part of the foundation for good engineering management. Cost in a project is also due to the requirements for software, hardware and human resources. The bulk of the cost of software development is due to the human resources needed, and most cost estimation procedures focus on this aspect. Most cost estimates are determined in terms of person-months (PM). 1.2. Background literature