Algebraic approaches to graph transformation. Part I: basic concepts and double pushout approach
Handbook of graph grammars and computing by graph transformation
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series)
Towards proving preservation of behaviour of refactoring of UML models
SAICSIT '05 Proceedings of the 2005 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries
Deriving bisimulation congruences in the DPO approach to graph rewriting with borrowed contexts
Mathematical Structures in Computer Science
Cloning and Expanding Graph Transformation Rules for Refactoring
Electronic Notes in Theoretical Computer Science (ENTCS)
A Taxonomy of Model Transformation
Electronic Notes in Theoretical Computer Science (ENTCS)
Deriving bisimulation congruences in the presence of negative application conditions
FOSSACS'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Foundations of software science and computational structures
Verification of architectural refactorings by rule extraction
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Model Transformation Using Graph Transactions
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Embedding domain-specific modelling languages in maude specifications
ACM SIGSOFT Software Engineering Notes
Saturated LTSs for adhesive rewriting systems
ICGT'10 Proceedings of the 5th international conference on Graph transformations
Bisimulation theory for graph transformation systems
ICGT'10 Proceedings of the 5th international conference on Graph transformations
Showing full semantics preservation in model transformation: a comparison of techniques
IFM'10 Proceedings of the 8th international conference on Integrated formal methods
Analysing graph transformation systems through constraint handling rules
Theory and Practice of Logic Programming
Iterative development of consistency-preserving rule-based refactorings
ICMT'11 Proceedings of the 4th international conference on Theory and practice of model transformations
ICGT'12 Proceedings of the 6th international conference on Graph Transformations
Verification of Model Transformations
Electronic Notes in Theoretical Computer Science (ENTCS)
Embedding domain-specific modelling languages in Maude specifications
Software and Systems Modeling (SoSyM)
Hi-index | 0.00 |
Behavior preservation, namely the fact that the behavior of a model is not altered by the transformations, is a crucial property in refactoring. The most common approaches to behavior preservation rely basically on checking given models and their refactored versions. In this paper we introduce a more general technique for checking behavior preservation of refactorings defined by graph transformation rules. We use double pushout (DPO) rewriting with borrowed contexts, and, exploiting the fact that observational equivalence is a congruence, we show how to check refactoring rules for behavior preservation. When rules are behavior-preserving, their application will never change behavior, i.e., every model and its refactored version will have the same behavior. However, often there are refactoring rules describing intermediate steps of the transformation, which are not behavior-preserving, although the full refactoring does preserve the behavior. For these cases we present a procedure to combine refactoring rules to behavior-preserving concurrent productions in order to ensure behavior preservation. An example of refactoring for finite automata is given to illustrate the theory.