Reusable Idioms and Patterns in Graph Transformation Languages

Software engineering tools based on Graph Transformation techniques are becoming available, but their practical applicability is somewhat reduced by the lack of idioms and design patterns. Idioms and design patterns provide prototypical solutions for recurring design problems in software engineering, but their use can be easily extended into software development using graph transformation systems. In this paper we briefly present a simple graph transformation language: GReAT, and show how typical design problems that arise in the context of model transformations can be solved using its constructs. These solutions are similar to software design patterns, and intend to serve as the starting point for a more complete collection.

[1]  Gabor Karsai,et al.  Semantic Translation of Simulink/Stateflow Models to Hybrid Automata Using Graph Transformations , 2004, GT-VMT@ETAPS.

[2]  Axel Uhl,et al.  Model-Driven Architecture , 2002, OOIS Workshops.

[3]  Andy Schürr PROGRESS: A VHL-Language Based on Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[4]  T. Henzinger The theory of hybrid automata , 1996, LICS 1996.

[5]  Herbert Göttler,et al.  Attributed graph grammars for graphics , 1982, Graph-Grammars and Their Application to Computer Science.

[6]  Ansgar Radermacher,et al.  Support for Design Patterns Through Graph Transformation Tools , 1999, AGTIVE.

[7]  Gabor Karsai,et al.  A modeling language and its supporting tools for avionics systems , 2002, Proceedings. The 21st Digital Avionics Systems Conference.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[10]  Insup Lee,et al.  Generating embedded software from hierarchical hybrid models , 2003, LCTES '03.

[11]  Dániel Varró,et al.  Designing the automatic transformation of visual languages , 2002, Sci. Comput. Program..

[12]  Gabor Karsai,et al.  On the Use of Graph Transformation in the Formal Specification of Model Interpreters , 2003, J. Univers. Comput. Sci..

[13]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[14]  Ulrich Nickel,et al.  The FUJABA environment , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[15]  James Coplien,et al.  Advanced C++ Programming Styles and Idioms , 1991, Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239).

[16]  Feng Shi,et al.  Towards Generation of High-performance Transformations , 2004 .

[17]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[18]  Kurt Mehlhorn,et al.  Graph Algorithm and NP-Completeness , 1984 .

[19]  Alexander Christoph,et al.  Graph Rewrite Systems for Software Design Transformations , 2002, NetObjectDays.

[20]  Gabor Karsai,et al.  Graph Transformations on Domain-Specific Models , 2003 .

[21]  Andy Schürr,et al.  Computing with Graphs and Graph Rewriting , 1999 .

[22]  Feng Shi,et al.  Towards Generation of Efficient Transformations , 2004, GPCE.

[23]  Arend Rensink The GROOVE Simulator: A Tool for State Space Generation , 2003, AGTIVE.

[24]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

[25]  Gabriele Taentzer AGG: A Tool Environment for Algebraic Graph Transformation , 1999, AGTIVE.

[26]  Andrei Alexandrescu,et al.  Modern C++ design: generic programming and design patterns applied , 2001 .