Скачать презентацию Personal Software Process Lecture 6 Software Size Estimation

093248552bc23905a0f15f30b960e50d.ppt

• Количество слайдов: 34

Personal Software Process Lecture 6 Software Size Estimation II Jerzy. [email protected] poznan. pl www. cs. put. poznan. pl/~nawrocki/mse/psp J. Nawrocki, PSP, Lecture 5 Copyright, 1999 © Jerzy R. Nawrocki

Introduction Cyclic dev. Design templates Code & design reviews Task & schedule planning Size estimating + Test report Coding strd+Size measuremnt+PIP Time & defect recording J. Nawrocki, PSP, Lecture 5 Cyclic Quality Planning Baseline

Plan of the lecture • Introduction • From the previous lecture • Probe method J. Nawrocki, PSP, Lecture 5

From the previous lecture. . . What to estimate software size for? • To make plans. • To estimate the effort. • To create a reliable schedule. J. Nawrocki, PSP, Lecture 5

From the previous lecture. . . • • J. Nawrocki, PSP, Lecture 5 Delphi method Function point method Fuzzy-logic method Standard-component method

From the previous lecture. . . Wideband-Delphi method Estimator: Jerzy Nawrocki Date: 22. 06. 1999 Project: Sorting routine The estimates from the 1 st round: e 0 The estimate moderator 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

From the previous lecture. . . Function point method 2 26 3 3 3 48 2 1 0 10 2 1 0 24 0 1 0 7 115 FP = UT * Complexity_multiplier J. Nawrocki, PSP, Lecture 5

From the previous lecture. . . 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

From the previous lecture. . . Fuzzy-logic method V. small: S - A Small: A - B Medium: B - C Large: C - D V. Large: D - L Tall Middle Short J. Nawrocki, PSP, Lecture 5 Geometrical progression: A/S = B/A =. . . = L/D = p

From the previous lecture. . . Standard-component method For each standard component type (screen, module, file etc. ) we have historical data about its size aver_size(type) * (S+4*M+L) / 6 type A guess Historical data J. Nawrocki, PSP, Lecture 5

Plan of the lecture • Introduction • From the previous lecture • Probe method J. Nawrocki, PSP, Lecture 5

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

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 Conceptual design Identify objects Number of Object Relative Reuse methods type size categories Calculate projected and modified LOC Estimate program size Calculate prediction interval J. Nawrocki, PSP, Lecture 5

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

Probe method 2. For each object assign its type. • Logic • I/O • Text Very big Big Medium J. Nawrocki, PSP, Lecture 5 • Calculation • Data • Set-up Small Very small

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

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

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

Probe method 5 means 10 6. 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 xavg 2 0 = yavg - 1 xavg J. Nawrocki, PSP, Lecture 5

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

Probe method 7 a. Calculate the standard deviation, , of your historical data around the regression line. 2 = 1 n n-2 (yi - 0 - 1 xi)2 i=1 J. Nawrocki, PSP, Lecture 5

Probe method 7 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

Probe method 7 c. Compute the range as follows: Initial estimate obtained in Step 5 Range = t J. Nawrocki, PSP, Lecture 5 (X - xavg)2 1 + n (xi - xavg)2

Example Program to be modified Base program Linear Linked system Matrix list J. Nawrocki, PSP, Lecture 5 Data entry

Example Program to be modified Base program Linear Linked system list 1 Matrix 2 J. Nawrocki, PSP, Lecture 5 Data entry

Example Assignment of numbers to fuzzy values J. Nawrocki, PSP, Lecture 5

Example Base program LOC modified (M). . . 5 New objects Type Methods Size Total LOC Matrix Data 13 Medium 115 Linear sys. Calc. 8 Large 197 Linked list 1 Data 3 Large 49 Total new & modified (X). . . . . 366 0. . . . . 62 1. . . . . 1. 3 Estimated new & modified (Y). . . 538 J. Nawrocki, PSP, Lecture 5

Example Estimated new & modified (Y). . . Prediction percent. . . p = (1 + percent)/2. . . Number of programs in historical DB (n). . Std deviation from regression line. . . . Degrees of freedom (n-2). . . . t (8, 0. 9). . . . (1 + 1/10 +. . ). . . Prediction range. . . Upper interval (Y + range). . . . Lower interval (Y - range). . . . J. Nawrocki, PSP, Lecture 5 538 80% 0. 9 10 198 8 1. 4 1. 05 290 828 248

Summary The Probe method was inspired by: • Fuzzy logic method • Standard component method. Historical data are needed. Programmer can obtain not only the estimate but also the prediction interval. J. Nawrocki, PSP, Lecture 5

Further readings W. Humphrey, A Discipline for Software Engineering, Addison. Wesley, Reading, 1995, Chapter 5. J. Nawrocki, 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 ? J. Nawrocki, PSP, Lecture 5