Graphs provide both expressive mathematical structures and a visual language used widely across engineering and social sciences. To computer scientists they are one of the most flexible data structures and a foundation for diagrammatic modelling languages.

In the field of graph transformations (aka graph rewriting or graph grammars) we describe and analyse how graphs change, e.g., as a model of computation, network dynamics, software evolution, data, model, or program transformation, etc. They generalize classical rule-based models based on strings, trees, or (multi) sets such as Chomsky grammars, term rewrite systems or Petri nets, inheriting and extending much of their theory.

This course is an introduction to graph transformations addressing in particular

- concepts and visual notations
- formal categorical background
- applications in model-based software engineering
- theory and analysis techniques

This course is based on a book on Graph Transformation for Software Engineers. You can download a free free authors' copy here).

The conceptual and application-oriented aspects are covered in these lecture slides on Foundatons and Applications of graph transformations.

The theory presented is covered in

- Parallelism and Concurrency in Adhesive High-Level Replacement Systems with Negative Application Conditions
- Embedding and Confluence of Graph Transformations with Negative Application Conditions
- Flexible Interconnection of Graph Transformation Modules

Exercises addressed modelling with graph transformation, formalisation and basic theory, aiming to provide participants with the background to access more advanced literature and use the formalism for modelling their own problems.

We used Groove for some of the exercises, which provides facilities to edit, run and debug, and model-check graph transformation systems. Installation is simple: Just downoad, unpack, and for the interactive version run bin/Simulator.jar. See also examples and documentation at the site. Here are the models we created. Just unzip and load the directories name.gps as grammars from the File menu.

- A simple voting systembased on these requirements. Here is the solution I prepared in advance, which has some additional features (e.g. vote delegation) but is not as compact.
- A model for tree traversal, to illustrate evaluation of expressions, in a data-driven variant and one modelling depth-first recursive function calls.

Recent developments are covered in our online seminar on GReTA - Graph Transformation Theory and Applications every other Friday, restarting 22nd April.

There is a regular conference ICGT and a workshop GCM devoted to graph transformation, both in Nantes this year, 6-8 July.

Last modified: Thu April 14, 2022