On the Use of Genetic Programming for Automated Refactoring and the Introduction of Design Patterns
|Title||On the Use of Genetic Programming for Automated Refactoring and the Introduction of Design Patterns|
|Publication Type||Conference Paper|
|Year of Publication||2010|
|Authors||Jensen, AC, Cheng, BHC|
|Conference Name||Proceedings of the 12th annual conference on Genetic and Evolutionary Computation|
Maintaining an object-oriented design for a piece of software is a difficult, time-consuming task. Prior approaches to au- tomated design refactoring have focused on making small, iterative changes to a given software design. However, such approaches do not take advantage of composition of design changes, thus limiting the richness of the refactoring strate- gies that they can generate. In order to address this prob- lem, this paper introduces an approach that supports com- position of design changes and makes the introduction of design patterns a primary goal of the refactoring process. The proposed approach uses genetic programming and soft- ware engineering metrics to identify the most suitable set of refactorings to apply to a software design. We illustrate the efficacy of this approach by applying it to a large set of published models, as well as a real-world case study.