1 Introduction
OBJECT-ORIENTED software is of more recent vintage than the old-style procedural code. Nonetheless, there now exist many commercial object-oriented applications that show the same signs of aging as the legacy procedural code. So what may have started out as a well-modularized architecture may have decayed into a system of interdependent modules that are difficult to maintain and extend on an individual basis.