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:

 

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. Albrecht’s 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

 

 

The unadjusted point (raw function count) is then adjusted by measuring it against 14 project complexity factors. See Table 3.2

Each project complexity factor is rated on the basis of its degree of influence. Which varies from :

The overall technical complexity factor can then be calculated with the formula:

TCF = 0.65 + (sum of factors) /100

The final function point figure can then be calculated

FP = UFC.TCF

The TCF can range from 0.65 to 1.35. because a figure of 0.65 would result if all the complexity factors had no influence, and a figure of 1.35 would indicate all the complexity factors had a significant influence.

Therefore if from the requirements specification document indicated that the system was relatively simple, with only a single processor without any performance constraints. The TCF would be lower than 1 because the majority of complexity factors would have a small influence. On the other hand if the system to be developed was a distributed system and performance was a key requirement then it is likely that the summing of complexity factors would yield a TCF higher than 1.

For further analysis of function points and an example of how to identify and calculate function points, I refer the reader of this page to [SHEPPERD] which covers this topic in detail.

 

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

 


This page was last updated 12/3/97 Dan. Snell, Bournemouth University, Copyright. 1997