May 05, 2018
Role-based Runtime Model Synchronization
To be presented at: The Euromicro Conference on Software Engineering and Advanced Applications (SEAA) 2018 in Prag, Czech Republic
By: Christopher Werner, Hendrik Schön, Thomas Kühn, Sebastian Götz and Uwe Assmann
Model-driven Software Development (MDSD) promotes the use of multiple related models to systematically realize a software system. These models usually contain redundant information but are independently edited. This easily leads to inconsistencies among them. To ensure consistency among multiple models, model synchronizations have to be employed, e.g., by means of model transformations, trace links, or triple graph grammars. Model synchronization imposes three main issues for MDSD. First, classical model synchronization approaches have to be manually triggered to perform the synchronization. However, to support consistent evolution of multiple models, it is necessary to immediately and continuously update all of them. Second, synchronization rules are specified at design time and, in classic approaches, cannot be extended at runtime, which is necessary if metamodels evolve at runtime. Finally, most classical synchronization approaches focus on bilateral model synchronization, i.e., the synchronization between two models. Consequently, for more than two models, they require the definition of pairwise model synchronizations leading to a combinatorial explosion of synchronization rules. To remedy these issues, we propose a role-based approach for runtime model synchronization. In particular, we propose role-based synchronization rules that enable the immediate and continuous propagation of changes to multiple interrelated models (and back again). Additionally, our approach permits adding new and custom synchronization rules at runtime. We illustrate the benefits of role-based runtime model synchronization using the "families to persons" case study from the Transformation Tool Contest 2017.