Synchronizing concurrent model updates based on bidirectional transformation

  • Authors:
  • Yingfei Xiong;Hui Song;Zhenjiang Hu;Masato Takeichi

  • Affiliations:
  • Generative Software Development Lab, University of Waterloo, Waterloo, Canada;Key Laboratory of High Confidence Software Technologies (Peking University), Ministry of Education, Beijing, China;GRACE Center, National Institute of Informatics, Tokyo, Japan;Department of Mathematical Informatics, The University of Tokyo, Tokyo, Japan

  • Venue:
  • Software and Systems Modeling (SoSyM)
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Model-driven software development often involves several related models. When models are updated, the updates need to be propagated across all models to make them consistent. A bidirectional model transformation keeps two models consistent by updating one model in accordance with the other. However, it does not work when the two models are modified at the same time. In this paper we first examine the requirements for synchronizing concurrent updates. We view a synchronizer for concurrent updates as a function taking the two original models and the two updated models as input, and producing two new models where the updates are synchronized. We argue that the synchronizer should satisfy three properties that we define to ensure a reasonable synchronization behavior. We then propose a new algorithm to wrap any bidirectional transformation into a synchronizer with the help of model difference approaches. We show that synchronizers produced by our algorithm are ensured to satisfy the three properties if the bidirectional transformation satisfies the correctness property and the hippocraticness property. We also show that the history ignorance property contributes to the symmetry of our algorithm. An implementation of our algorithm shows that it worked well in a practical runtime management framework.