Download presentation
Presentation is loading. Please wait.
Published byShonda Gertrude Harrison Modified over 9 years ago
1
Software Size Estimation Copyright, 2006 © L. Ouyang Liubo Ouyang ouyangliubo@126.comhttp://ss.hnu.cn/oylb/psp/ Personal Software Process Lecture 5
2
L.Ouyang, PSP, Lecture 5 Introduction What to estimate software size for? To make plans.To make plans. To estimate the effort.To estimate the effort. To create a reliable schedule.To create a reliable schedule. “Sizing represents the project planner’s first major challenge” -- R.S. Pressman
3
L.Ouyang, PSP, Lecture 5 Introduction COCOMO: Effort = a Size bEffort = a Size b COCOMO 2.0: Effort = ( e i ) A Size BEffort = ( e i ) A Size B Walston-Felix model: Effort = 5.2 Size 0.91Effort = 5.2 Size 0.91 Software equation (Putnam): Effort = (Size B 0.333 /P) 3 / t 4Effort = (Size B 0.333 /P) 3 / t 4
4
L.Ouyang, PSP, Lecture 5 Introduction.. Project planning.. Size estimating
5
L.Ouyang, PSP, Lecture 5 Plan of the lecture Delphi methodDelphi method Fuzzy-logic methodFuzzy-logic method Standard-component methodStandard-component method Function point methodFunction point method Probe methodProbe method
6
L.Ouyang, PSP, Lecture 5 Plan of the lecture Delphi methodDelphi method Fuzzy-logic methodFuzzy-logic method Standard-component methodStandard-component method Function point methodFunction point method The Probe methodThe Probe method
7
L.Ouyang, PSP, Lecture 5 Wideband-Delphi method Rand Corporation, Boehm’81 A few experts individually produce size estimates.A few experts individually produce size estimates. A Delphi process is used to reach a consensus.A Delphi process is used to reach a consensus. Pythia
8
L.Ouyang, PSP, Lecture 5 Wideband-Delphi method 1. Experts get the specification and an estimation form 2. They meet for discussion (project goals, assumptions, estimation issues) 3. Each expert anonymously lists the tasks and estimates the size 4. The estimates go to the estimate moderator. He tabulates the results and returns them to the experts. The Delphi procedure The estimate moderator
9
L.Ouyang, PSP, Lecture 5 Wideband-Delphi method Estimator: Jerzy Nawrocki Date: 22.06.1999 Project: Sorting routine The estimates from the 1st round: e E M e e e E M e e 0 20 40 60 80 100 0 20 40 60 80 100 e - estimates, E - your estimate, M - median estimate Your estimate for the next round:......... LOC A rationale for your estimate:........................................................................................................................................
10
L.Ouyang, PSP, Lecture 5 Wideband-Delphi method 5. The experts meet to discuss the results. They review the tasks they have defined but not their size estimates. 6. The procedure is repeated from step 3 until the estimates are acceptably near The Wideband-Delphi procedure The estimate moderator
11
L.Ouyang, PSP, Lecture 5 Plan of the lecture Delphi methodDelphi method Fuzzy-logic methodFuzzy-logic method Standard-component methodStandard-component method Function point methodFunction point method Probe methodProbe method
12
L.Ouyang, PSP, Lecture 5 Fuzzy-logic method Putnam’92: We need accurate, not necessary precise size estimates.We need accurate, not necessary precise size estimates. Let’s relate the estimate to the historical dataLet’s relate the estimate to the historical data Tall Middle Short
13
L.Ouyang, PSP, Lecture 5 Fuzzy-logic method Fuzzy-logic size ranges
14
L.Ouyang, PSP, Lecture 5 Fuzzy-logic method Given the smallest (S) and the largest (L) program size, find range boundaries A, B, C, D such that S, A, B, C, D, L form a geometrical progression. A/S = B/A = C/B = D/C = L/D = p L/S = p 5 p = (L/S) 0.2 If S= 1 000 and L= 1 024 000, then p=4 V. Large: D - L Large: C - D Medium: B - C Small: A - B V. small: S - A
15
L.Ouyang, PSP, Lecture 5 Fuzzy-logic method Remarks: Historical data are required on a large number of projects.Historical data are required on a large number of projects. Don’t change the existing ranges. Add new ranges when required.Don’t change the existing ranges. Add new ranges when required. Tall Middle Short ?
16
L.Ouyang, PSP, Lecture 5 Plan of the lecture Delphi methodDelphi method Fuzzy-logic methodFuzzy-logic method Standard-component methodStandard-component method Function point methodFunction point method Probe methodProbe method
17
L.Ouyang, PSP, Lecture 5 Standard-component method Putnam’92 We have a system decomposed into a set of standard components (screens, files, modules etc.)We have a system decomposed into a set of standard components (screens, files, modules etc.) For each standard component we have historical data about its sizeFor each standard component we have historical data about its size
18
L.Ouyang, PSP, Lecture 5 Standard-component method You have to provide for each component type: S - the smallest number of components of that type; L - the largest number M - the most likely number Estimated number of components of a given type: (S+4*M+L) / 6 For each component type we know average LOC.
19
L.Ouyang, PSP, Lecture 5 Plan of the lecture Delphi methodDelphi method Fuzzy-logic methodFuzzy-logic method Standard-component methodStandard-component method Function point methodFunction point method Probe methodProbe method
20
L.Ouyang, PSP, Lecture 5 Function point method Albrecht, IBM, 1979 Basic functions: InputsInputs OutputsOutputs InquiriesInquiries Internal data filesInternal data files External interfacesExternal interfaces
21
L.Ouyang, PSP, Lecture 5 Function point method DesignedapplicationInternal data file Output Input Inquiry Anotherapplication Externalinterfacefile
22
L.Ouyang, PSP, Lecture 5 Function point method An output: a report, a screen, an error message. Individual data items within a report are not counted separately. An inquiry: an on-line input that results in an on-line output. An inquiry cannot modify any internal file. Output Inquiry
23
L.Ouyang, PSP, Lecture 5 Function point method 2 2 2 26 3 3 3 48 2 1 0 10 2 1 0 24 0 1 0 7 115 Problem: simple, average or complex?
24
L.Ouyang, PSP, Lecture 5 Function point method FP = UT * CM FP - Function points UT - Unadjusted total (previous slide) CM - Complexity multiplier (0.65.. 1.35) CM = 0.65 + 0.01 * Influence_factors 14 influence factors, 0 - 5 points each
25
L.Ouyang, PSP, Lecture 5 Function point method Influence factor evaluation 0 - No influence 1 - Incidental 2 - Moderate 3 - Average 4 - Significant 5 - Essential
26
L.Ouyang, PSP, Lecture 5 Function point method Are data communications required? Are there distributed processing functions? Is performance critical? Will the system run in a heavily used operational environment? Does the system require on-line data entry? Is the internal processing complex? Is the code designed to be reusable?
27
L.Ouyang, PSP, Lecture 5 Function point method Are the inputs, outputs, files or inquiries complex? Does the on-line data entry require the input transaction to be built over multiple screens or operations? Are the master files updated on-line? Are conversion and installation included in the design?
28
L.Ouyang, PSP, Lecture 5 Function point method Does the system require reliable backup and recovery? Is the system designed for multiple installations in different organisations? Is the application designed to facilitate change and ease of use by the user?
29
L.Ouyang, PSP, Lecture 5 Function point method Language Assembly language CCobolFortranPascalAda o-o languages spreadsheets LOC/FP 320 128 105 90 70 30 6
30
L.Ouyang, PSP, Lecture 5 Function point method Modifications of the basic FP model: Feature points (C. Jones, 1991)Feature points (C. Jones, 1991) Object points (R. Kauffman, R. Kumar, 1993)Object points (R. Kauffman, R. Kumar, 1993) 3D function point (S.A. Whitmire, 1995)3D function point (S.A. Whitmire, 1995)
31
L.Ouyang, PSP, Lecture 5 Plan of the lecture Delphi methodDelphi method Fuzzy-logic methodFuzzy-logic method Standard-component methodStandard-component method Function point methodFunction point method Probe methodProbe method
32
L.Ouyang, PSP, Lecture 5 Probe method Humphrey, CMU, 1995 PROxy-Based Estimating Objects as proxies
33
L.Ouyang, PSP, Lecture 5 Planning a software project Conceptual design Size estimates Resource estimates The schedule The product Requirements Size database Productivity database Resources available Size, res., sched. data
34
L.Ouyang, PSP, Lecture 5 Probe method Conceptual design Calculate projected and modified LOC Estimate program size Calculate prediction interval Identify objects Number of Object Relative Reuse methods type size categories
35
L.Ouyang, PSP, Lecture 5 Probe method 1. Prepare a conceptual design (objects and methods + their function)
36
L.Ouyang, PSP, Lecture 5 Probe method 2. For each method assign one of size ranges Very big Big Medium Small Very small
37
L.Ouyang, PSP, Lecture 5 Probe method 3. Knowing: programming language object category size ranges the number of methods estimate, using historical data, size of each object.
38
L.Ouyang, PSP, Lecture 5 Probe method 4. Determine initial program estimated size, X, adding the values received in the previous step. 2 + 3 = 5 2 + 3 = 5
39
L.Ouyang, PSP, Lecture 5 Probe method 5. Apply linear regression to get estimated program size Y: Y = 1 X + 0 5 means 10 5 means 10
40
L.Ouyang, PSP, Lecture 5 Probe method x i y i - n x avg y avg x i y i - n x avg y avg x i 2 - n x avg 2 x i 2 - n x avg 2 1 = 1 = 1 = 1 = 0 = y avg - 1 x avg 0 = y avg - 1 x avg
41
L.Ouyang, PSP, Lecture 5 Probe method 6. Using the t distribution and standard deviation compute the prediction interval for a given percentage. For 100% the For 100% the interval is [0; + ]
42
L.Ouyang, PSP, Lecture 5 Probe method 6a. Calculate the standard deviation, , of the regression function. 6b. To find the two-sided value of t for the probability q, look in a table of the t distribution under p( )= (1+q)/2 and n-2 degree of freedom.
43
L.Ouyang, PSP, Lecture 5 The t distribution
44
L.Ouyang, PSP, Lecture 5 Probe method (x k - x avg ) 2 (x i - x avg ) 2 + 1 n +1 Range = t 6c. Compute the range as follows:
45
L.Ouyang, PSP, Lecture 5 Summary After requirements analysis: Function points After high level design: Wideband-Delphi method Fuzzy-logic method Standard-component method After low level design: Probe method
46
L.Ouyang, PSP, Lecture 5 Further readings Function Point Counting Practices Manual Release 4.0, IFPUG, http://www.ifpug.org. How Are Function Points Useful, Longstreet Consulting, http://www.SoftwareMetrics. com/manyuser.htm. R.Pressman, Software Engineering - A Practitioner Approach, McGraw-Hill, New York, 1997 (4th edition), Ch. 4.3 W. Humphrey, A Discipline for Software Engineering, Addison-Wesley, Reading, 1995
47
L.Ouyang, PSP, Lecture 5 Quality assessment 1. What is your general impression ? (1 - 6) 2. Was it too slow or too fast ? 3. Did you learn something important to you ? 4. What to improve and how ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.