Triple Graph Grammars (TGG) 2.0: Reliable and Scalable Model Integration
Supported by Deutsche Forschungsgemeinschaft (2017–2020)
Model-Driven Engineering (MDE) is an established approach to cope with the increasing complexity of modern software systems. Models allow the development of software on a higher abstraction level. To enable the MDE vision on a large scale, the task of maintaining the consistency of related models is crucial. Different models used to abstract from related but distinct aspects of the same system are typically manipulated concurrently. Unfortunately, mature model integration (tool) support is still missing, which consolidates concurrently performed model changes and re-establishes crucial consistency relationships between them. This is largely because existing approaches to model integration have serious shortcomings w.r.t. expressiveness, reliability, configurability, and scalability. This is even true for the class of bidirectional transformation (bx) languages, developed for the very task to propagate changes back and forth between models.
To strengthen the MDE vision w.r.t. concurrent modeling, the overall goal of this project is to develop a reliable and configurable model integration framework, which is expressive and scalable enough to handle real-world application scenarios. This new framework relies on the fundament of Triple Graph Grammars (TGGs). TGGs, a special branch of bx languages, have been applied in real-world applications showing that they scale reasonably well. Moreover, they are formally based on algebraic graph transformation, providing a solid platform for reasoning about reliability. Hence, TGGs offer a well-suited basis for model integration purposes, despite of the fact that currently existing TGG tools support the propagation of model changes to unmodified related models only; ideas how to generalize towards truly concurrent engineering do exist, but come with severe expressiveness restrictions.
Our project vision can be broken down into the following objectives: (O1) Increase the expressiveness of TGGs by supporting multi-amalgamation as a new language feature. Multi-amalgamation allows for the concise definition of For-Each-loops in rules, a concept that is often needed in practice. Moreover, the restriction to TGGs with functional behaviour currently posed by existing TGG-based approaches to model integration shall be dropped. (O2) Establish a reliable model integration framework based on multi-amalgamated TGGs, which takes a novel, truly bidirectional approach to model integration and preserves formally defined correctness and completeness properties of TGG synchronisers. (O3) Develop configurable conflict recognition and resolution strategies for bidirectional propagation of concurrent model changes such that they are preserved as far as possible. (O4) Characterise a class of scalable multi-amalgamated TGGs allowing integration processes with polynomial runtime complexity, without losing the aforementioned correctness and completeness properties. This class of TGGs shall be statically identifiable.