一句话:提出支持共享节点的模型合并式 BX 组合子与 putback 式语言 XMU,解决双向模型变换的歧义问题。
双向模型变换(BX)在模型驱动工程中至关重要,但传统关系式和双向化方法常面临歧义问题:后向变换未必由一致性关系或前向变换唯一确定。putback 式双向编程通过直接指定后向变换来缓解歧义,但已有方法不支持同一节点的多次转换(共享节点),而模型作为图普遍存在共享节点。本文提出基于模型合并的 BX 组合子,可将两个含共享节点的 BX 合成为性质良好的复合 BX;进而构建 putback 式 BX 语言 XMU,给出可证明性质良好的形式语义,并提供工具支持。
Bidirectional model transformation (BX) plays a vital role in Model-Driven Engineering. A major challenge in conventional relational and bidirectionalization-based BX approaches is the ambiguity issue, i.e., the backward transformation may not be uniquely determined by the consistency relation or the forward transformation. A promising solution to the ambiguity issue is to adopt putback-based bidirectional programming, which realizes a BX by specifying the backward transformation. However, existing putback-based approaches do not support multiple conversions of the same node (namely a shared node). Since a model is a graph, shared nodes are very common and inevitable. Consequently, existing putback-based approaches cannot be directly applied to bidirectional model transformation. This paper proposes a novel approach to BX. We define a new model-merging-based BX combinator, which can combine two BXs owning shared nodes into a well behaved composite BX. Afterwards, we propose a putback-based BX language XMU to address the ambiguity issue, which is built on the model-merging-based BX combinator. We present the formal semantics of XMU which can be proven well behaved. Finally, a tool support is also introduced to illustrate the usefulness of our approach.
DOI 原文 ·
@inproceedings{paperbot4616,
title = {Putback-based bidirectional model transformations},
author = {Xiao He and Zhenjiang Hu},
booktitle = {FSE},
year = {2018},
doi = {10.1145/3236024.3236070}
}