The Demeter Kernel Model
for Object-Oriented and Language Design
Northeastern University, College of Computer Science
Cullinane Hall, 360 Huntington Ave., Boston MA 02115
phone: (617) 437 20 77, fax (617) 437 51 21
November 6, 1991
Texed at 20:29 November 6, 1991
Copyright c 1991 Karl Lieberherr
We give an axiomatic definition of the basic structures used by object-oriented designers and programmers during the software development process. The key structure, called a class dictionary, is defined and mapped into C++ classes. A class dictionary defines both a set of objects and a set of sentences (a language). We derive a set of restrictions on class dictionaries which permit a simple printer and its inverse, a parser, to be bijection functions between objects and sentences. The theory presented in this paper has been successfully implemented and used in the C++ Demeter Tools, a CASE (Computer Aided Software Engineering) system to ease the transition from analysis/design to programming.
Keywords and phrases: Object-oriented design and programming, graph theory, LL(1) conditions, table-driven parsing.
We present a notation and its axiomatic foundation for describing class libraries. The word kernel" in the title suggests that this notation is intended to serve as the basis for many other object-oriented notations. The goal of our research was to come up with a language which is 1.