Specifications and Their Use in Defining Subtypes

Authors: Barbara Liskov and Jeannette M. Wing

Appears in Proceedings of OOPSLA '93, Sept. 1993.

The full text of this paper is here (in PostScript).

Abstract

Specifications are useful because they allow reasoning about objects without concern for their implementations. Type hierarchies are useful because they allow types that share common properties to be designed as a family. This paper is concerned with the interaction between specifications and type hierarchies. We present a way of specifying types, and show how some extra information, in addition to specifications of the objects' methods, is needed to support reasoning. We also provide a new way of showing that one type is a subtype of another. Our technique makes use of information in the types' specifications and works even in a very general computational environment in which possibly concurrent users share mutable objects.
  • Venari project home page.