1.37k likes | 1.7k Views
Topic 5. P lanning III – E stimating S oftware S ize. Lecture Overview. 5.1 Background 5.2 Popular Estimating Methods 5.3 Proxy-based Estimating 5.4 The PROBE Size Estimating Method 5.5 Object Categories 5.6 Estimating Considerations 5.7 Summary 5.8 Exercises.
E N D
Topic 5 Planning III –Estimating Software Size
Lecture Overview 5.1 Background 5.2 Popular Estimating Methods 5.3 Proxy-based Estimating 5.4 The PROBE Size Estimating Method 5.5 Object Categories 5.6 Estimating Considerations 5.7 Summary 5.8 Exercises
5.1 Background1 • Why Estimate Size? • Size estimates allow you to make better plans. • Plan better for the resources, tasks, and schedule. • The quality of a plan depends on that of the size estimate. • The more details you have, the more accurate the estimation will be. • For a large software job, divide it into separate elements. • Size estimates assist you in tracking progress. You can • judge when the job scope changes. • better measure the work.
Background 2 • Estimating models in other fields • have a large historical base. • are widely used. • generate detailed planning data. • require a size estimate as input.
Project Planning Framework • The framework is shown in Figure 5.1. • Size estimating: compare the design elements with the historical size data to make estimates. • Accurate size estimation will lead to accurate resource estimation.
Customer Need Define the Requirements Items Tasks Produce the Conceptual Design Estimate the Product Size (Topic 5) Historical Size Database Customer Estimate the Resources (Topic 6) Historical Productivity Database Produce the Schedule (Topic 6) Resources Available Management Delivered Product Tracking Reports Size, Resource, Schedule data Develop the Product Process Analysis Fig. 5.1 Project Planning Framework
Estimating Experience • Studies show that • size estimation errors may be as high as 100% or even more. • Only 22% professionals make size estimates for cost estimates. • For software development, usually people have a larger estimation error percentage (up to 400%) in early phase, and then the percentage declines (25% or less) in later phases. • Serious size estimation errors result in poor resource estimates and unrealistic project schedules. • Fortunately, the size estimation skill can be learned and improved.
Size Estimating Criteria • A widely used method should be • structured and trainable. • usable during all development and maintenance phases. • usable for all types of software product elements. • suitable for statistical analysis. • adaptable to the types of your future work. • able to judge the accuracy of the estimates.
Size Estimating Principles 1 • Estimating is an uncertain process. • No one knows how big the product will be • The earlier the estimate, the less is known • Estimates can be biased by business and other pressures (sometimes called ‘‘gutless’’ estimations) • Estimating is an intuitive learning process. • Ability improves with experience • Some people are better at estimating
Size Estimating Principles2 • Estimating is a skill. • Improvement will be gradual • You may never get very good • The objective, however, is to get consistent -- at least “unbiased.” • You will then understand the variability of your estimates • You seek an even balance between under and over estimates
Size Estimating Principles 3 • The principal advantages of using a defined estimating method are: • You have known practices that you can work to improve. • It provides a framework for gathering estimating data. • By using consistent methods and historical data, your estimates will get more consistent.
5.2 Popular Size EstimatingMethods • Four popular methods • Wideband-Delphi • Fuzzy-Logic • Standard-Component • Function-Point • Their concepts form the foundation of the PROBE (Proxy-based Estimating) method used with the PSP.
Wideband-Delphi Method 1 • Originated by Rand Co. and refined by Boehm. • Based on the Delphiprocess, which usually contains several cycles. • Several experts (estimators) and a moderator are involved in the process. • Each expert makes an independent estimate and submit it to the moderator in each cycle. • The moderator coordinates the estimation process for these experts whose estimates are anonymous to all others. • The process runs until experts’ estimates converge on a consensus result.
Wideband-Delphi Method 2 • The method’s process is as follows: • A group of experts is each given the program’s specifications and estimation forms. • They meet to discuss project goals, assumptions, and estimation issues. • They then each anonymously list project tasks and estimation size. • The estimates are given to the moderator, who tabulates the results and returns them to the experts, as illustrated in Figure 5.2.
Project: XYZ Estimator: John Doe Date:4/1/94 Here is the range of estimates from the 1st round: X X* X! X X 0 20 40 60 80 100 X - estimates X* - your estimate X! – median estimate Please enter your estimate for the next round: ___SLOC. Please enter explain rationale for your estimate. Fig. 5.2 The Chart Used in Wideband-Delphi
Wideband-Delphi Method 3 • Only each expert’s personal estimate is identified; all others are anonymous. • The experts meet to discuss the results. They each review the tasks they have defined but not their size estimates. • The cycle continues at step 3 until the estimates converge to within an acceptable range.
Delphi Example 1 • 3 estimators are asked to estimate the product. • Their initial estimates are: • A - 13,800 LOC • B - 15,700 LOC • C - 21,000 LOC • The coordinator then • Calculates average estimate as 16,833 LOC • Returns this with their original estimates to the estimators
Delphi Example 2 • The estimators then meet and discuss the estimates. • Their second estimates are • A - 18,500 LOC • B - 19,500 LOC • C - 20,000 LOC • The coordinator then • Calculates average estimate as 19,333 LOC • Asks the estimators if they agree with this as the estimate
Wideband-Delphi Method 4 • Advantages • can produce accurate results • uses organization’s skills • works forany size products. • Disadvantages • relies on a few experts • time consuming • subject to common biases
Fuzzy-Logic Method 1 • Estimators compare the planned program with prior programs and select the most appropriate size category. • Preparing for this method • gathersufficient size data on previously developed programs • subdivide these data into size categories and subcategories • provide a meaningful number of program examples in each size category and subcategory • extend the size ranges up or down as you get further data • Table 5.1 shows the example.
Fuzzy-Logic Method 2 • Advantages • based on relevant historical data • easy to use • requires no special tools or training • provides reasonably good estimates in cases where new work is like prior experience
A Fuzzy Logic Example 1 • You have historical data on 5 programs as follows: • a file utility of 1,844 LOC • a file management program of 5,834 LOC • a personnel record keeping program of 6,845LOC • a report generating package of 18,386 LOC • an inventory management program of 25,943 LOC
A Fuzzy Logic Example 2 • You establish 5 ranges, as follows • log(1844) = 3.266 • log(25,943) = 4.414 • the difference is 1.148 • 1/4th this difference is 0.287 • the logs of the five ranges are thus spaced 0.287 apart • the limits or these ranges are at 0.1435 above and below the midpoint of each range
A Fuzzy Logic Example 3 • The 5 size ranges are thus: • very small - 1,325 to 2,566: file utility • small - 2,566 to 4970: no members • medium - 4,970 to 9,626: file management and personnel record program • large - 9,626 to 18,641: report generator • very large - 18,641 to 36,104: inventory management
A Fuzzy Logic Example 4 • Your new program has the following requirements: • analyze marketing performance by product line • project the likely sales in each product category • allocate these sales to marketing regions and time periods • produce a monthly report of these projections and the actual results
A Fuzzy Logic Example 5 • In comparing the new program to the historical data you make the following judgments: • substantially more complex application than the file management and personnel programs • not as complex as the inventory management program. • appears to have significantly more function than the report package. • You conclude that the new program is in the lower end of “very large,” or from 18 to 25 KLOC.
Fuzzy Logic - Summary • To make a fuzzy logic estimate: 1 - Divide the historical product size data into size ranges. 2 - Compare the planned product with these prior products. 3 - Based on this comparison, select the size that seems most appropriate for the new product.
Fuzzy-Logic Method Disadvantages • Fuzzy logic estimating • requires a lot of data • requires that the estimators be familiar with the historically developed programs • provides only a crude sizing • not useful for new program types • not useful for programs that are much larger or smaller than the historical data
Standard-Component Method1 • Use organization’s historical data to determine the typical size of various types of components • subsystems, modules, screens, reports, etc. • For a new project • Judge the number of each type of components will likely be in the project. • Also determine the maximum and minimum numbers of each type of components you could image.
Standard-Component Method2 • Calculate the estimated number of each type with • (4*likely number + max. number + min. number) / 6 • The estimated size of each type is • its estimated number * its typical size from historical data • Sum up the estimated size of all types to get the total size.
Table 5.2 Example of Component Estimating For modules, its estimated size = 932 * 17.5 = 16310.
Standard-Component Method3 • Advantages • based on relevant historical data • easy to use • requires no special tools or training • provides a rough estimate range • Disadvantages • must use large components early in a project • limited data on large components • hard to visualize component counts early in a project
Function-Point Method 1 • Count the numbers of the 5 types of basic functions that the commercial application program will likely need by reviewing its requirements. • Inputs: screens or forms through which to add new data or update existing data in the application • Outputs: screens or reports that the application produces • Inquires: screens used to ask for interrogation, assistance or information • Data files: logical collection of records that the application updates • Interface: e.g., files shared with other applications, shared databases, parameter lists, …
Function-Point Method 2 • Each type has a given weight. • Calculate the function points of the application • multiply the number of each type by its weight. • sum them up to get the total (unadjusted). • Use historical data on development cost and time per function point to make the estimates.
Function-Point Method 3 • To improve the estimation, adjust the function points by 14 influence factors. • The influence factor values are selected from 0 (very simple) to 5 (very complex) by the judgment of the estimator. • Sum up these values. • Calculate the complexity multiplier • 0.65+0.01*(sum of influence factor values) • Calculate adjusted function points • complexity multiplier * unadjusted function points • The adjustment is between ±35% • Table 5.5 shows an example.
Function-Point Method 4 • Advantages • a well-documented method • usable in the earliest requirements phase • independent of programming languages, product designs, development styles • having a large body of historical data • with an active user group
Function-Point Method 5 • Disadvantages • cannot directly count an existing product’s function point content • without historical data, difficult to improve estimating skill • not reflect language, design, and style differences • designed for estimating commercial data processing applications
5.3 Proxy-Based Estimating (PROBE) • In stead of direct estimating, a proxy is a substitute to help estimators judge product size. • Proxies, for example, can be objects, screens, files, scripts, document chapters, function points, and so on.
Criteria for a Good Proxy 1 • The proxysize measurement (or estimate) should closely relate to the effort required to develop the product. • Use the correlation method (see Topic 15) to determine which proxy is a better predictor of product size or development effort.
Criteria for a Good Proxy 2 • The proxy content of a product should be automatically countable. • Large amount of proxy data extracted from historical data is needed to define new estimates. • The proxy must be a physical entity that can be precisely defined and algorithmically identified.
Criteria for a Good Proxy 3 • The proxy should be easy to visualizeat the beginning of a project. • The proxy should be customizable to the special need of using organizations. • Different product types may use different kind of proxies to estimate. • The proxy should be sensitiveto any implementation variations that impact development costs or efforts. • for example, program languages, design styles, application types
Objects as Proxies 1 • Objects in OO programming languages are a good candidate as proxies because they closely relate to development effort or resources. • Figures 5.3 and 5.4 show close correlation between estimated object LOC (=Σobject size ) and actual program LOC. • Linear regression formula: (See Topic 15 ) actual program LOC = β0 + estimate object LOC * β1 • Figures 5.5 and 5.6 show high correlation and significance between estimated object LOC and actual development hours. • Linear regression formula: actual development hours = β0 + estimate object LOC * β1