From Abstract to Concrete Repairs of Model Inconsistencies: An Automated Approach

Roland Kretschmer; Djamel Eddine Khelladi; Andreas Demuth; Roberto E. Lopez-Herrejon; Alexander Egyed

2017 24th Asia-Pacific Software Engineering Conference (APSEC), 2017

A common task performed in model-driven software engineering is evolving models. This task is typically performed manually during the design or implementation phase of software projects and is known to cause inconsistencies. Despite extensive research on consistency checking, existing approaches either provide abstract (i.e., incomplete) repairs only, or they require manually predefined strategies on how to repair inconsistencies. In this paper, we present a novel approach that provides concrete (i.e., executable) repairs without the need of predefined repair strategies. Furthermore, our approach proposes functions which automate the generation of concrete repairs at runtime. An empirical assessment of the approach on six case studies from industry, academia and GitHub demonstrates its feasibility, and shows that the provided concrete repairs are relevant and can fix their corresponding inconsistencies automatically.