7

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

我有哪些选择?哪些工具和转换语言可用,它们有什么限制?

4

4 回答 4

2

EMF 的转换工具比你想象的要多,有点疯狂……

对于模型不太相似的元模型到元模型的转换:

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

  • ATL 现在有精炼模式
  • Epsilon 有Flock
  • Edapt看起来也很有趣,因为它会一起更改元模型/模型。它使您可以在树视图上工作,并附带一组预建的规则。
  • Henshin,可让您在模型的图表视图上进行操作
  • EMF Refactor是一种更代码级的方法,它也可以以某种方式使用 Henshin 规则。

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

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

于 2012-10-26T14:58:32.253 回答
2

M2M 是最难的。行业力量工具很少见,很多学术界的东西。如果您对 M2M 语言一无所知,请查看 ATL,它也应该支持 ecore。否则你可以看看 Xtend,它是为模型到文本而设计的,但你可以滥用它,它应该比普通的 java 更舒适。如果您的研究可以在这里查看基于 Scala 的转换

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

于 2012-07-18T19:45:41.893 回答
2

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

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

绝对值得一试。

于 2015-09-08T08:48:33.753 回答
0

由于您特别要求进行双向模型转换,因此我必须说您别无选择。为了更清楚,除了您从 Ed Willink 得到的答案之外,现有的 M2M 转换语言 (AFAIK) 都不支持双向模型转换。如果您仍然对此感兴趣,QVTr 和 QVTc 执行引擎的工作开始看起来很有希望:QVTd 项目

于 2015-02-26T13:29:27.343 回答