Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Graph Grammars as Tools in Applications Work?
Proceedings of the 4th International Workshop on Graph-Grammars and Their Application to Computer Science
Formalising Behaviour Preserving Program Transformations
ICGT '02 Proceedings of the First International Conference on Graph Transformation
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Practical analysis for refactoring
Practical analysis for refactoring
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Static composition of refactorings
Science of Computer Programming - Special issue on program transformation
Formalizing refactorings with graph transformations: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
On the use of graph transformations for model refactoring
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Composite refactoring using fine-grained transformations
Proceedings of the 2009 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists
Hi-index | 0.00 |
The current trend is to apply refactoring at levels of abstraction above the code level. We present a new approach to formalize model refactorings. The approach is based on the semantics of a predefined set of fine-grain transformations (FGTs) that can be used to construct any refactoring, and relies on logic-based representations of the UML model. The proposed approach has many features: it gives the ability to detect and resolve conflicts; to remove redundancies; to find sequential dependencies between refactorings; and to increase parallelizing opportunities. In addition, it enables the end user to build their new refactorings. Based on the proposed formalism we also introduce a new technique to find automatically the order of a batch of refactorings.