Home Page Use these buttons to navigate between newsletter articles.
[Previous Article] [Next Article] [In This Issue]



Function Points

This article briefly introduces Function Points (FPs), a software size or an output measure. Adequate monitoring of process improvement and productivity requires measurement of output. Measures of output are also useful in estimating budgets and schedules during project planning. Ideally, a software size or output measure should be easily estimated in the requirements phase of a software project.

Allan Albrecht (Reference 1), in collaboration with John Gaffney, Jr. (Reference 2), designed FPs as a direct measure of functionality. FPs are a weighted sum of the number of inputs, outputs, user inquiries, files, and interfaces to a system. The latest counting rules are defined in Release 3.0 (1990) of "Function Point Counting Practices Manual," by the International Function Points Users Group (IFPUG). IFPUG can be contacted at:

Function Points Users Group (IFPUG)
(614) 895-7130
[email protected]

FPs are most appropriate for information systems. Feature Points (Reference 3) are the most well-known modification for including the algorithmic complexity typical of embedded systems.

What are typical system sizes for systems in terms of FPs? References 1 and 2 provide FPs datasets, but the distribution of FPs is statistically significantly different in the two datasets. Figure 1 shows the distribution of COBOL projects in the more recent dataset (Reference 4). These projects range from 39 to 450 Thousand Source Lines of Code (KSLOC) in the older measure. The distribution of productivity for COBOL projects is not statistically significantly different in the two datasets, and this distribution is shown in Figure 2. Finally, Table 1 (Reference 5), provides a map from FP to SLOC.



Table 1 - SLOC per FP by Language
LanguageSLOC per FP
Assembler320
C150
Algol106
Cobol106
Fortran106
Jovial106
Pascal91
RPG80
PL/I80
Ada71
Lisp64
Basic64
4th Generation Database40
APL32
Smalltalk21
Query Languages16
Spreadsheet Languages6


References:

1. Allan J. Albrecht, "Measuring Application Development Productivity," Proceedings of the IBM Application Development Symposium, Monterey, California, October 1979, pp. 83-92.

2. Allan J. Albrecht and John E. Gaffney, Jr., "Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation," IEEE Transactions on Software Engineering, Volume SE-9, Number 6, November 1993, pp. 639-648.

3. Capers Jones, "What are Function Points?," http://www.spr.com/ library/funcmet.html, latest version, March 1995.

4. Chris F. Kemerer, "An Empirical Validation of Software Cost Estimation Models," Communications of the ACM, Volume 30, Number 5, May 1987, pp. 416-429.

5. Capers Jones, Programming Productivity, McGraw-Hill, 1986.


Use these buttons to navigate between newsletter articles.
[Previous Article] [Next Article] [In This Issue]
Home Page