Signature and Specification Matching

Amy Moormann Zaremski

Thesis abstract

Large libraries of software components hold great potential as a resource for software engineers, but to utilize them fully, we need to be able: (1) to locate components in the library; (2) to organize the library in a way that facilitates browsing and improves efficiency of retrieval; and (3) to compare the description of a library component to the description of what we want.

A key requirement in all of these problems is to be able to compare two software components to see whether they match. In this dissertation, we consider two different kinds of semantic descriptions of components to determine whether components match: signatures (type information) and specifications (behavioral information). Semantic descriptions offer advantages over either textual descriptions, such as variable names, or structural descriptions, such as control flow graphs. Using semantic information focuses on what the components do rather than how they do it. Signatures and specifications are natural ways of describing software components and have well-understood properties, such as type equivalence and logical relations between formal specifications, that enable us both to define matches precisely and to automate the match.

This dissertation makes the following contributions:


Amy Moormann Zaremski, Signature and Specification Matching, Technical Report CMU-CS-96-103, Carnegie Mellon Computer Science Department, January 1996. Ph.D. thesis.

The full text of this paper is here

Click those ruby shoes to return to my home page. (Last modified 6/30/97)