automated software evolution towards design patterns
During the evolution of a software system, it may be necessary to refactor the software in order to make it more flexible and amenable to new requirements that are being introduced. A typical aim of such a refactoring is to apply a suitable design pattern to the program in order to enhance its flexibility. Performing such a transformation by hand is an error-prone process, so automated support would be useful.We have developed a methodology for the creation of automated transformations that can apply a design pattern to an existing program. In this paper we present a brief description of this methodology, and report on the results of using this methodology to develop program transformations that can apply the Gamma et al design patterns. It is found that in almost 75\% of cases a satisfactory transformation is developed, and that much of the commonality between design patterns can be captured in reusable minitransformations.
design patterns refactoring design quality automated program transformations