Graph Transformation for Software Engineers
Studiengänge
Informatik Bachelor 6. Semester (Modul 12317)
Informatik Master
Informations- und Medientechnik Bachelor 6. Semester
Informations- und Medientechnik Master
Angewandte Mathematik Master
Modul 12462 Seminar
Modul 12317 Seminar
Modul 12463 Seminar
Lehrinhalt:
Numerous (semi-)formal methods exist to model and analyse artefacts arising in different phases of software development, ranging from requirement specifications over software architecture and runtime models, to code. Some of these methods focus on state-based behaviour (e.g. automata, state charts, or state transition systems), other methods rather concentrate on structure (e.g. relational logic).
Graph transformation is a formal method that aims to describe system structure and behaviour in an integrated way, allowing to specifically zoom in on the interplay of structure and behaviour. Thereby graphs describe structure and graph transformation rules describe how this structure may change. Analysis methods based on graph transformation can then check, for example, if the induced changes comply with safety constraints for the system (that can be expressed using graph logic), they support to investigate under which conditions specific changes can be performed in parallel (improving performance), or also which changes might causally depend on each other (and need to be synchronized), etc.
Graph transformation has been applied successfully for the modelling and analysis of artefacts occurring in different software development phases, as e.g. of requirement specifications, domain-specific languages, model transformations, rule-based optimization, runtime models, or visual contracts. In this seminar, we first study the basics of graph transformation as well as graph logic, and subsequently learn and discuss through different application scenario's how it can be adopted to support quality assurance in software engineering. Application scenario’s will be concerned with different quality aspects of a software system such as safety, security, performance, traceability, etc. Depending on the interest and background of the individual seminar participants, we focus on foundational a/o on application-oriented aspects.

Learning Outcomes
After successfully completing the module, students have acquired overview knowledge of the formal method graph transformation and its main application scenarios for quality assurance in software engineering. They are able to independently develop and present specialized knowledge (either theoretical, or more application-oriented) in the field of graph transformation and software engineering.
Assessment Mode for Module Examination
Active participation (in the form of e.g. asking questions, giving feedback, and participating in group discussions) during individual as well as group appointments is required. The grade for this seminar is composed from the presentation (80%) of a selected topic related to the seminar contents and from a post-processing (20%) of this presentation, reflecting on questions and comments in the open discussion after the presentation, and summarized into a reflection document. Both parts must be passed.
Recommended Prerequisites Knowledge of the topics of modules
• 12101: Algorithmieren und Programmieren
• 12104: Entwicklung von Softwaresystemen
• 12202: Softwarepraktikum



Literatur:
Teaching Materials and Literature
Graph Transformation for Software Engineers, Reiko Heckel and Gabriele Taentzer, Springer, 2020
Further literature related to specific subtopics will be announced in the course.
Lehrstuhl Softwaresystemtechnik
Institut für Informatik