Affiliation:
1. Xerox Corp., Webster, NY
2. Carnegie Mellon Univ., Pittsburgh, PA
Abstract
Specification matching is a way to compare two software components, based on descriptions of the component's behaviors. In the context of software reuse and library retrieval, it can help determine whether one component can be substituted for another or how one can be modified to fit the requirements of the other. In the context of object-oriented programming, it can help determine when one type is a behavioral subtype of another. We use formal specifications to describe the behavior of software components and, hence, to determine whether two components match. We give precise definitions of not just exact match, but, more relevantly, various flavors of relaxed match. These definitions capture the notions of generalization, specialization, and substitutability of software components. Since our formal specifications are pre- and postconditions written as predicates in first-order logic, we rely on theorem proving to determine match and mismatch. We give examples from our implementation of specification matching using the Larch Prover.
Publisher
Association for Computing Machinery (ACM)
Reference44 articles.
1. CARDELLI L. 1989. Typeful programming. Rep. 45 DEC Systems Research Center Palo Alto Calif. May. CARDELLI L. 1989. Typeful programming. Rep. 45 DEC Systems Research Center Palo Alto Calif. May.
Cited by
200 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献