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.