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.