Automating three modes of evolution for object-oriented software architectures
Lance Tokuda, Don S. Batory · 1999
1 Architectural evolution is a costly yet unavoidable consequence of a successful application. One method for reducing cost is to automate aspects of the evolutionary cycle when possible. Three kinds of architectural evolution in object-oriented systems are: schema transformations, the introduction of design pattern microarchitectures, and the hot-spot-driven-approach. This paper shows that all three can be viewed as transformations applied to an evolving design. Further, the transformations are automatable with refactorings --- behavior-preserving program transformations. A comprehensive list of refactorings used to evolve large C++ applications is provided and a domain analysis of supported schema transformations, design patterns, and hot-spot meta patterns is presented. Refactorings enable the evolution of architectures on an if-needed basis reducing unnecessary complexity and inefficiency. Keywords: program transformations, software evolution, design patterns 1 Introduction All ...