Software Quality Is Inversely Proportional to Potential Local Verification Effort1

John E. Hopkins
Murali Sitaraman

Department of Statistics and Computer Science
West Virginia University
P. O. Box 6330
Morgantown, WV 26506-6330
Tel: (304)-293-3607, fax: (304)-293-2272
Email: jhopkins@cs.wvu.edu, murali@cs.wvu.edu

Abstract:

Quality and methods for measuring quality are important for all software, especially for those that are meant to be reused. Two factors constitute the quality of a software product: (1) Whether the product correctly meets its specification and (2) whether the product is ``well engineered.'' Intuitively, a well-engineered component is one that is easy to comprehend, maintain, or modify.

Software engineering literature [Pressman 92, Sommerville 89] is replete with factors and metrics for determining how well a software product has been engineered. Unfortunately, it is not at all clear how even a smart software designer can use these factors to produce a well-engineered software product. Most published factors and metrics are good only to the extent that they can be used to argue ``statistically'' that one product is better than another.

In this paper, we propose a single factor for evaluating the goodness of the engineering of a software product - the Potential Verfication Effort (PVE) involved in locally establishing the correctness of the product. It is possible to design software to minimize the PVE. In addition, reduced PVE directly increases most conventionally-used software engineering metrics. PVE is not affected by whether a software product is correct or whether it is possible to establish correctness.



Keywords: Reuse, software engineering, metrics, local verifiability



Workshop Goals: Interact; advance theory and practices of software reuse



Working Groups: certification, design for reuse, metrics, and reuse education.