Achieving Software Quality Through Reuse

Report
Authors:Knight, JC, Department of Computer ScienceUniversity of Virginia Cass, Department of Computer ScienceUniversity of Virginia
Abstract:

Software reuse is advocated primarily as a technique to improve programmer productivity. Reuse permits various artifacts of software development to be used on more than one project in order to amortize their development costs. Productivity is not the only advantage of reuse although it is the most widely publicized. By incorporating reusable parts into a new product, the parts bring with them whatever qualities they possess, and these can contribute to the quality of the new product. This suggests that reuse might be exploited for improving dependability as an entirely separate goal from improving productivity. If useful properties pertaining to dependability could be shown to be present in products as a direct result of software development based on reuse, this might be a costeffective way of achieving those qualities irrespective of the productivity advantages. In this paper, we address the issue of certifying reusable parts and exploiting certification to establish properties of systems. We advocate the development of software by reuse with the specific intent of establishing as many of the required properties in the final product as possible by depending upon properties present in the reusable parts. For this goal to succeed, a precise definition of certification of reusable parts is required together with a detailed mechanism for the exploitation of certification. We present a precise definition of certification and a development framework for its exploitation. The benefits of the definition and the way in which it supports the goal are explored. Finally, we illustrate the concept of certification with some examples from a case study. We show how the certification and exploitation processes can be used to demonstrate that a complex system possesses several properties including freedom from memory leaks. This latter property is defined formally as an invariant on program variables and demonstrated using static analysis techniques.
Note: Abstract extracted from PDF file via OCR

Rights:
All rights reserved (no additional license for public reuse)
Language:
English
Source Citation:

Knight, JC. "Achieving Software Quality Through Reuse." University of Virginia Dept. of Computer Science Tech Report (1995).

Publisher:
University of Virginia, Department of Computer Science
Published Date:
1995