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-