Specification matching of software components
- 1 October 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 6 (4), 333-369
- https://doi.org/10.1145/261640.261641
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.Keywords
This publication has 13 references indexed in Scilit:
- Software component searchJournal of Systems Integration, 1996
- Architectural mismatch: why reuse is so hardIEEE Software, 1995
- A behavioral notion of subtypingACM Transactions on Programming Languages and Systems, 1994
- A framework for source code search using program patternsIEEE Transactions on Software Engineering, 1994
- Visualization of a document collection: The vibe systemInformation Processing & Management, 1993
- Larch: Languages and Tools for Formal SpecificationPublished by Springer Nature ,1993
- Computing similarity in a reuse library systemACM Transactions on Software Engineering and Methodology, 1992
- An information retrieval approach for automatically constructing software librariesIEEE Transactions on Software Engineering, 1991
- Classification of reusable modulesPublished by Association for Computing Machinery (ACM) ,1989
- Verifying Object-Oriented Programs That Use SubtypesPublished by Defense Technical Information Center (DTIC) ,1989