500 likes | 638 Vues
SMU CSE 7315 Planning and Managing a Software Project. Module 19 Some Popular Effort Estimation Models. Objectives of This Module. To describe the Intermediate Cocomo estimating model To discuss other popular estimating models. The Big Picture for Cost Estimating. Source Information
E N D
SMU CSE 7315Planning and Managing a Software Project Module 19 Some Popular Effort Estimation Models
Objectives of This Module • To describe the Intermediate Cocomo estimating model • To discuss other popular estimating models
The Big Picturefor Cost Estimating Source Information Statement of Work Requirements Constraints Standards Processes History etc. Estimate Effort and Cost Estimate Size WBS Size Effort & Cost Revise & Negotiate Not OK Complete Detailed Planning Evaluate Estimate Schedule Schedule OK
Intermediate Cocomo1 Effort = EAF * a * Size b Where where EAF = E1*E2*...*En Eis are effort multipliers corresponding to a set of common cost drivers. • The nominal value of each Ei = 1. • Ei = 1 implies the cost driver does not apply • Ei > 1 implies increased cost • Ei < 1 implies decreased cost 1) This model is often known as Cocomo 81
Effort Multipliers • Typical values range between0.6 & 1.66 • Preset values are established for each factor • All Cocomo multipliers together can affect cost and schedule estimates by 10 times or more!
EAFEffort Adjustment Factor • EAF is the product of the effort multipliers • A value of 1 would represent a relatively easy software effort, perhaps with no cost drivers
EAFEffort Adjustment Factor (continued) • A value of 1 - 1.5is typical today for a commercial software effort • A value of 1.5 - 2.0is typical today for a real-time effort or a government project
EAF Has ImprovedOver the Years • The values typically reported by software projects were once a lot larger (in the 3-4 range), but due to improvements in practices and processes, they have gotten a lot better.
Intermediate Cocomo - “a” & “b” Effort = EAF * a * Size b The “mode” is the general type of software
Intermediate CocomoSoftware Types (Modes) Organic • Fairly easy software • software development team is familiar with application, language, and tools. • Typically from 2-50 KLOC Semi-Detached • Average software, average team • Typically 50-300 KLOC
Intermediate CocomoSoftware Types (Modes) (continued) Embedded • Severe constraints, real time, etc. • No stated size range, but model is known to fail under 10 KLOC NOTE: the origin of the names is obscure, and not considered significant, even by Barry Boehm, who invented Cocomo.
Cocomo II Extension • In Cocomo II, there are formulas based on characteristics of the application that allow you to estimate the “a” and “b” values more precisely. • But the best way is always to calibrate to your own data
Tasks Included in Cocomo • Cocomo only accounts for the main tasks of software development. • It also includes certain amounts of management, CM, and QA • In Cocomo II, the latter amounts are larger than in older versions Software Code Software Int &Test System Int &Test System Analysis Software Requirements Software Design <---- Cocomo Includes ---->
Tasks Excluded From Cocomo • Cocomo does notinclude • System level tasks • Software requirements definition and analysis • System integration and test • Including software support of this activity • Management above the software project level Software Code Software Int &Test System Int &Test System Analysis Software Requirements Software Design <---- Cocomo Includes ---->
Division of Labor (Effort) Cocomo Assumes: Effort is divided as: 15-20% Design 50-65% Code and Unit Test 20-30% Integration and Test • These are ranges • You must determine your values • The only way to tell is to measure
Remember, Cocomo Excludes Requirements Analysis and System Integration If you add 20% to the total for requirements and integration support, it becomes (roughly): 15-17% Requirements Analysis 10-15% Design 35-50% Code and Unit Test 15-25% Integration and Test
The Frailey Percent Question • If you read that “25%” of the effort is devoted to some function, ask yourself the “Frailey Percent Question”: “25% of WHAT?” • 25% of total project effort? • 25% of technical development effort? • 25% of software development effort? • 25% of programming effort? • etc.
Assumptions for Time • The percent of time spent in each process phase is different from the percent of effort • The percent of time is more heavily tilted toward requirements analysis and design • You typically have fewer people doing requirements and design than you have in later phases
Percentages for Time • Specifics depend on the process being used • Typical numbers for time: 15-25% Requirements 25-30% Design 30-45% Code 10-20% Integration and Test
Various Sources Report Different Ratios for Time Grady and Caswell (of Hewlett-Packard) compare five different sources (p34, 35 - see reference at end of module) • Differences stem from: • Type of software being developed • Schedule compression • Organizational differences • Process and Methods
Hewlett-Packard Recommendations • Measure actuals • Count everything (overtime, etc.)
Process, Methods, and Tools Tools COSTAR, REVIC SLIM SOFTCOST Methods (Models) COCOMO, PUTNAM, ET. AL. Process (Purpose) EFFORT ESTIMATING
Cocomo Tool Information CoCo Pro Available through ICONIX Software Engineering Inc. For more information on CoCoPro: HTTP://WWW.ICONIXSW.COM/ Spec_Sheets/CoCoPro.html
Cocomo Tool Information (continued) REVIC - A free tool Available through USAF Cost Analysis Agency SOFTEST - an updated version For more information on REVIC or SOFTEST: http://sepo.spawar.navy.mil Or you may have to search the web.
Cocomo Tool Information (continued) • SOFTCOST-R / COSTAR • Available through Resource Calculations Inc. For more information: http://www.softstarsystems.com
Additional Cocomo II Information Under development at University of Southern California, Cocomo II project. For More Information on Cocomo II: HTTP://SUNSET.USC.EDU/ research/COCOMOII/index.html
Architecture of Spreadsheet Effort Effort and Cost Schedules Size / Reuse Software Reuse Analysis Final Effort Estimate Generic Schedule Productivity Based Effort Estimate Effort Schedule Final Size Estimate Labor Schedule Historical Size Estimate Model Based Effort Estimate Cost Schedule Delphi Size Estimate Other Effort Estimates ... Other Size Estimates ...
Other Popular Cost/Schedule Estimation Models • Putnam’s Model -- (SLIM) • Shen and Conti -- (COPMO) • Lockheed/Martin -- (Price-S) • Galorath, Inc -- (SEER-SEM)
SLIM (1) Size = Ck*Effort1/3*t4/3 Sizeis measured in lines of code (or can be thousands if Ck is adjusted) Effortis measured in staff-years Ck is a “state of technology” constant, reflecting use of modern practices, team experience, and software development tools. Compare with Cocomo adjustment factors. t is the development time, in years. (1) Putnam, IEEE Trans. on SW Engineering, July, 1978.
Other SLIM Information • EFFORT is for entire life cycle, including maintenance • Development Effort = .39 * EFFORT, according to Putnam For more information on SLIM: HTTP://WWW.QSM.COM
Copmo (1) Effort = a + b*Size + c*(Staff)d Effort = Programming Effort+ Coordination Effort The values of the constants a, b, c, and d must determined by regression analysis on actual project data The important issue here is the impact of staff size on management/coordination effort (1) Conte, S.D., et. al. Software Engineering Metrics and Models.
Price-S • This is a very complex, proprietary model, based on extensive analysis of many kinds of software projects • The parameters are similar to Cocomo’s adjustment factors, but can be very sensitive • For example, experience level of personnel can affect estimates by 5 times or more
Price-S Additional Information Now supplied by PRICE Systems, a Lockheed-Martin Company The product is called the PRICE S Software Estimating Suite For more information on PRICE-S: HTTP://WWW.PRICESYSTEMS.COM
SEER-SEM • This is a proprietary model, sold by Galorath, Inc., based on analysis of many kinds of software projects • The model also has elements for size estimation and project management • For example, one can use SEER tools to track progress and risks
SEER-SEM Additional Information Galorath, Incorporated El Segundo, California 310-414-3222 For more information on SEER-SEM: HTTP://www.galorath.com/
Software Maintenance Estimating • Usually this is done in a “bottom up” manner, such as: • Estimated number of changes * average cost per change or • Level of effort (“n” people per year for “m” years -- total cost = n*m) • Sometimes it is done on a “cost per transaction” basis
An Issue with Effort Estimating Methods based on Size • How can you know the size before you have designed the software -- and maybe before you even know its requirements?
Dealing with Uncertain Size Estimates • Generally speaking, you can predict size and cost better after design than you can before it • So re-estimation is a MUST for effective risk management • Methods not based on size, such as wideband delphi or “bottom up” effort estimating, should be considered to supplement size-dependent methods
An Issue with AllEffort Estimating Methods • You can manipulate the method to get any answer you want • Grady and Caswell report that typical estimates are 20-25% optimistic, even for experienced estimators • So you need to record your results, learn from your mistakes, and do better the next time Grady, Robert B. and Deborah L. Caswell, Software Metrics: Establishing a Company-Wide Program.
You Need to Track and Adjust Actuals vs. Estimates
Use Several Methods • At the very least, using several methods will increase your chances of being close to the right answer X X X
Remember the Goals of Estimating • Knowledge and insight are the real benefits of using different methods • Comparing the results of several methods will force you to resolve the discrepancies • This forces you to think about the issues • And produces more accurate estimates
Environmental Factors • Each model deals with factors beyond the basic issues of software development • Management • Coordination • Impact of experience • Stability of virtual machines • Etc. • But this may be the least well understood and most significant factor overall
Idealized View ofEngineering Activities Verbal component grows with product complexity
All Project Costs All Project Costs Project Effort, Purchased Hardware, Purchased Software, Project Effort, Purchased Hardware, Purchased Software, Purchased Material, Purchased Services, Purchased Material, Purchased Services, Facilities, Training, Travel Facilities, Training, Travel Project Effort Project Effort System Development, Software Development, Hardware Development, System Development, Software Development, Hardware Development, Production, Deployment, Support, Operations, Disposition Production, Deployment, Support, Operations, Disposition Software Development Software Development Planning, Requirements Specification, Planning, Requirements Specification, Software Development Covered by Estimate Software Development Covered by Estimate Software Development Covered By Estimate Software Development Covered By Estimate Preliminary Design, Detailed Design, Code & Unit Test, Integrati Preliminary Design, Detailed Design, Code & Unit Test, Integrati on & Test on & Test Scope of Estimate
Module Summary • Intermediate Cocomo combines the Basic Cocomo equation with effort multipliers for cost drivers • Like most models, Cocomo excludes some tasks • Various other models are available • It is best to use several methods, compare results, and iterate your estimates
END OF MODULE 19
References Conte, S.D., et. al. Software Engineering Metrics and Models. Benjamin Cummings, 1986, p314. Grady, Robert B. and Deborah L. Caswell, Software Metrics: Establishing a Company-Wide Program. Englewood Cliffs, N.J., Prentice-Hall, Inc., 1987. ISBN 0-13-821844-7. Putnam, Lawrence H., “A General Empirical Solution to the Macro Software Sizing and Estimating Problem,” IEEE Transactions on Software Engineering, July, 1978, p345.