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.
   118   119   120   121   122   123   124   125   126   127   128