Sequential model synchronisation is the task of propagating changes from one model to another correlated one to restore consistency. It is challenging to perform this propagation in a least-changing way that avoids unnecessary deletions (which might cause information loss). From a theoretical point of view, so-called short-cut (SC) rules have been developed that enable provably correct propagation of changes while avoiding information loss. However, to be able to react to every possible change, an infinite set of such rules might be necessary. Practically, only small sets of pre-computed basic SC rules have been used, severely restricting the kind of changes that can be propagated without loss of information. In this work, we close that gap by developing an approach to compute more complex required SC rules on-the-fly during synchronisation. These higher-order SC rules allow us to cope with more complex scenarios when multiple changes must be handled in one step. We implemented our approach in the model transformation tool eMoflon. An evaluation shows that the overhead of computing higher-order SC rules on-the-fly is tolerable and at times even improves the overall performance. Above that, completely new scenarios can be dealt with without the loss of information.
翻译:顺序模型同步任务是将变化从一个模型传播到另一个相关模型以恢复一致性。如何以最小化变更的方式执行此传播,避免不必要的删除(可能导致信息丢失),是一项具有挑战性的工作。从理论角度来看,已开发出所谓的“快捷”(SC)规则,能够实现可证明正确的变更传播,同时避免信息丢失。然而,为了应对所有可能的变化,可能需要无限多的此类规则。在实践中,仅使用了少量预先计算的基本SC规则,这严重限制了可在不丢失信息的情况下传播的变更类型。在本工作中,我们通过开发一种在同步过程中动态计算更复杂所需SC规则的方法来弥合这一差距。这些高阶SC规则使我们能够在一步处理多个变更时应对更复杂的场景。我们在模型转换工具eMoflon中实现了该方法。评估表明,动态计算高阶SC规则的开销是可接受的,有时甚至能提升整体性能。此外,我们还能在不损失信息的情况下处理全新的场景。