On Propagation-Based Concurrent Model Synchronization - Orejas, Fernando; Boronat, Artur; Ehrig, Hartmut; Hermann, Frank; Schölzel, Hanna (Electronic Communications of the EASST, 2013)
The aim of concurrent model synchronization is to merge pairs of updates on interrelated models. For instance, this situation may occur in the context of model driven software development when the work is distributed between different teams. A first problem is that, if the updates are in conflict, this conflict is never explicit. The reason is that the updates do not interfere directly since they are assumed to modify different models. For this reason, detecting and solving conflicts becomes already more difficult than in the more standard case of synchronizing concurrent updates over a given model. Existing general approaches define the solution to this problem in terms of the solution to the simpler problem of update propagation in bidirectional model transformation. We call these approaches propagation based. In this paper, we first state some properties that, in our opinion, must be satisfied by a concurrent synchronization procedure to be considered correct. Then, we show how to check whether the given updates are conflict-free and, in this case, we present a correct synchronization procedure based on this check. Finally, we consider the case where the given updates are in conflict and we show how we can build solutions that satisfy some of the correctness properties but, in general, not all of them. Specifically, we present counter-examples that show how some of these properties may fail.