Page 125 -
P. 125

96            PART TWO  MANAGING SOFTWARE PROJECTS


                       relationship between these quality factors (what they call a framework) and other
                       aspects of the software engineering process:

                          First, the framework provides a mechanism for the project manager to identify what
                       qualities are important. These qualities are attributes of the software in addition to its func-
                       tional correctness and performance which have life cycle implications. Such factors as main-
                       tainability and portability have been shown in recent years to have significant life cycle cost
                       impact . . .
                          Secondly, the framework provides a means for quantitatively assessing how well the
                       development is progressing relative to the quality goals established . . .
                          Thirdly, the framework provides for more interaction of QA personnel throughout the
                       development effort . . .
                          Lastly, . . . quality assurance personal can use indications of poor quality to help iden-
                       tify [better] standards to be enforced in the future.
                       A detailed discussion of McCall and Cavano's framework, as well as other quality fac-
                       tors, is presented in Chapter 19. It is interesting to note that nearly every aspect of
                       computing has undergone radical change as the years have passed since McCall and
         Surprisingly, the factors  Cavano did their seminal work in 1978. But the attributes that provide an indication
         that defined software
         quality in the 1970s  of software quality remain the same.
         are the same factors  What does this mean? If a software organization adopts a set of quality factors as
         that continue to define  a “checklist” for assessing software quality, it is likely that software built today will
         software quality in the  still exhibit quality well into the first few decades of this century. Even as computing
         first decade of this  architectures undergo radical change (as they surely will), software that exhibits high
         century.
                       quality in operation, transition, and revision will continue to serve its users well.

                       4.5.2   Measuring Quality
                       Although there are many measures of software quality, correctness, maintainability,
                       integrity, and usability provide useful indicators for the project team. Gilb [GIL88] sug-
                       gests definitions and measures for each.

                            Correctness. A program must operate correctly or it provides little value to
                            its users. Correctness is the degree to which the software performs its
                            required function. The most common measure for correctness is defects per
                            KLOC, where a defect is defined as a verified lack of conformance to require-
                            ments. When considering the overall quality of a software product, defects
                            are those problems reported by a user of the program after the program has
                            been released for general use. For quality assessment purposes, defects are
                            counted over a standard period of time, typically one year.
                            Maintainability. Software maintenance accounts for more effort than any
                            other software engineering activity. Maintainability is the ease with which a
                            program can be corrected if an error is encountered, adapted if its environ-
                            ment changes, or enhanced if the customer desires a change in require-
   120   121   122   123   124   125   126   127   128   129   130