Testing Data Abstractions through Their Implementations.
Abstract
A data abstraction can be specified by a syntactic (domainrange) description of its objects and operations on them, plus a set of axioms describing the behavior of the operations. In a programming language that supports abstraction, abstract objects are given a representation in terms of built-in data types (or other, previously defined abstractions), and the abstract operations are defined as procedures. The implemented abstraction has a meaning, acquired from the definition of the programming language; the axioms also specify an independent meaning. The crucial question is then whether or not either meaning is 'correct,' that is, whether it corresponds to the desired abstraction that the programmer has in mind. Using a finite collection of tests, the axiom meaning and the code meaning can be compared for consistency. A compiler-based system, DAISTS, is described for automating this process.
Document Details
- Document Type
- Technical Report
- Publication Date
- May 01, 1979
- Accession Number
- ADA070957
Entities
People
- John Gannon
- Mark Ardis
- Paul Mcmullin
- Richard Hamlet
Organizations
- University of Maryland