title: Local Consistency Restoration Methods for Triple Graph Grammars
Creators: name: Fritsche, Lars
Publisher: name: UNSPECIFIED
Year: 2022

description: Modern software systems are becoming increasingly complex and are created by different stakeholders that commit to one vision. Yet, these stakeholders differ in their requirements that they pose on the software system and also do not necessarily share all competencies. Therefore, they require views onto the system tailored to their needs and abstracting from details outside their domain. Model-Driven Engineering (MDE) provides a methodology to achieve this by using models to abstract from different aspects of the same system. Yet, these models may overlap (partially), and more importantly, they may change throughout their life-cycle. Hence, changes to one model may have to be synchronised with other models that share the same information to restore consistency w.r.t. the overall system. The bidirectional transformations (BX) community aims at providing the means to specify and restore consistency between two models. A popular BX approach are Triple Graph Grammars (TGGs), where models are interpreted as graph-like structures and consistency is expressed via a set of grammar rules. These rules describe how to create consistent pairs of models from scratch. Furthermore, they can be transformed automatically to obtain advanced consistency restoration operations such as synchronisers that propagate changes between models. Most synchronisers are sequential meaning that only one model is changed at a time and the opposite model is updated. To date, most TGG-based approaches solve this task by deconstructing parts of the opposite model that are no longer consistent w.r.t. the TGG and then synchronising the now untranslated elements of the changed model. Yet, this retranslation often leads to very similar structures like the ones that were deleted. Hence, this strategy is inefficient and, above that, can even cause information loss when some information is only contained in one model but not the other. Therefore, we introduce short-cut rules as a new kind of TGG rule that describes how complex changes can be applied to both models at once in a consistency and information preserving way. Like normal TGG rules, these rules can then be transformed to obtain synchronisers, restoring consistency and preserving information more efficiently. In practice, sequential synchronisers are too limited to be employed in a truly collaborative scenario where both models may be changed concurrently by different stakeholders. The challenge of this task lies in the fact that some changes may conflict and have to be resolved. Former concurrent synchronisation solutions solved this by performing a sequential synchronisation step in one direction, followed by another in the opposite direction, detecting and resolving conflicts along the way. Others explored the vast space of (most of) all concurrent synchronisation solutions. While the first kind’s conflict detection was shown to depend on the order in which the synchronisation steps are executed, the latter is only applicable to small models. In this thesis, we introduce a novel TGG-based concurrent model synchronisation technique, which finds (most) conflicts before any synchronisation activities take place and detects conflicts more reliably. Also, our approach is highly configurable and provides the means for modellers to implement their own synchronisation goals. Finally, we implemented and evaluated both the short-cut rule framework and the TGG-based concurrent synchronisation framework demonstrating their promising scalability and comparing our solution to another state-of-the-art BX tool.