\documentstyle[12pt]{article}
%\documentstyle{article}
%\documentstyle[proc]{article}
%\documentstyle[proc]{article}
%\pagestyle{headings}

\begin{document}
\bibliographystyle{alpha}
\raggedbottom

%\title{Formulations and Benefits\\ of the Law of Demeter}
\title{Preventive Maintenance of\\ 
Object-Oriented Software}
\author{Karl J. Lieberherr, Ian Holland\\
Northeastern University, College of Computer Science\\
Cullinane Hall, 360 Huntington Ave., Boston MA 02115\\
lieber or holland@corwin.CCS.northeastern.EDU}

\maketitle
\input time.tex 
%\centerline{Texed at \thetime\ \today}
%\centerline{Copyright \copyright 1988 Karl Lieberherr}
\input common.tex

\begin{abstract}
Our initial ideas on preventive maintenance of object-oriented
systems were presented in \cite{LHLR:law-paper} which describes
a set of guidelines called the ``Law of Demeter''.\footnote{\demsign\/
is the name of the object-oriented CASE system we are working on \cite{lieber-riel:oop}, \cite{karl1:class}, \cite{karl:demeter}.}
As a result of this publication we have received much feedback, as
well as a detailed critique from \cite{sakkinen:law-88}.
In this paper we expand on the initial ideas and present a new
perspective with which to view the Law. This perspective is based
on client/supplier relationships between methods and classes
and allows a cleaner description of the benefits of the Law.
This paper is also a reply
to \cite{sakkinen:law-88} which was pointing out that the formulation
of the Law for C++ needs additional work.
\end{abstract}

\begin{quote}
At first sight, the idea of any rules or principles being 
superimposed on the creative mind seems more likely to hinder  than to
help, but this is really quite untrue in practice.
Disciplined thinking focusses inspiration rather than blinkers it.

{\em "G.L. Glegg: "The Design of Design"}
\end{quote}

\noindent 
{\bf Keywords:} Object-oriented programming style, preventive program maintenance, information
hiding and restriction, C++, CLOS, Eiffel, Flavors,
Smalltalk-80.
