\section{Related recent work}
Work on maintaining structure-oriented environments 
is useful for the study of class evolution.
A tool for updating objects when a grammar changes is described
in \cite{garlan:transform-88}. 

\cite{kaiser:workspaces} describes the Infuse tool which allows the user
to study the impact of change before the change is made.

\section{Conclusion}
As more software is written using the \oo\ paradigm,
it is important to study how this software is best maintained.
We identified a useful style rule, the Law of Demeter, which
simplifies or even obviates manual maintenance (see the discussion
of the parameterizer tool).

To simplify the maintenance (and development process), we propose
a two-level approach to \oo\ design and development: The definition of
the structure of objects is separated from the definition of their
functionality and the structure definition always implies a language
definition. We have discussed the benefits of this approach and we
have described two useful tools: a parameterizer tool and a growth plan tool
with applications to maintenance plan generation
and regression testing.

\medskip
\centerline{{\bf Acknowledgements}}

We would like to thank Carl Woolf and Bill Brown for the
implementation of the growth plan algorithms.
Ignacio Silva-Lepe and Paul Steckler contributed to the prefix
example.

We would like to thank Cindy Brown and Paul Steckler for their
feedback on an early version of this paper.

