Personal Software Process Lecture 5 Software Size Estimation

  • Slides: 46
Download presentation
Personal Software Process Lecture 5 Software Size Estimation Jerzy. Nawrocki@put. poznan. pl www. cs.

Personal Software Process Lecture 5 Software Size Estimation Jerzy. Nawrocki@put. poznan. pl www. cs. put. poznan. pl/~nawrocki/mse/psp J. Nawrocki, PSP, Lecture 5 Copyright, 1999 © Jerzy R. Nawrocki

Introduction What to estimate software size for? • To make plans. • To estimate

Introduction What to estimate software size for? • To make plans. • To estimate the effort. • To create a reliable schedule. “Sizing represents the project planner’s first major challenge” -- R. S. Pressman J. Nawrocki, PSP, Lecture 5

Introduction COCOMO: • Effort = a Sizeb COCOMO 2. 0: • Effort = (

Introduction COCOMO: • Effort = a Sizeb COCOMO 2. 0: • Effort = ( ei) A Size. B Walston-Felix model: • Effort = 5. 2 Size 0. 91 Software equation (Putnam): • Effort = (Size B 0. 333/P)3/ t 4 J. Nawrocki, PSP, Lecture 5

Introduction . . Project planning. . J. Nawrocki, PSP, Lecture 5 Size estimating

Introduction . . Project planning. . J. Nawrocki, PSP, Lecture 5 Size estimating

Plan of the lecture • • • Delphi method Fuzzy-logic method Standard-component method Function

Plan of the lecture • • • Delphi method Fuzzy-logic method Standard-component method Function point method Probe method J. Nawrocki, PSP, Lecture 5

Plan of the lecture • Delphi method • • Fuzzy-logic method Standard-component method Function

Plan of the lecture • Delphi method • • Fuzzy-logic method Standard-component method Function point method The Probe method J. Nawrocki, PSP, Lecture 5

Wideband-Delphi method Pythia Rand Corporation, Boehm’ 81 • A few experts individually produce size

Wideband-Delphi method Pythia Rand Corporation, Boehm’ 81 • A few experts individually produce size estimates. • A Delphi process is used to reach a consensus. J. Nawrocki, PSP, Lecture 5

Wideband-Delphi method The Delphi procedure 1. Experts get the specification and an estimation form

Wideband-Delphi method The Delphi procedure 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 The estimate 4. The estimates go to the estimate moderator. He tabulates the results and moderator returns them to the experts. J. Nawrocki, PSP, Lecture 5

Wideband-Delphi method Estimator: Jerzy Nawrocki Date: 22. 06. 1999 Project: Sorting routine The estimates

Wideband-Delphi method Estimator: Jerzy Nawrocki Date: 22. 06. 1999 Project: Sorting routine The estimates from the 1 st round: e 0 20 E 40 M e 60 e 80 100 e - estimates, E - your estimate, M - median estimate Your estimate for the next round: . . LOC A rationale for your estimate: . . . . . . . . J. Nawrocki, PSP, Lecture 5

Wideband-Delphi method The Wideband-Delphi procedure 5. The experts meet to discuss the results. They

Wideband-Delphi method The Wideband-Delphi procedure 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 estimate moderator J. Nawrocki, PSP, Lecture 5

Plan of the lecture • Delphi method • Fuzzy-logic method • Standard-component method •

Plan of the lecture • Delphi method • Fuzzy-logic method • Standard-component method • Function point method • Probe method J. Nawrocki, PSP, Lecture 5

Fuzzy-logic method Putnam’ 92: • We need accurate, not necessary precise size estimates. •

Fuzzy-logic method Putnam’ 92: • We need accurate, not necessary precise size estimates. • Let’s relate the estimate to the historical data Tall Middle Short J. Nawrocki, PSP, Lecture 5

Fuzzy-logic method Fuzzy-logic size ranges J. Nawrocki, PSP, Lecture 5

Fuzzy-logic method Fuzzy-logic size ranges J. Nawrocki, PSP, Lecture 5

Fuzzy-logic method V. small: S - A Small: A - B Medium: B -

Fuzzy-logic method V. small: S - A Small: A - B Medium: B - C Large: C - D V. Large: D - L J. Nawrocki, PSP, Lecture 5 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

Fuzzy-logic method Remarks: • Historical data are required on a large number of projects.

Fuzzy-logic method Remarks: • Historical data are required on a large number of projects. • Don’t change the existing ranges. Add new ranges when required. Tall Middle Short J. Nawrocki, PSP, Lecture 5 ?

Plan of the lecture • Delphi method • Fuzzy-logic method • Standard-component method •

Plan of the lecture • Delphi method • Fuzzy-logic method • Standard-component method • Function point method • Probe method J. Nawrocki, PSP, Lecture 5

Standard-component method Putnam’ 92 • We have a system decomposed into a set of

Standard-component method Putnam’ 92 • 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 size J. Nawrocki, PSP, Lecture 5

Standard-component method You have to provide for each component type: S - the smallest

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. J. Nawrocki, PSP, Lecture 5

Plan of the lecture • Delphi method • Fuzzy-logic method • Standard-component method •

Plan of the lecture • Delphi method • Fuzzy-logic method • Standard-component method • Function point method • Probe method J. Nawrocki, PSP, Lecture 5

Function point method Albrecht, IBM, 1979 Basic functions: • Inputs • Outputs • Inquiries

Function point method Albrecht, IBM, 1979 Basic functions: • Inputs • Outputs • Inquiries • Internal data files • External interfaces J. Nawrocki, PSP, Lecture 5

Function point method Another application Designed application External interface file Internal data file J.

Function point method Another application Designed application External interface file Internal data file J. Nawrocki, PSP, Lecture 5 Input Output Inquiry

Function point method Output Inquiry An output: a report, a screen, an error message.

Function point method Output Inquiry 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. J. Nawrocki, PSP, Lecture 5

Function point method 2 26 3 3 3 48 2 1 0 10 2

Function point method 2 26 3 3 3 48 2 1 0 10 2 1 0 24 0 1 0 7 115 Problem: simple, average or complex? J. Nawrocki, PSP, Lecture 5

Function point method FP = UT * CM FP - Function points UT -

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 J. Nawrocki, PSP, Lecture 5

Function point method Influence factor evaluation 0 - No influence 1 - Incidental 2

Function point method Influence factor evaluation 0 - No influence 1 - Incidental 2 - Moderate 3 - Average 4 - Significant 5 - Essential J. Nawrocki, PSP, Lecture 5

Function point method Are data communications required? Are there distributed processing functions? Is performance

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? J. Nawrocki, PSP, Lecture 5

Function point method Are the inputs, outputs, files or inquiries complex? Does the on-line

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? J. Nawrocki, PSP, Lecture 5

Function point method Does the system require reliable backup and recovery? Is the system

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? J. Nawrocki, PSP, Lecture 5

Function point method Language LOC/FP Assembly language 320 C 128 Cobol 105 Fortran 105

Function point method Language LOC/FP Assembly language 320 C 128 Cobol 105 Fortran 105 Pascal 90 Ada 70 o-o languages 30 spreadsheets 6 J. Nawrocki, PSP, Lecture 5

Function point method Modifications of the basic FP model: • Feature points (C. Jones,

Function point method Modifications of the basic FP model: • Feature points (C. Jones, 1991) • Object points (R. Kauffman, R. Kumar, 1993) • 3 D function point (S. A. Whitmire, 1995) J. Nawrocki, PSP, Lecture 5

Plan of the lecture • • Delphi method Fuzzy-logic method Standard-component method Function point

Plan of the lecture • • Delphi method Fuzzy-logic method Standard-component method Function point method • Probe method J. Nawrocki, PSP, Lecture 5

Probe method Humphrey, CMU, 1995 PROxy-Based Estimating Objects as proxies J. Nawrocki, PSP, Lecture

Probe method Humphrey, CMU, 1995 PROxy-Based Estimating Objects as proxies J. Nawrocki, PSP, Lecture 5

Planning a software project Requirements Conceptual design Size estimates Size database Resource estimates Productivity

Planning a software project Requirements Conceptual design Size estimates Size database Resource estimates Productivity database The schedule Resources available The product Size, res. , sched. data J. Nawrocki, PSP, Lecture 5

Probe method 1. Prepare a conceptual design (objects and methods + their function) J.

Probe method 1. Prepare a conceptual design (objects and methods + their function) J. Nawrocki, PSP, Lecture 5

Probe method 2. For each method assign one of size ranges Very big Big

Probe method 2. For each method assign one of size ranges Very big Big Medium J. Nawrocki, PSP, Lecture 5 Small Very small

Probe method 3. Knowing: • programming language • object category • size ranges •

Probe method 3. Knowing: • programming language • object category • size ranges • the number of methods estimate, using historical data, size of each object. J. Nawrocki, PSP, Lecture 5

Probe method 2+3=5 4. Determine initial program estimated size, X, adding the values received

Probe method 2+3=5 4. Determine initial program estimated size, X, adding the values received in the previous step. J. Nawrocki, PSP, Lecture 5

Probe method 5 means 10 5. Apply linear regression to get estimated program size

Probe method 5 means 10 5. Apply linear regression to get estimated program size Y: Y = 1 X + 0 J. Nawrocki, PSP, Lecture 5

Probe method 1 = xi yi - n xavg yavg xi 2 - n

Probe method 1 = xi yi - n xavg yavg xi 2 - n xavg 2 0 = yavg - 1 xavg J. Nawrocki, PSP, Lecture 5

Probe method For 100% the interval is [0; + ] J. Nawrocki, PSP, Lecture

Probe method For 100% the interval is [0; + ] J. Nawrocki, PSP, Lecture 5 6. Using the t distribution and standard deviation compute the prediction interval for a given percentage.

Probe method 6 a. Calculate the standard deviation, , of the regression function. 6

Probe method 6 a. Calculate the standard deviation, , of the regression function. 6 b. 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. J. Nawrocki, PSP, Lecture 5

The t distribution J. Nawrocki, PSP, Lecture 5

The t distribution J. Nawrocki, PSP, Lecture 5

Probe method 6 c. Compute the range as follows: Range = t J. Nawrocki,

Probe method 6 c. Compute the range as follows: Range = t J. Nawrocki, PSP, Lecture 5 (xk - xavg)2 1 + n (xi - xavg)2

Summary After requirements analysis: • Function points After high level design: • Wideband-Delphi method

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 J. Nawrocki, PSP, Lecture 5

Further readings Function Point Counting Practices Manual Release 4. 0, IFPUG, http: //www. ifpug.

Further readings Function Point Counting Practices Manual Release 4. 0, IFPUG, http: //www. ifpug. org. How Are Function Points Useful, Longstreet Consulting, http: //www. Software. Metrics. com/manyuser. htm. R. Pressman, Software Engineering - A Practitioner Approach, Mc. Graw-Hill, New York, 1997 (4 th edition), Ch. 4. 3 W. Humphrey, A Discipline for Software Engineering, Addison-Wesley, Reading, 1995 J. Nawrocki, PSP, Lecture 5

Quality assessment 1. What is your general impression ? (1 - 6) 2. Was

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 ? J. Nawrocki, PSP, Lecture 5