Specification Matching of Software Components.

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 bow 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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 1995
Accession Number
ADA294846

Entities

People

  • Amy M. Zaremski
  • Jeannette Wing

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Computer Programming
  • Computer Science
  • Computers
  • Engineering
  • Guarantees
  • High Level Languages
  • Information Retrieval
  • Interoperability
  • Language
  • Object Oriented Programming
  • Object-Oriented Programming Language
  • Programming Languages
  • Sequences
  • Software Development
  • Specifications
  • Standards

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Mathematical Modeling and Probability Theory.
  • Software Engineering.