Title: Estimation I: Delphi and Function Points
1Estimation IDelphi andFunction Points
- CSSE 372 - Software Project Management
- Don Bagert, Rose-Hulman Institute of Technology
- December 8, 2005
- Thanks to Mark Ardis for most of the slides
included.
2Outline
- Estimation Accuracy
- Delphi method of estimation
- Function Points
- Function Point Wizard Demo
3Accuracy of Estimates Over Time
4Suggested Variances
5One Schedule Rule of Thumb
- Schedule months
- 3.0 (person-months 1/3)
- Schedule months How long the project will last
in actual months
6Delphi Method of Estimation
- Encourage experts to converge on one estimate
- Works by encouraging outliers to change their
estimates
7Basic Delphi Method
- Ask a group of experts to estimate a quantity.
- Distribute their estimates to one another.
- Ask for estimates again.
- Distribute estimates again.
- Repeat until this converges.
8Do Delphi Exercises 1 through 6
9Wideband Delphi
- Ask a group of experts to estimate a quantity.
- Distribute their estimates to one another, and
allow them to discuss their reasoning. - Ask for estimates again.
- Distribute with discussion again.
- Repeat until this converges.
10Do Delphi Exercises 7 though 12
11Discussion of Delphi Exercise
- What were your results?
- Why?
12Function Points
13Function Points in Pictures
14Function Point Variables
- External Inputs (EI)
- External Outputs (EO)
- External Inquiries (EQ)
- Internal Logical Files (ILF)
- External Interface Files (EIF)
- each is multiplied by a complexity factor
15How to Count Inputs
- Logical collection of data moved into application
by a transaction - Examples
- Input screen
- Interactive input
- Hardware input
- Batch input
16How to Count Outputs
- Logical collection of data moved out of an
application by a transaction - Examples
- Screen report
- Printed report
- Media outputs
17How to Count Inquiries
- Unique request/response that retrieves data from
the application - Examples
- Database query
- Menus
- Context-sensitive help
18How to Count Logical Files
- User-identifiable group of logically related data
or control information maintained by the
application - Examples
- Data tables
- Database files
19How to Count External Interfaces
- User-identifiable group of logically related data
or control information maintained by another
application - Examples
- Databases
- Fixed messages
- Shared files
20Unadjusted Function Points
- Sum of function point variables with complexity
multipliers - Assumes that no Value Adjustment Factors (VAFs)
are needed
21Complexity Multipliers
22Backfiring
- What if you have a legacy system?
- Count lines of code
- Use correlation between lines of code and
function points to estimate function points
23Value Adjustment Factors (VAFs)
- Data communication
- Distributed data processing
- Performance
- Heavily used configuration
- Transaction rate
- On-line data entry
- End-user efficiency
- On-line update
- Complex processing
- Reusability
- Installation ease
- Operational ease
- Multiple sites
- Facilitate change
- each multiplied by degree of influence(0-5)
24Data Communication
- 0 Batch
- 1 Remote printing or data entry
- 2 Remote printing and data entry
- 3 Teleprocessing front end
- 4 Significant teleprocessing
- 5 Dominantly teleprocessing
25Distributed Processing
- 0 Monolithic (single processor)
- 1 Prepare data for other components
- 2 A few components
- 3 More components
- 4 Many components
- 5 Dynamically performed on many components
26Adjusted Function Points
- Unadjusted FP (? VAFs / 100 0.65)
- Example
- 300 (25 / 100 0.65)
- 300 (0.25 0.65)
- 300 (0.90) 270
27Caper Jones's Estimate of Schedule Months
Raise function-point total to power in table
below
28FP ? Lines of Code
- Average correlation between function points and
lines of code
29Function Point Wizard - Demo