introduction to software project estimation i (condensed) barry schrag software engineering...

Post on 05-Jan-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Software Project Estimation I (Condensed)

Barry SchragSoftware Engineering Consultant

MCSD, MCAD, MCDBAbarryschrag@hotmail.com

Bellevue Community College

System Size: Function Points 1979, A.J. Albrecht of IBM published a

Function Point metric as a ‘measure of software productivity’ or unit of work.

Used to size an application and estimate effort.

Count number of operations, apply weights and add up for FP total and multiply by productivity factor.

Estimation Procedures First Estimate Size

Count Function Points as a size measurement

Determine Productivity Hours/FP Calibrate using local history

Total Effort Hours Size FP * Hours/FP

System Size: Function Points

Albrecht considered five operations The inputs to the application The outputs from it Inquiries by users The data files that would be updated

by the application The interfaces to other applications

The generic application

Data values inOutput simple data

Output Calculated data

Data store

Application

Modern Function Points Empirical weighting factors became a

standard The number of inputs was weighted by 4 The outputs by 5 Inquiries by 4 The data file updates by 10 The interfaces by 7

These weights change based on number of data fields used by each operation

Generic Application

Data values inExternal Input

Output Calculated data

Data store(Internal Logical Files)

Application

Output simple data

External Outputs (EO)

An elementary process in which derived data passes across the boundary from inside to outside the application

e.g. a report where data is calculated

External Inputs (EI)

Is an elementary process in which data crosses the boundary from outside to inside the application

External inQuiry (EQ)

An elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files

e.g. a report where data is pre-calculated

Internal Logical Files (ILF)

A group of logically related data within the application boundary

e.g. storage location for the users profile, for product, system control info…

Rating Logical Files

Weight is adjusted by how many data elements are in the file. 10 is average weight.

External Interface Files (EIF)

Data used for reference purposes which resides entirely outside the application and is maintained by another application

This is an Internal Logical File for another application

Function Point Terms Diagram

Calculate FP Count The number of External Inputs __ *4= __ The External Outputs __ *5= __ External inQuiries __ *4= __ The Internal Logical Files __ *10= __ The External InterFaces __ *7= __

TOTAL FP Estimate = __TOTAL Defects Estimate = FP * 5

= __

Calculate FP count The number of External Inputs 2*4= 8 The External Outputs 2*5=10 External inQuiries 2*4= 8 The Internal Logical Files 1*10= 10 The External InterFaces 1*7= 7

TOTAL FP Estimate = 43

TOTAL Defects Estimate = FP * 5 =215

Hours to release

TOTAL FP Estimate = 43EFFORT = FP * process efficiency

(hrs/fp)Now apply the variables -- 43 function points * 12 hours/fp =

516 hours to release Note that 12 is a LOW estimate of

process efficiency

Historical Measurement Thousands of projects Consistent sizing with FPA Record of time for each activity Trends emerge

Some activities are not performed on every project

Cost for the activity doesn’t vary based on project type

National Average Productivity

  Work Hours per FPActivity Minimum Mode Maximum

Requirements 0.38 0.75 2.64

Prototyping 0.53 0.88 5.28

Architecture 0.26 0.44 1.32

Project Plans 0.09 0.26 0.66

Initial Design 0.33 0.75 2.64

Detailed Design 0.44 0.88 5.28

Design Reviews 0.33 0.59 1.76

Coding 0.66 2.64 8.80

Reuse Acquisition 0.07 0.22 0.33

Package Purchase 0.09 0.33 0.38

Code Inspections 0.44 0.88 1.76

Independent verification and validation 0.66 1.06 1.76

Configuration Management 0.04 0.08 0.13

Integration 0.26 0.53 0.88

User Documentation 1.32 1.89 6.60

Unit Testing 0.33 0.88 1.89

Function Testing 0.44 0.88 5.28

Integration Testing 0.33 0.75 1.76

System Testing 0.26 0.66 1.32

Field Testing 0.26 0.59 1.76

Acceptance Testing 0.22 0.38 1.76

Independent Testing 0.44 0.66 1.32

Quality Assurance 0.44 0.88 4.40

Installation and Training 0.22 0.38 0.88

Project Management 0.66 1.32 8.80

Total hours per Function Point 9.50 19.56 69.39

Minimum = small team, maximum = big team (less productive)

EFFORT is Estimated by

Perform organization calibration to

get Hours per Function Point Historical Data gets better over time

Estimation Influences Are

Additive Error due to Size Effort hours

Schedule Error in Size Estimate Error in Effort Estimate

Productivity changes due to New team size Work tasks change Hours available to work are altered

Effort Estimation Issues Effort = Size * Productivity

Productivity measured as hours/Function Point

Use local productivity Data and ISBSG averages

Team history and cohesion do affect results

Main point - Record hours worked

Conclusion

Choose an estimating technique Make it part of your process at each

step and for each change requested It can reveal process efficiency Track error over time and use to

predict cone of uncertainty in the next cycle

top related