Page 126 -
P. 126

CHAPTER 4  SOFTWARE PROCESS AND PROJECT METRICS                     97

                                   ments.  There is no way to measure maintainability directly; therefore, we
                                   must use indirect measures. A simple time-oriented metric is mean-time-to-
                                   change (MTTC), the time it takes to analyze the change request, design an
                                   appropriate modification, implement the change, test it, and distribute the
                                   change to all users. On average, programs that are maintainable will have a
                                   lower MTTC (for equivalent types of changes) than programs that are not
                                   maintainable.
                                     Hitachi [TAJ81] has used a cost-oriented metric for maintainability called
                                   spoilage—the cost to correct defects encountered after the software has been
                                   released to its end-users. When the ratio of spoilage to overall project cost
                                   (for many projects) is plotted as a function of time, a manager can determine
                                   whether the overall maintainability of software produced by a software
                                   development organization is improving. Actions can then be taken in
                                   response to the insight gained from this information.
                                   Integrity.  Software integrity has become increasingly important in the age
                                   of hackers and firewalls. This attribute measures a system's ability to with-
                                   stand attacks (both accidental and intentional) to its security. Attacks can be
                                   made on all three components of software: programs, data, and documents.
                                     To measure integrity, two additional attributes must be defined: threat and
                                   security. Threat is the probability (which can be estimated or derived from
                                   empirical evidence) that an attack of a specific type will occur within a given
                                   time. Security is the probability (which can be estimated or derived from
                                   empirical evidence) that the attack of a specific type will be repelled. The
                                   integrity of a system can then be defined as

                                       integrity = summation [(1 – threat)   (1 – security)]
                                   where threat and security are summed over each type of attack.
                                   Usability. The catch phrase "user-friendliness" has become ubiquitous in
                                   discussions of software products. If a program is not user-friendly, it is often
                                   doomed to failure, even if the functions that it performs are valuable. Usabil-
                                   ity is an attempt to quantify user-friendliness and can be measured in terms
                                   of four characteristics: (1) the physical and or intellectual skill required to
                                   learn the system, (2) the time required to become moderately efficient in the
                                   use of the system, (3) the net increase in productivity (over the approach that
                                   the system replaces) measured when the system is used by someone who is
                                   moderately efficient, and (4) a subjective assessment (sometimes obtained
                                   through a questionnaire) of users attitudes toward the system. Detailed dis-
                                   cussion of this topic is contained in Chapter 15.
                              The four factors just described are only a sampling of those that have been proposed
                              as measures for software quality. Chapter 19 considers this topic in additional detail.
   121   122   123   124   125   126   127   128   129   130   131