Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A Static Analysis Technique for Graph Transformation Systems
CONCUR '01 Proceedings of the 12th International Conference on Concurrency Theory
Unfolding and Event Structure Semantics for Graph Grammars
FoSSaCS '99 Proceedings of the Second International Conference on Foundations of Software Science and Computation Structure, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99
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
Pareto optimal search based refactoring at the design level
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Augur 2 --- A New Version of a Tool for the Analysis of Graph Transformation Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Search-based refactoring: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Search Based Software Engineering [SBSE]
Local Search-Based Refactoring as Graph Transformation
SSBSE '09 Proceedings of the 2009 1st International Symposium on Search Based Software Engineering
Hi-index | 0.00 |
Refactoring has emerged as a successful technique to reduce complexity of object oriented designs. But due to implicit dependencies not all sequences of refactorings are appropriate. In this paper we model refactoring steps as graph transformation and use the unfolding analysis technique to choose the sequence of refactorings best suited in order to improve the design. We use graphs to represent software architectures at the class level and graph transformation to formally describe their refactoring operations. This makes it possible to use concepts and techniques from the theory of graph transformation, such as unfolding to identify dependencies between refactoring steps.