Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A Hierarchical Model for Object-Oriented Design Quality Assessment
IEEE Transactions on Software Engineering
Logic, Programming and PROLOG
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
Using CBR for Automation of Software Design Patterns
ECCBR '02 Proceedings of the 6th European Conference on Advances in Case-Based Reasoning
A stochastic approach to automated design improvement
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Search-based refactoring: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Search Based Software Engineering [SBSE]
Repository for model driven development (ReMoDD)
MoDELS'06 Proceedings of the 2006 international conference on Models in software engineering
An aspect-oriented approach for implementing evolutionary computation applications
Proceedings of the tenth international conference on Aspect-oriented software development
Multi-level automated refactoring using design exploration
SSBSE'11 Proceedings of the Third international conference on Search based software engineering
Experimental assessment of software metrics using automated refactoring
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Improving software security using search-based refactoring
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Towards flexible automated software architecture erosion diagnosis and treatment
Proceedings of the WICSA 2014 Companion Volume
Hi-index | 0.00 |
Maintaining an object-oriented design for a piece of software is a difficult, time-consuming task. Prior approaches to automated 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 strategies that they can generate. In order to address this problem, this paper introduces an approach that supports composition of design changes and makes the introduction of design patterns a primary goal of the refactoring process. The proposed approach uses genetic programming and software 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