Kies de Nederlandse taal
Course module: 202100114
Graph Transformations (Software Science)
Course info
Course module202100114
Credits (ECTS)5
Course typeCourse
Language of instructionEnglish
Contact A. Rensink
Contactperson for the course A. Rensink
Examiner A. Rensink
Academic year2022
Starting block
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes

After successfully completing this course, the student:

  • Understands and can apply the concepts of graphs and graph transformations, both theoretically and intuitively
  • Can model the system dynamics in a given domain using graph transformation
  • Can analyse systems modelled in this way through the use of graph transformation tooling

Software is everywhere, and our society is depending more and more on software working reliably and efficiently. To make it more reliable and efficient, we need to have a thorough understanding of the behavior of software systems, and how we can analyse and improve this behavior. This course gives insights into current research directions in the area of software systems, and how these new ideas can be used to improve software.

Graph transformation is a very widely applicable modelling paradigm, based on an understanding of a given domain in terms of graphs. Graphs can be used to capture very many concepts in an intuitive way, and have been used (within computer science) for modelling syntax, data structures, networks, or entire software architectures, but also (outside computer science) for biological structures, building architecture, social networks, infrastructures and much more. The transformation of these graphs, captured in a rule-based manner, then serves to describe the dynamics in such systems. This then gives rise to a state space (in which the states are graphs and the transitions are rule applications) enabling the behavioural system analysis.

In this course, students learn the basic concepts of graph transformation and how to apply them in the way described above. This is supported by a tool called GROOVE (which stands for “GRaphs for Object-Oriented VErification”) in which students apply everything they have learned to develop a rule system for a domain of choice, and subsequently analyse systems in that domain.

Participating study
Master Computer Science
Required materials
Recommended materials
Course material
Papers will be provided via Canvas
Instructional modes

Project unsupervised


Project, Exam

Kies de Nederlandse taal