使用Eclipse EMF进行双向M2M转换

时间:2012-01-25 14:36:25

标签: eclipse-emf eclipse-emf-ecore qvt

我想做双向Model2Model转换。两种型号都是基于EMF / eCore的。实际上我更希望一个模型是另一个可编辑的视图。

我有什么选择? 可以使用哪些工具和转换语言以及它们的限制是什么?

4 个答案:

答案 0 :(得分:2)

M2M是最难的。行业实力工具很少见,很多学术界的东西。如果你已经开始使用M2M语言,请查看ATL,它也应该支持ecore。否则你可以看一下Xtend,它是为模型到文本而制作的,但你可以滥用它,它应该比普通的java更舒服。如果你的研究在这里看看基于Scala的转换

http://metrikforge.informatik.hu-berlin.de/attachments/download/193/george_wider_scheidgen_ICMT_2012.pdf

答案 1 :(得分:2)

有比EMF更多的转换工具,它有点疯狂......

对于元模型到元模型转换,模型不是很相似:

如果元模型非常相似,你只需要调整一些东西,那么有针对这种类型的迁移/更新的工具:

  • ATL现在有refining mode
  • Epsilon有Flock
  • Edapt看起来非常有趣,因为它可以将元模型/模型一起更改。它允许您处理树视图并附带一组预先构建的规则。
  • Henshin,可让您操作模型的图表视图
  • EMF Refactor是一种更具代码级别的方法,也可以某种方式使用Henshin规则。

您也可以使用EMF Java API直接操作元模型和模型。

我要补充一点,如果你正在做任何真正的EMF工作,你需要阅读EMF: Eclipse Modeling Framework。它也可以在Safari中找到。我强烈推荐Safari,每月39美元,你几乎可以获得所有可以使用的开发电子书。

答案 2 :(得分:2)

如果你坚持做双向M2M转换(所谓的Bxs),那么就知道有一个活跃的研究人员社区更新了wiki:http://bx-community.wikidot.com。 如果您访问它,您会发现它们列出了一堆适合Bx转换的工具http://bx-community.wikidot.com/relatedtools

我过去使用过ECHO,它提供了基于KodKod约束求解器的QVT-R实现。

绝对值得一试。

答案 3 :(得分:0)

由于您特别要求进行双向模型转换,我必须说您没有选择权。为了使它成为claer,添加到你从Ed Willink获得的答案,现有的M2M转换语言(AFAIK)都不支持双向模型转换。 如果您仍然对此感兴趣,那么QVTr和QVTc执行引擎的工作开始变得很有希望:QVTd Project