Page 124 -
P. 124

CHAPTER 4  SOFTWARE PROCESS AND PROJECT METRICS                     95

                              to these questions is an emphatic “No!” The reason for this response is that many
                              factors influence productivity, making for "apples and oranges" comparisons that can
                              be easily misinterpreted.
                                Function points and LOC based metrics have been found to be relatively accu-
                              rate predictors of software development effort and cost. However, in order to use
                              LOC and FP for estimation (Chapter 5), a historical baseline of information must be
                              established.


                        4.5    METRICS FOR SOFTWARE QUALITY

                              The overriding goal of software engineering is to produce a high-quality system, appli-
                              cation, or product. To achieve this goal, software engineers must apply effective meth-
                              ods coupled with modern tools within the context of a mature software process. In
               WebRef         addition, a good software engineer (and good software engineering managers) must
               An excellent source of  measure if high quality is to be realized.
               information on software  The quality of a system, application, or product is only as good as the requirements
               quality and related topics
               (including metrics) can be  that describe the problem, the design that models the solution, the code that leads
               found at       to an executable program, and the tests that exercise the software to uncover errors.
               www.qualityworld.  A good software engineer uses measurement to assess the quality of the analysis and
               com
                              design models, the source code, and the test cases that have been created as the soft-
                              ware is engineered. To accomplish this real-time quality assessment, the engineer
                              must use technical measures (Chapters 19 and 24) to evaluate quality in objective,
                              rather than subjective ways.
                 XRef
                                The project manager must also evaluate quality as the project progresses. Private
                A detailed discussion of
                software quality  metrics collected by individual software engineers are assimilated to provide project-
                assurance activities is  level results. Although many quality measures can be collected, the primary thrust at
                presented in Chapter 8.
                              the project level is to measure errors and defects. Metrics derived from these mea-
                              sures provide an indication of the effectiveness of individual and group software qual-
                              ity assurance and control activities.
                                Metrics such as work product (e.g., requirements or design) errors per function
                              point, errors uncovered per review hour, and errors uncovered per testing hour pro-
                              vide insight into the efficacy of each of the activities implied by the metric. Error data
                              can also be used to compute the defect removal efficiency (DRE) for each process frame-
                              work activity. DRE is discussed in Section 4.5.3.

                              4.5.1  An Overview of Factors That Affect Quality
                              Over 25 years ago, McCall and Cavano [MCC78] defined a set of quality factors that
                              were a first step toward the development of metrics for software quality. These fac-
                              tors assess software from three distinct points of view: (1) product operation (using
                              it), (2) product revision (changing it), and (3) product transition (modifying it to work
                              in a different environment; i.e.,  "porting" it).  In their work, the authors describe the
   119   120   121   122   123   124   125   126   127   128   129