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

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

%\title{Formulations and Benefits\\ of the Law of Demeter}
\title{Tools for Preventive Software Maintenance}
%\title{Preventive Maintenance of\\ 
%Object-Oriented Software}
\author{Karl J. Lieberherr, Ian M. 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}
We discuss tools for preventive maintenance of software
which is written following the {\em \oo\ paradigm.} 
Initial ideas on preventive maintenance of object-oriented
systems were presented in \cite{LHLR:law-paper},
\cite{sakkinen:law-88}, \cite{benefits:law-89}.
These papers describe
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}.}
We discuss the implications of the Law for software maintenance.
%and
%propose a metric, called the preventive maintenance metric, to compare
%designs or programs for the same application.

In the second part of the paper we discuss the advantages of grammar-based
object-oriented design and programming for software maintenance. 
We study two kinds of grammar-based maintenance tools:
(1) Class evolution tools, especially 
an automatic class parameterization tool and (2)
growth plan tools with applications to software maintenance planning and
regression testing.
\end{abstract}

\noindent 
{\bf Keywords:} Object-oriented programming style, 
preventive program maintenance, information
hiding and restriction, grammar-based design,
application development planning, class parameterization.
%\input outline
