我想基于我使用Xtext创建的基本C ++元模型,将基于JaMoPP Java 5元模型的模型(以XMI格式)转换为另一个模型(也是XMI格式)。经过一些研究,我找到了两种模型到模型转换的工具:ATL和QVT。
两者之间的主要区别是什么?使用其中一个而不是另一个的原因是什么?
答案 0 :(得分:2)
使用/选择模型转换语言与使用通用语言(GPL)相同:自己的偏好和背景。与GPL一样,某些转换语言可能更适合您的编程风格,或者为您的特定域提供更好的性能。 IT可能只归结为支持您的建模技术的夫妇(例如您的模型是csv文件)。另外,与GPL相反,建模语言相当年轻,因此当选择工具支持和可能的语言未来发展时,一个重要的问题是atm。
另外,请允许我提醒您,QVT规范实际上定义了三种语言:QVTr,QVTc和QVTo。
ATL,QVTr和QVTc都是声明性的,而QVTo是必不可少的(尽管ATL允许一些混合描述)。其他转换语言可以适当分类,应该是一个重要的决策点。此外,QVTr的当前工具支持是有限的,并且对于QVTc不存在。我会建议多读一些关于它们的内容,也许可以使用其他语言,如Epsilon的ETL,Kermeta等,并根据您的需求做出选择。