Candidate metrics for object-oriented software within a taxonomy framework
Journal of Systems and Software - Special issue on achieving quality in software
A Hierarchical Model for Object-Oriented Design Quality Assessment
IEEE Transactions on Software Engineering
Practical analysis for refactoring
Practical analysis for refactoring
Search-Based Software Maintenance
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Pareto optimal search based refactoring at the design level
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Search-based refactoring for software maintenance
Journal of Systems and Software
Genetic Synthesis of Software Architecture
SEAL '08 Proceedings of the 7th International Conference on Simulated Evolution and Learning
On the use of genetic programming for automated refactoring and the introduction of design patterns
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Interactive, Evolutionary Search in Upstream Object-Oriented Class Design
IEEE Transactions on Software Engineering
Code-Imp: a tool for automated search-based refactoring
Proceedings of the 4th Workshop on Refactoring Tools
A web-service for automated software refactoring using artificial bee colony optimization
ICSI'12 Proceedings of the Third international conference on Advances in Swarm Intelligence - Volume Part I
Hi-index | 0.00 |
In the past few years, there has been a growing interest in automating refactoring activities using metaheuristic approaches. These current refactoring approaches involve source-to-source transformation. However, detailed information at source-code level makes precondition checking and source-level refactorings hard to perform. It also severely limits how extensively a program can be refactored. While design improvement tools can be used for a deep and fast design exploration, it is left to the programmer to manually apply the required refactorings to the source code, which is a burdensome task. To tackle the above problems, our proposal is based on a multi-level refactoring approach that involves both design and source code in the refactoring process. Initially, the program design is extracted from the source code. Then, in a design exploration phase, using a metaheuristic approach, the design is transformed to a better one in terms of a metrics suite as well as the user perspective. The source code is then refactored based on both the improved design and the metrics suite. Using this approach, we expect a deeper and faster exploration of the program design space, that may result more opportunities for design improvement.