Supporting Software Variability with Graph Transformations

Abstract

Software systems and the artifacts they consist of often exist in many different variants. When creating new variants, developers typically rely on the “clone and own” strategy of copying and modifying existing variants, a simple and intuitive approach with significant long-term disadvantages. In this talk, I present a line of work on supporting variants in software engineering by explicitly addressing variability as a feature in graph transformations. I focus on three transformation scenarios: one where the input graph has variability (representing the established notion of a software product line), one where rules have variability (leading to variability-based rules), and a combination of the first two scenarios. Each scenario is supported with formal constructions, efficient transformation algorithms, and tool support. Our work shows that a systematic way of supporting variability in transformations can improve the maintainability and the performance of a software system.

Date
Dec 3, 2021 15:00 Europe/Paris
Event
GReTA seminar
Zoom registration: click here! Please consider joining the meeting already within the 15min prior to the start of the seminar to ensure your setup is functioning properly. You may connect with either the Zoom web or Zoom desktop clients.

Please note that the meeting will be recorded and live-streamed to YouTube:

Daniel Strüber
Daniel Strüber
Senior Lecturer in Computer Science

I am a senior lecturer in the joint software engineering division of Chalmers University of Technology and the University of Gothenburg, Sweden. I am also an assistant professor in the software science group at Radboud University Nijmegen, Netherlands. With my research, I aim to support software developers during the construction and analysis of complex software systems. Much of my work is in model-driven engineering. I develop model-based languages, tools, and techniques to assure software quality, to manage variability, to establish privacy and security, to support collaborative development, and to explore search spaces. I investigate systematic AI engineering practices that become increasingly important as AI is finding its way in all areas of society. I conduct empirical, formal, and engineering research to understand the challenges faced by developers and to study the usability and performance benefits of improved solutions. Application domains of my work include robotics, web-based systems, and IDEs.