Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Size Estimation Copyright, 2006 © L. Ouyang Liubo Ouyang Personal Software Process Lecture 5.

Similar presentations


Presentation on theme: "Software Size Estimation Copyright, 2006 © L. Ouyang Liubo Ouyang Personal Software Process Lecture 5."— Presentation transcript:

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 ?


Download ppt "Software Size Estimation Copyright, 2006 © L. Ouyang Liubo Ouyang Personal Software Process Lecture 5."

Similar presentations


Ads by Google