Page 123 -
P. 123
94 PART TWO MANAGING SOFTWARE PROJECTS
4.4 RECONCILING DIFFERENT METRICS APPROACHES
The relationship between lines of code and function points depends upon the pro-
gramming language that is used to implement the software and the quality of the
design. A number of studies have attempted to relate FP and LOC measures. To quote
Albrecht and Gaffney [ALB83]:
The thesis of this work is that the amount of function to be provided by the application (pro-
8
gram) can be estimated from the itemization of the major components of data to be used
or provided by it. Furthermore, this estimate of function should be correlated to both the
amount of LOC to be developed and the development effort needed.
The following table [JON98] provides rough estimates of the average number of lines
of code required to build one function point in various programming languages:
Programming Language LOC/FP (average)
? If I know Assembly language 320
C
128
the number
of LOC, is it COBOL 106
possible to FORTRAN 106
estimate the Pascal 90
number of C++ 64
function points? Ada95 53
Visual Basic 32
Smalltalk 22
Powerbuilder (code generator) 16
SQL 12
A review of these data indicates that one LOC of C++ provides approximately 1.6 times
the "functionality" (on average) as one LOC of FORTRAN. Furthermore, one LOC of a
Visual Basic provides more than three times the functionality of a LOC for a conven-
Use backfiring data tional programming language. More detailed data on the relationship between FP
judiciously. It is far
better to compute FP and LOC are presented in [JON98] and can be used to "backfire" (i.e., to compute the
using the methods number of function points when the number of delivered LOC are known) existing
discussed earlier. programs to determine the FP measure for each.
LOC and FP measures are often used to derive productivity metrics. This invari-
ably leads to a debate about the use of such data. Should the LOC/person-month (or
FP/person-month) of one group be compared to similar data from another? Should
managers appraise the performance of individuals by using these metrics? The answers
8 It is important to note that “the itemization of major components” can be interpreted in a variety
of ways. Some software engineers who work in an object-oriented development environment
(Part Four) use the number of classes or objects as the dominant size metric. A maintenance
organization might view project size in terms of the number of engineering change orders (Chap-
ter 9). An information systems organization might view the number of business processes
affected by an application.