Specifying Integrated Refactoring with Distributed Graph Transformations

With refactoring, the internal structure of a software system changes to support subsequent reuse and maintenance, while preserving the system behavior. To maintain consistency between the code (represented as a flow graph) and the model (given by several UML diagrams of different kinds), we propose a framework based on distributed graphs. Each refactoring is specified as a set of distributed graph transformations, structured and organized into transformation units. This formalism could be used as the basis for important extensions to current refactoring tools.

[1]  Gabriele Taentzer,et al.  Towards Integrating Multiple Perspectives by Distributed Graph Transformation , 1999 .

[2]  M. Fowler Improving the Design of Existing Code , 2000 .

[3]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[4]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[5]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[6]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[7]  Tom Mens,et al.  Formalising Behaviour Preserving Program Transformations , 2002, ICGT.

[8]  Tom Mens,et al.  Conditional Graph Rewriting as a Domain-Independent Formalism for Software Evolution , 1999, AGTIVE.

[9]  Francesco Parisi-Presicce,et al.  Describing Policies with Graph Constraints and Rules , 2002, ICGT.

[10]  Václav Rajlich,et al.  Reengineering object-oriented code , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[11]  Gabriele Taentzer,et al.  ViewPoint-oriented software development by distributed graph transformation: towards a basis for living with inconsistencies , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[12]  Hans-Jörg Kreowski,et al.  Nested Graph Transformation Units , 1997, Int. J. Softw. Eng. Knowl. Eng..

[13]  Don S. Batory,et al.  Evolving Object-Oriented Designs with Refactorings , 2004, Automated Software Engineering.

[14]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[15]  Andrew W. Appel,et al.  Modern Compiler Implementation in Java , 1997 .