词条 | Software development effort estimation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
释义 |
In software development, effort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. Effort estimates may be used as input to project plans, iteration plans, budgets, investment analyses, pricing processes and bidding rounds.[1] State-of-practicePublished surveys on estimation practice suggest that expert estimation is the dominant strategy when estimating software development effort.[2] Typically, effort estimates are over-optimistic and there is a strong over-confidence in their accuracy. The mean effort overrun seems to be about 30% and not decreasing over time. For a review of effort estimation error surveys, see.[3] However, the measurement of estimation error is problematic, see Assessing the accuracy of estimates. The strong overconfidence in the accuracy of the effort estimates is illustrated by the finding that, on average, if a software professional is 90% confident or “almost sure” to include the actual effort in a minimum-maximum interval, the observed frequency of including the actual effort is only 60-70%.[4] Currently the term “effort estimate” is used to denote as different concepts such as most likely use of effort (modal value), the effort that corresponds to a probability of 50% of not exceeding (median), the planned effort, the budgeted effort or the effort used to propose a bid or price to the client. This is believed to be unfortunate, because communication problems may occur and because the concepts serve different goals.[5][6] HistorySoftware researchers and practitioners have been addressing the problems of effort estimation for software development projects since at least the 1960s; see, e.g., work by Farr [7][8] and Nelson.[9] Most of the research has focused on the construction of formal software effort estimation models. The early models were typically based on regression analysis or mathematically derived from theories from other domains. Since then a high number of model building approaches have been evaluated, such as approaches founded on case-based reasoning, classification and regression trees, simulation, neural networks, Bayesian statistics, lexical analysis of requirement specifications, genetic programming, linear programming, economic production models, soft computing, fuzzy logic modeling, statistical bootstrapping, and combinations of two or more of these models. The perhaps most common estimation methods today are the parametric estimation models COCOMO, SEER-SEM and SLIM. They have their basis in estimation research conducted in the 1970s and 1980s and are since then updated with new calibration data, with the last major release being COCOMO II in the year 2000. The estimation approaches based on functionality-based size measures, e.g., function points, is also based on research conducted in the 1970s and 1980s, but are re-calibrated with modified size measures and different counting approaches, such as the use case points [10] or object points in the 1990s and COSMIC in the 2000s. Estimation approachesThere are many ways of categorizing estimation approaches, see for example.[11][12] The top level categories are the following:
Below are examples of estimation approaches within each category.
Selection of estimation approachesThe evidence on differences in estimation accuracy of different estimation approaches and models suggest that there is no “best approach” and that the relative accuracy of one approach or model in comparison to another depends strongly on the context .[17] This implies that different organizations benefit from different estimation approaches. Findings[18] that may support the selection of estimation approach based on the expected accuracy of an approach include:
The most robust finding, in many forecasting domains, is that combination of estimates from independent sources, preferable applying different approaches, will on average improve the estimation accuracy.[18][19][20] It is important to be aware of the limitations of each traditional approach to measuring software development productivity.[21] In addition, other factors such as ease of understanding and communicating the results of an approach, ease of use of an approach, and cost of introduction of an approach should be considered in a selection process. Assessing the accuracy of estimatesThe most common measure of the average estimation accuracy is the MMRE (Mean Magnitude of Relative Error), where the MRE of each estimate is defined as: MRE =This measure has been criticized [22] [23][24] and there are several alternative measures, such as more symmetric measures [25], Weighted Mean of Quartiles of relative errors (WMQ) [26] and Mean Variation from Estimate (MVFE).[27]MRE is not reliable if the individual items are skewed. PRED(25) is preferred as a measure of estimation accuracy. PRED(25) measures the percentage of predicted values that are within 25 percent of the actual value. A high estimation error cannot automatically be interpreted as an indicator of low estimation ability. Alternative, competing or complementing, reasons include low cost control of project, high complexity of development work, and more delivered functionality than originally estimated. A framework for improved use and interpretation of estimation error measurement is included in.[28] Psychological issuesThere are many psychological factors potentially explaining the strong tendency towards over-optimistic effort estimates that need to be dealt with to increase accuracy of effort estimates. These factors are essential even when using formal estimation models, because much of the input to these models is judgment-based. Factors that have been demonstrated to be important are: Wishful thinking, anchoring, planning fallacy and cognitive dissonance. A discussion on these and other factors can be found in work by Jørgensen and Grimstad.[29]
HumorThe chronic underestimation of development effort has led to the coinage and popularity of numerous humorous adages, such as ironically referring to a task as a "small matter of programming" (when much effort is likely required), and citing laws about underestimation:
}}
}} Adding to the fact that estimating development efforts is hard, it's worth stating that assigning more resources doesn't always help. Comparison of development estimation software
See also{{columns-list|colwidth=22em|
}} References1. ^{{Cite web | url=http://www.infoq.com/articles/software-development-effort-estimation | title=What We do and Don't Know about Software Development Effort Estimation}} 2. ^{{cite journal | author = Jørgensen, M. | title = A Review of Studies on Expert Estimation of Software Development Effort | journal = Journal of Systems and Software | volume = 70 | issue = 1–2 | pages = 37–60 | url = http://simula.no/publications/review-studies-expert-estimation-software-development-effort | year = 2004 | doi = 10.1016/S0164-1212(02)00156-5 }} 3. ^{{cite book | author = Molokken, K. Jorgensen, M. | title = 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings | pages = 223–230 | chapter-url = http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1237981 | doi = 10.1109/ISESE.2003.1237981 | year = 2003 | isbn = 978-0-7695-2002-5 | chapter = A review of software surveys on software effort estimation }} 4. ^{{cite journal | author = Jørgensen, M. Teigen, K.H. Ribu, K. | title = Better sure than safe? Over-confidence in judgement based software development effort prediction intervals | url = http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6V0N-49N06GS-5&_user=674998&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000036598&_version=1&_urlVersion=0&_userid=674998&md5=36c6383445cf481447d06cb30c1ccb63 | archive-url = https://web.archive.org/web/20090819012438/http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6V0N-49N06GS-5&_user=674998&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000036598&_version=1&_urlVersion=0&_userid=674998&md5=36c6383445cf481447d06cb30c1ccb63 | dead-url = yes | archive-date = 2009-08-19 | doi=10.1016/S0164-1212(02)00160-7 | volume=70 | issue = 1–2 | year=2004 | journal=Journal of Systems and Software | pages=79–93}} 5. ^{{cite journal | last1 = Edwards | first1 = J.S. Moores | year = 1994 | title = A conflict between the use of estimating and planning tools in the management of information systems | url = | journal = European Journal of Information Systems | volume = 3 | issue = 2| pages = 139–147 | doi=10.1057/ejis.1994.14}} 6. ^Goodwin, P. (1998). Enhancing judgmental sales forecasting: The role of laboratory research. Forecasting with judgment. G. Wright and P. Goodwin. New York, John Wiley & Sons: 91-112. Hi 7. ^{{cite web | author = Farr, L. Nanus, B. | title = Factors that affect the cost of computer programming, volume I | url = http://www.dtic.mil/dtic/tr/fulltext/u2/603707.pdf }} 8. ^{{cite web | author = Farr, L. Nanus, B. | title = Factors that affect the cost of computer programming, volume II | url = http://www.dtic.mil/dtic/tr/fulltext/u2/607546.pdf }} 9. ^Nelson, E. A. (1966). Management Handbook for the Estimation of Computer Programming Costs. AD-A648750, Systems Development Corp. 10. ^{{cite book | author = Anda, B. Angelvik, E. Ribu, K. | title = Improving Estimation Practices by Applying Use Case Models | url = http://www.springerlink.com/content/7lpyel912m5cr654/ | doi=10.1007/3-540-36209-6_32 | year=2002 | journal=Lecture Notes in Computer Science | volume = 2559 | pages=383–397 | isbn = 9783540002345 9783540362098 | citeseerx = 10.1.1.546.112 }} 11. ^Briand, L. C. and Wieczorek, I. (2002). Resource estimation in software engineering. Encyclopedia of software engineering. J. J. Marcinak. New York, John Wiley & Sons: 1160-1196. 12. ^{{cite web | author = Jørgensen, M. Shepperd, M. | title = A Systematic Review of Software Development Cost Estimation Studies | url = http://simula.no/research/engineering/publications/Jorgensen.2007.1 }} 13. ^{{Cite web | url=http://www.oxagile.com/services/custom-software-design-and-development/ | title=Custom Software Development Services - Custom App Development - Oxagile}} 14. ^Hill Peter (ISBSG) - Estimation Workbook 2 - published by International Software Benchmarking Standards Group ISBSG - Estimation and Benchmarking Resource Centre 15. ^Morris Pam — Overview of Function Point Analysis Total Metrics - Function Point Resource Centre 16. ^Srinivasa Gopal and Meenakshi D'Souza. 2012. Improving estimation accuracy by using case based reasoning and a combined estimation approach. In Proceedings of the 5th India Software Engineering Conference (ISEC '12). ACM, New York, NY, USA, 75-78. DOI=https://dx.doi.org/10.1145/2134254.2134267 17. ^{{cite journal | author = Shepperd, M. Kadoda, G. | title = Comparing software prediction techniques using simulation | journal = IEEE Transactions on Software Engineering | volume = 27 | issue = 11 | pages = 1014–1022 | doi = 10.1109/32.965341 | year = 2001 }} 18. ^1 {{cite web | author = Jørgensen, M. | title = Estimation of Software Development Work Effort:Evidence on Expert Judgment and Formal Models | url = http://simula.no/research/engineering/publications/Jorgensen.2007.2 }} 19. ^{{cite journal | author = Winkler, R.L. | title = Combining forecasts: A philosophical basis and some current issues Manager | url = http://www.sciencedirect.com/science/article/B6V92-45P4G7H-2B/2/d05dc6c369ab173c5792a05ea1be21d9 | doi=10.1016/0169-2070(89)90018-6 | volume=5 | issue = 4 | year=1989 | journal=International Journal of Forecasting | pages=605–609}} 20. ^{{cite journal | author = Blattberg, R.C. Hoch, S.J. | title = Database Models and Managerial Intuition: 50% Model + 50% Manager | jstor = 2632364 | volume=36 | issue = 8 | pages=887–899 | doi=10.1287/mnsc.36.8.887 | journal=Management Science | year=1990}} 21. ^{{cite web | author = BlueOptima | title = Identifying Reliable, Objective Software Development Metrics | url = http://www.blueoptima.com/web/guest/blog/-/blogs/23436 }} 22. ^{{cite journal | author = Shepperd, M. Cartwright, M. Kadoda, G. | title = On Building Prediction Systems for Software Engineers | doi=10.1023/A:1026582314146 | volume=5 | issue = 3 | year=2000 | journal=Empirical Software Engineering | pages=175–182}} 23. ^{{cite web | author = Kitchenham, B. Pickard, L.M. MacDonell, S.G. Shepperd | title = What accuracy statistics really measure | url = http://scitation.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=IPSEFU000148000003000081000001&idtype=cvips&gifs=yes }} 24. ^{{cite journal | author = Foss, T. Stensrud, E. Kitchenham, B. Myrtveit, I. | title = A Simulation Study of the Model Evaluation Criterion MMRE | journal = IEEE Transactions on Software Engineering | volume = 29 | issue = 11 | pages = 985–995 | url = http://portal.acm.org/citation.cfm?id=951936 | doi = 10.1109/TSE.2003.1245300 | year = 2003 | citeseerx = 10.1.1.101.5792 }} 25. ^{{cite journal | author = Miyazaki, Y. Terakado, M. Ozaki, K. Nozaki, H. | title = Robust regression for developing software estimation models | journal = Journal of Systems and Software | volume = 27 | pages = 3–16 | url = http://portal.acm.org/citation.cfm?id=198684 | doi = 10.1016/0164-1212(94)90110-4 | year = 1994 }} 26. ^{{cite web | author = Lo, B. Gao, X. | title = Assessing Software Cost Estimation Models: criteria for accuracy, consistency and regression | url = http://dl.acs.org.au/index.php/ajis/article/view/348 }} 27. ^{{cite journal | author = Hughes, R.T. Cunliffe, A. Young-Martos, F. | title = Evaluating software development effort model-building techniquesfor application in a real-time telecommunications environment | journal = IEE Proceedings - Software | volume = 145 | pages = 29 | url = http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=689296 | doi = 10.1049/ip-sen:19983370 | year = 1998 }} 28. ^{{cite web | author = Grimstad, S. Jørgensen, M. | title = A Framework for the Analysis of Software Cost Estimation Accuracy | url = http://simula.no/publications/framework-analysis-software-cost-estimation-accuracy | year = 2006 }} 29. ^{{cite web | author = Jørgensen, M. Grimstad, S. | title = How to Avoid Impact from Irrelevant and Misleading Information When Estimating Software Development Effort | url = http://simula.no/research/se/publications/Simula.SE.112 }} 30. ^{{cite journal|last= Bentley|first= Jon|year= 1985|title= Programming pearls|journal= Communications of the ACM|volume= 28|issue= 9|pages= 896–901|issn= 0001-0782|doi= 10.1145/4284.315122|format= fee required}} 31. ^Gödel, Escher, Bach: An Eternal Golden Braid. 20th anniversary ed., 1999, p. 152. {{ISBN|0-465-02656-7}}. 32. ^AFCAA Revic 9.2 manual Revic memorial site 33. ^Seer for Software Datasheet Galorath site 34. ^{{Cite web | url=https://galorath.com/seer-software-estimation-technical-features/ | title=SEER for Software Estimation - Technical Features}} 35. ^SLIM Suite Overview 36. ^SLIM-WebServices 37. ^TruePlanning Integrated Cost Models PRICE Systems site External links
3 : Software project management|Software comparisons|Software engineering costs |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。