page 1  (50 pages)
2to next section

The Demeter Kernel Model

for Object-Oriented and Language Design

Karl Lieberherr

Cun Xiao

Northeastern University, College of Computer Science

Cullinane Hall, 360 Huntington Ave., Boston MA 02115

lieber@corwin.CCS.northeastern.EDU

cunxiao@corwin.CCS.northeastern.EDU

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

Abstract

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.

1 Introduction

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.