FUNCTION POINTS
As an alternative to the problems identified with SLOC, [ALBRECT] devised a method of estimating effort by measuring the functionality of a system as opposed to size, namely function points. The approach taken is to identify and count a number of unique function types:
- external inputs (e.g. file names)
- external outputs (e.g. reports, messages)
- queries (interactive inputs needing a response)
- external files or interfaces (files shared with other software systems)
- internal files (invisible outside the system)
By focusing on the requirements specification document, the estimator can calculate the functionality of the system to be developed by identifying the function types listed above.
The sum of all the occurrences is computed by multiplying each raw function count with a weighting and then adding up all the values. The weights are based on the complexity of the feature being counted. Albrechts original method classified the weightings as:
Table 3.1
Function Type
Simple
Average
Complex
External input
3
4
6
External output
Queries
External files
4
3
5
6
4
7
7
6
10
Internal files
7
10
15
|
|
Assessment of function points

* In a paper by [LOW & JEFFERY] they concluded that there was a 30% variation between analysts counting function points
Table 3.2 Technical Complexity Factors
Project Complexity Factors |
Data communications |
Performance |
Heavily used configuration |
Transaction rate |
Online data entry |
End user efficiency |
Online update |
Complex processing |
Reusability |
Installation ease |
Operations ease |
Multiple sites |
Facilitate change |
Distributed functions |