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 rulebased 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 ObjectOriented 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.
