AbstractWorking with models can lead to inconsistencies, e.g., due to erroneous or contradictory actions during concurrent modeling processes. Modern modeling environments typically tolerate inconsistencies and support their detection. However, at a later stage of development, models are expected to be consistent, meaning their inconsistencies should be considered and resolved. The process of resolving model inconsistencies is commonly referred to as model repair. Our approach to model repair is semi-automatic in the sense that the repair tool computes appropriate repair plans and the modeler decides which path to take. The speciality of our approach is that the repair process can register any small improvement in the model. This allows the interaction with the user to be optimized, resulting in an approach with a high level of automation on the one hand and flexible configuration options on the other. The approach focuses on providing repair plans that do not have side effects, i.e., the computed repair plans do not inadvertently introduce a new inconsistency of already repaired constraints into the model. Since models often have a graph-like structure, we present our approach to model repair based on graphs. Our approach is completely formal—we use the algebraic graph transformation approach to prove its correctness. We also present a prototype implementation of our repair approach based on the Eclipse Modeling Framework and Henshin, a model transformation engine based on graph transformation, to perform the actual model repair. A first performance evaluation shows that graphs with up to 1000 nodes can be repaired in about 10 s.
Read full abstract