Model analyses based on semantic differencing and automatic model repair
Kautz, Oliver; Rumpe, Bernhard (Thesis advisor); Maoz, Shahar (Thesis advisor)
Düren : Shaker Verlag (2021)
Book, Dissertation / PhD Thesis
In: Aachener Informatik Berichte, Software Engineering 46
Page(s)/Article-Nr.: ix, 357 Seiten : Diagramme
Dissertation, RWTH Aachen University, 2021
Models are the primary development artifacts used in model-driven software development. Therefore, models continuously evolve during the design, development, and maintenance of software systems. Thus, model differencing is an important task to understand the syntactic and semantic differences between model versions. Previous work produced general (and thus language-independent) approaches for syntactic model differencing, but only a few language-dependent approaches for semantic model differencing. Approaches combining syntactic with semantic model differencing by relating the syntactic changes of models to their semantic differences rarely exist. Previous work neglected the development of language-independent approaches abstracting from a concrete model property for detecting the syntactic elements of a model, which cause that the model does not satisfy the property. If the property encodes a requirement and the non-satisfaction represents the existence of a bug, then detecting the syntactic model elements causing the non-satisfaction of the property facilitates developers in detecting the syntactic model elements causing the bug. This thesis presents a framework for precisely defining modeling languages, including syntax, semantics, and model evolution possibilities. To demonstrate its feasibility, the framework is instantiated with four concrete modeling languages: Time-synchronous port automata, feature diagrams, sequence diagrams, and activity diagrams. For each of these modeling languages, this thesis presents syntactic and semantic differencing operators. The operators facilitate developers in understanding the syntactic and semantic differences between models of the languages. Based on the framework for precisely defining modeling languages, this thesis presents a modeling language and property-independent framework for automatic model repairs. The framework facilitates developers in detecting the syntactic elements of a model causing that the model does not satisfy a property. Instantiating the framework with a concrete modeling language and a concrete model property enables the automatic calculation of syntactic changes that transform a model not satisfying the property to a model that satisfies the property. The syntactic model elements affected by the syntactic changes can be interpreted to cause the non-satisfaction of the property. Developers can review the affected elements as evidence for the identification of the required changes for fixing the bug that causes the non-satisfaction of the property. Alternatively, the automatically calculated syntactic changes can be directly applied to the model to obtain a model that satisfies the property. The framework relies on the assumption that it is possible to partition the syntactic changes applicable to each model into finitely many model-specific and property-specific equivalence classes. This thesis presents formal proofs for the correctness of the language-independent and language-dependent results. The applicability and usefulness of the modeling language-independent frameworks are demonstrated by instantiating the frameworks with four modeling languages and the properties refinement, generalization, and refactoring. The instantiations of the frameworks with the four modeling languages and the example properties can be directly employed in development processes. The process of instantiating the frameworks is a methodology for the development of syntactic and semantic differencing procedures as well as precise model evolution analyses for detecting syntactic model elements causing the non-satisfaction of properties.