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.
Language | SLOC per FP |
---|---|
Assembler | 320 |
C | 150 |
Algol | 106 |
Cobol | 106 |
Fortran | 106 |
Jovial | 106 |
Pascal | 91 |
RPG | 80 |
PL/I | 80 |
Ada | 71 |
Lisp | 64 |
Basic | 64 |
4th Generation Database | 40 |
APL | 32 |
Smalltalk | 21 |
Query Languages | 16 |
Spreadsheet Languages | 6 |
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.