Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Consistency-Preserving Model Evolution through Transformations
UML '02 Proceedings of the 5th International Conference on The Unified Modeling Language
Formalizing refactorings with graph transformations: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series)
Symbolic invariant verification for systems with dynamic structural adaptation
Proceedings of the 28th international conference on Software engineering
Model refactorings through rule-based inconsistency resolution
Proceedings of the 2006 ACM symposium on Applied computing
Formal Specification and Verification of Java Refactorings
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Behavior Preservation in Model Refactoring Using DPO Transformations with Borrowed Contexts
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Compositional Verification of Architectural Refactorings
Architecting Dependable Systems VI
Closing the gap between modelling and java
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Graph transformations for MDE, adaptation, and models at runtime
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
On verifying ATL transformations using 'off-the-shelf' SMT solvers
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
ICGT'12 Proceedings of the 6th international conference on Graph Transformations
Hi-index | 0.00 |
A model refactoring does not only need to ensure behavior preservation. First of all, it needs to ensure that specific well-formedness constraints of the modeling language under consideration are preserved (consistency preservation). The consistency of model refactorings can be ensured by runtime checks. However, this means that not the developer of the refactorings but the user is confronted with the problem. In this paper we present an approach to statically check for consistency preservation of rule-based refactorings at design time. Thereby, refactoring rules describe which side-effects may take place on the model to be refactored. We formalize rule-based refactorings using graph transformation and consistency using graph constraints. We extend a verification technique capable of proving statically that refactoring rule applications preserve consistency. By automatically computing meaningful counterexamples, this technique allows for the iterative development of refactoring rules guaranteeing consistency preservation. We demonstrate the approach for common Java refactorings applied to a fine grained EMF model and can show that bugs that were present in refactorings of former Eclipse versions could have been avoided using our approach.