Presentation is loading. Please wait.

Presentation is loading. Please wait.

Personal Estimation with PROBE CS3300 Fall 2015. Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.

Similar presentations


Presentation on theme: "Personal Estimation with PROBE CS3300 Fall 2015. Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things."— Presentation transcript:

1 Personal Estimation with PROBE CS3300 Fall 2015

2 Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things are done.

3 Improvement We don’t test quality into applications, we design it in. We improve quality by improving the processes.

4 Code Size Estimation Wide Band Delphi (Boehm) Give the team the specs to study Discuss the project goals and issues Anonymously list the tasks and then estimate the size Estimates are given to moderator who tabulates the results Review the tasks Re-estimate and continue until convergence Fuzzy-Logic Method (Putnam) Need historical data on smallest and largest project Divide evenly using the log of the sizes by 4 Use the half-way mark to make ranges of size variance

5 Fuzzy Logic example Our company produced products between 173 and 10,341 LOC Determine the log difference log(10341) – log(173) = 4.014 – 2.238 = 1.776 Divide this by 4 = 1.776 / 4 =.444 Now use this number to calculate log of each category Very Small 173 2.238 Small 481 2.682 Medium 1338 3.126 Large 3719 3.57 Very Large 10341 4.014

6 Fuzzy Logic Continued Now take half the log difference to find ranges =.444/2 =.222 LowAverageHigh Very Small104173288 Small288481802 Medium80213382230 Large223037196202 Very Large62021034117243 Historical data is required Size of applications is constantly growing What if we are doing something much larger than ever built before?

7 Standard Component (Putnam) Again uses historical data for organization Get historical average lines of code for different components Estimate the number/type of components that you will need: Smallest Possible Number (S) Most likely number (M) Largest Possible Number (L) Use formula (S + 4*M + L) / 6 File IO 2535 S=3 M=6 L=10 = 6.17 * 2535 = 15633 Reports 967 S=2 M=6 L=11 = 6.17 * 967 = 5963

8 Function Points (Albrecht) Evaluate project with: Inputs (screens or forms to enter data) : 15 screen = 15 x 4 = 60 Outputs (screens or reports to display or provide to other systems): 10 screen = 10 x 5 = 50 Inquiries (screens to allow queries): 35 screens x 4 = 140 Logical Files (collections of records updated by system): 8 files x 10 = 80 Interfaces (files shared with other applications) : 4 interfaces x 7 = 28 Total = 358

9 Adjustments 0-5 Data Communication 4 Distributed Functions 2 Performance Objectives1 Heavily Used Config5 Transaction Rate3 Online entry5 End User efficiency4 Online update4 Complex Processing1 Reuse1 Install Ease2 Operational Ease3 Multiple Sites0 Facilitate Change3 Total38 Multiplier = 0.65+.01*38 = 1.03

10 Final Estimate 358 * 1.03 = 368.74 Conversion Factor for LOC: Java/C++ 80 C225 Assembly575 COBOL175 SQL 60 Assume we are Java 369 * 80 = 29,520 LOC Effort = 2.5 * 29520 ^.38 = 70.52 Schedule = 3 * 70.52 ^.33 = 5.8 person-months

11 PROBE Try to come up with a proxy like home builders use for square footage. For OO, we can think of classes Then we consider possible number of methods, kind of class and its relative size For example: LinkedList Data 3 methods Large StatisticsCalculation8 methods Large TestCalculation10 methods Large Then we convert the types and methods to a LOC count using a conversion table. See the PROBE details in psp.pdf

12 Size Estimating with PROBE PROBE: PROxy Based Estimating; uses proxies or objects as the basis for estimating the likely size of a product [Humphrey 95]. first determine the objects required to build the product described by the conceptual design. then determine the likely type and number of methods for each object. refer to historical data on the sizes of similar objects they have previously developed use linear regression to determine the likely overall size of the finished product. The example object size data show the five size ranges the PSP uses for objects.

13 Calculation C++ Object Sizes in LOC per Method CategoryVery SmallSmallMediumLargeVery Large Calculation2.345.1311.2524.6654.04 Data2.604.798.8416.3130.09 I/O9.0112.0616.1521.6228.93 Logic7.5510.9815.9823.2533.83 Set-up3.885.046.568.5311.09 Text3.758.0017.0736.4177.66

14 More Discussion Object size is a function of programming style the PROBE method shows engineers how to use the data on the programs they have personally developed to generate size ranges for their personal use. Once they have estimated the sizes of the objects, they used linear regression to estimate the total amount of code they plan to develop. To use linear regression, the engineers must have historical data on estimated versus actual program size for at least three prior programs.

15 Terms Base Program – an existing program that you are going to enhance/modify. Reused Objects – classes that are taken from your reuse library and reused in the application New Reused Objects – classes that you are going to write, but that are destined for the reuse library.

16 PROBE Bottom line – the more data and experience you gain, the more accurate the linear regression numbers will be and therefore your accuracy improves.


Download ppt "Personal Estimation with PROBE CS3300 Fall 2015. Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things."

Similar presentations


Ads by Google