MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Specification matching of software components (1997) [225 citations — 4 self]

Download:
Download as a PDF | Download as a PS
by Amy Moormann Zaremski, Jeannette M. Wing
ACM Transactions on Software Engineering and Methodology
http://www.cs.cmu.edu/afs/cs.cmu.edu/project/venari/www/../papers/sigsoft95/sigsoft95.ps
Add To MetaCart

Abstract:

Specification matching is a way to compare two software components. 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. In the context of system interoperability, it can help determine whether the interfaces of two components mismatch. 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, substitutability, subtyping, and interoperability of software components. We write our formal specifications of components in terms of pre- and post-condition predicates. Thus, we rely on theorem proving to determine match and mismatch. We give examples from our implementation of specification matching using the Larch Prover.

Citations

2217 Introduction to Modern Information Retrieval – Salton, McGill - 1983
1190 Object-Oriented Software Construction – Meyer - 1997
348 A behavioral notion of subtyping – Liskov, Wing - 1994
273 Larch: Languages and Tools for Formal Specification – GUTTAG, EDS - 1993
241 Formalizing architectural connection – Allen, Garlan - 1994
163 Typefull programming – Cardelli - 1989
148 Architectural mismatch: Why reuse is so hard – Garlan, Allen, et al. - 1995
139 An information retrieval approach for automatically constructing software libraries – Maarek, Berry, et al. - 1991
134 Designing an object-oriented programming language with behavioural subtyping – America - 1990
113 Forcing behavioral subtyping through specification inheritance – Dhara, Leavens - 1996
96 Signature Matching: A Tool for Using Software Libraries – Zaremski, Wing - 1995
93 The Inscape environment – PERRY - 1989
92 Data abstraction and hierarchy – Liskov - 1988
84 Storing and Retrieving Software Components: A Refinement Based System – Mili, Mili, et al. - 1994
82 A Framework for Source Code Search Using Program Patterns – Paul, Prakash - 1994
74 C.: Computing similarity in a reuse library system: an AI-based approach – Ostertag, Hendler, et al.
63 Visualizing and querying software structures – Consens, Mendelzon, et al. - 1992
53 Reasoning about object-oriented programs that use subtypes – Leavens, Weihl - 1990
46 Software reuse through information retrieval – Frakes, Nejmeh - 1987
45 Interfaces, Protocols, and the Semi-Automatic Construction of Software – Yellin, Strom - 1994
32 Redmiles. Cognitive tools for locating and comprehending software objects for reuse – Fischer, Henninger, et al. - 1991
32 Verifying Object-Oriented Programs that Use Subtypes – Leavens - 1989
31 Specifications as search keys for software libraries – Rollins, Wing - 1991
28 Retrieving re-usable software components by polymorphic type – Runciman, Toyn - 1989
26 Classification of reusable modules – Prieto-D'iaz - 1989
25 VCR: A VDM-based software component retrieval tool – Fischer, Kievernagel, et al. - 1994
24 Retrieving library identifiers via equational matching of types – Rittri - 1990
24 Visualization of a document collection: The VIBE system – Olsen, Korfhage, et al. - 1993
19 On the retrieval of reusable software components – Chen, Hennicker, et al. - 1993
18 Inquire: Predicate-Based Use and Reuse – Perry, Popovich - 1993
18 Signature and Specification Matching – Zaremski - 1996
17 Type isomorphisms in a type assignment framework – Cosmo - 1992
16 Paris: A system for reusing partially interpreted schemas – Katz, Richter - 1987
15 Web-agent related research at the CMT – Mauldin, Leavitt - 1994
13 Thoughts on a larch/ML and a new application for LP – Wing, Rollins, et al. - 1993
13 A System for Reusing Partially Interpreted Schemas – KATZ, RICHTER, et al. - 1987
13 Software component search – Goguen, Nguyen, et al. - 1996
12 Automated synthesis of interface adapters for reusable classes – Thatte - 1994
10 The reuse system: Cataloging and retrieval of reusable software – Arnold, Stepoway - 1987
10 Subtyping for mutable types in object-oriented programming languages – Dhara, Leavens - 1992
10 Formal methods applied to reuse – Jeng, Cheng - 1992
7 Specification-Level Interoperability – WILEDEN, WOLF, et al. - 1991
5 Signature matching for Ada software reuse – STRINGER-CALVERT - 1994
4 Design Representation for Automating Software Component Reuse – Penix, Alexander - 1995
3 Object-Oriented Interoperability – Konstantas - 1993
3 Classification of reusable modules – iaz, R - 1989
3 Thatt'e: Automated Synthesis of Interface Adapters for Reusable Classes – R - 1994
2 Prieto-D ' iaz. Classification of reusable modules – Rub'en - 1989
1 Typeful programming. Report 45 – Cardelli - 1989
1 Logic-based retrieval and reuse of software modules – Katoh, Yoshida, et al. - 1986