Copyright © 1994 Carnegie Mellon University1Disciplined SoftwareEngineeringLecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department of DefenseCopyright © 1994 Carnegie Mellon University2Lecture #3 Overview - SizeEstimating - 1 Why estimate size? Some estimating background Size estimating principles Estimating approaches Estimating proxiesCopyright © 1994 Carnegie Mellon University3Why Estimate Size? To make better plans•to better size the job•to divide the job into separable elements To assist in tracking progress•can judge when job scope changes•can better measure the work Value in this course•learn estimating methods•build estimating skillsCopyright © 1994 Carnegie Mellon University4Estimating Background Estimating models in other fields•large base of history•in wide use•generate detailed planning data•require a size estimate as input Software size estimating experience•100% + errors are normal•few developers make estimates•fewer still use orderly methodsCopyright © 1994 Carnegie Mellon University5Size 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 andother pressures Estimating is an intuitive learning process.•ability improves with experience•some people will be better at estimating thanothersCopyright © 1994 Carnegie Mellon University6 Estimating is a skill.•improvement will be gradual•you may never get very good The objective, however, is to get consistent.•you will then understand the variability of yourestimates•you seek an even balance between under andover estimatesSize Estimating Principles - 2Copyright © 1994 Carnegie Mellon University7Size Estimating Errors - 12Students Program Number-100010020030040050012345678910MaxClassMinCopyright © 1994 Carnegie Mellon University8Time Estimating Errors - 12StudentsProgram Number-100010020030040050012345678910MaxClassMinCopyright © 1994 Carnegie Mellon University9 The principal advantages of using a definedestimating method are•you have known practices that you can workto improve•it provides a framework for gatheringestimating data•by using consistent methods and historicaldata, your estimates will get more consistentSize Estimating Principles - 3Copyright © 1994 Carnegie Mellon University10DefineRequirementsProduceConceptualDesignEstimateSizeEstimateResourcesProduceScheduleDevelopProductSize, ResourceScheduleDataProcessAnalysisResourcesAvailableProductivityDatabaseSizeDatabaseProductDeliveryTrackingReportsThe Size Estimating FrameworkCopyright © 1994 Carnegie Mellon University11Estimating Approaches Fuzzy logic Function points Standard components DelphiCopyright © 1994 Carnegie Mellon University12Fuzzy Logic Size Estimating - 1 Gather size data on previously developedprograms Subdivide these data into size categories:•very large, large, medium, small, very small•establish size ranges•include all existing and expected products Subdivide each range into subcategoriesCopyright © 1994 Carnegie Mellon University13Fuzzy Logic Size Estimating - 2 Allocate the available data to the categories. Establish subcategory size ranges. When estimating a new program, judge whichcategory and subcategory it most closelyresembles.Copyright © 1994 Carnegie Mellon University14A Fuzzy Logic Example - 1 You have historical data on 5 programs asfollows:•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,943LOCCopyright © 1994 Carnegie Mellon University15A Fuzzy Logic Example - 2 You thus establish 5 size 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 spaced0.287 apart•the limits or these ranges are at 0.1435 aboveand below the midpoint of each rangeCopyright © 1994 Carnegie Mellon University16A 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 andpersonnel record program•large - 9,626 to 18,641: report generator•very large - 18,641 to 36, 104: inventorymanagementCopyright © 1994 Carnegie Mellon University17A Fuzzy Logic Example - 4 Your new program has the followingrequirements•analyze marketing performance by productline•project the likely sales in each productcategory•allocate these sales to marketing regions andtime periods•produce a monthly report of these projectionsand the actual resultsCopyright © 1994 Carnegie Mellon University18A Fuzzy Logic Example - 5 In comparing the new program to the historicaldata you make the following judgments•it is a substantially more complex applicationthan either the file management or personnelprograms•it is not as complex as the inventorymanagement program•it appears to have significantly more functionthan the report package You conclude that the new program is in thelower end of “very large,” or from 18 to 25KLOC.Copyright © 1994 Carnegie Mellon University19Fuzzy Logic - Summary To make a fuzzy logic estimate: 1 - Divide the historical produce size data intosize ranges. 2 - Compare the planned product with theseprior products. 3 - Based on this comparison, select the sizethat seems most appropriate for the newproduct.Copyright © 1994 Carnegie Mellon University20Fuzzy Logic Size Estimating -Advantages Fuzzy logic estimating•is based on relevant historical data•is easy to use•requires no special tools or training•provides reasonably good estimates wherenew work is like prior experienceCopyright © 1994 Carnegie Mellon University21Fuzzy Logic Size Estimating -Disadvantages The disadvantages of fuzzy logic are•it requires a lot of data•the estimators must be familiar with thehistorically developed programs•it only provides a crude sizing•it is not useful for new program types•it is not useful for programs much larger orsmaller than the historical dataCopyright © 1994 Carnegie Mellon University22Function Point Estimating - 1 A function point is an arbitrary unit•based on application functions-inputs, outputs, files, inquiries•scaled by simple, average, complex For job complexity:•adjust a
View Full Document