# Rule-based Graph Repair using Minimally Restricted Consistency-Improving Transformations

Model-driven software engineering is a suitable method for dealing with the ever-increasing complexity of software development processes. Graphs and graph transformations have proven useful for representing such models and changes to them. These models must satisfy certain sets of constraints. An example are the multiplicities of a class structure. During the development process, a change to a model may result in an inconsistent model that must at some point be repaired. This problem is called model repair. In particular, we will consider rule-based graph repair which is defined as follows: Given a graph G, a constraint c such that G does not satisfy c, and a set of rules R, use the rules of ℛ to transform G into a graph that satisfies c. Known notions of consistency have either viewed consistency as a binary property, either a graph is consistent w.r.t. a constraint c or not, or only viewed the number of violations of the first graph of a constraint. In this thesis, we introduce new notions of consistency, which we call consistency-maintaining and consistency-increasing transformations and rules, respectively. This is based on the possibility that a constraint can be satisfied up to a certain nesting level. We present constructions for direct consistency-maintaining or direct consistency-increasing application conditions, respectively. Finally, we present an rule-based graph repair approach that is able to repair so-called circular conflict-free constraints, and so-called circular conflict-free sets of constraints. Intuitively, a set of constraint C is circular conflict free, if there is an ordering c_1, …, c_n of all constraints of C such that there is no j <i such that a repair of c_i at all graphs satisfying c_j leads to a graph not satisfying c_j.

READ FULL TEXT