首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UML XMI到Ecore

UML XMI到Ecore
EN

Stack Overflow用户
提问于 2012-04-25 01:50:49
回答 2查看 4.7K关注 0票数 2

我有一个问题:

在我的建模工具(企业架构师)中,我已经建模元模型(基于UML)。现在,我想将元模型转换为Ecore。但我不知道该怎么做。

在Enterprise Architect中,我可以将元模型导出为UML XMI。有人知道是否可以将生成的XMI转换为Ecore XMI吗?!

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-26 05:23:36

有人知道是否可以将生成的XMI转换为Ecore XMI吗?!

是的,这是可能的-至少在大纲上是可能的。你可以把这个问题分成两部分:

  1. 语义映射是什么?换句话说,如何将源XMI中的概念映射到目标eCore模型中的概念?
  2. 在实践中如何实现这些映射?

语义映射

我假设你的元模型关注的是静态结构。除了声明EOperations之外,ECore不支持动态概念。如果这是相关的,下面会有更多关于动态的内容。

我不是特别了解EA,也不知道它支持哪个版本的XMI。然而,它将是核心概念的一些变体:类、属性、操作、关联、AssociationEnd等。eCore有一个similar (if smaller) set of conceptsEClassEAttributeEDataTypeEReferenceEOperation等。

  • UML类--> EClass
  • 属性--> EAttribute
  • Operation --> EOperation

所以这里的映射应该是直接的。基本上,为每个ECore概念创建一个UML等价物的实例。

关系不是很明显,但仍然是可行的。ECore不直接支持关系;EReference是唯一类似的概念。然而,合成关联是相当容易的,例如:

  • 单向导航的EReference关联变成了具有最小和最大基数的单个
  • 复制到UML双向关联变成了两个EReferences,每个方向一个。您还应该设置EOtherEnd属性,该属性实际上表示两个EReferences是同一个association.

的一部分

希望这能给你带来灵感。

Implementation

定义了你的概念映射之后,有很多关于如何做的选择。所有这些通常都遵循相同的基本模型:

Parse Source --> Map Source Concepts to Target Concepts -->生成目标文本。

您可以使用xslt (因为它只是一个XML->XML转换)。您还可以使用许多可用的模型到模型(M2M)和/或模型到文本(M2T)工具包中的一个。例如,参见eclipse建模项目(M2MM2T)。您还可以使用EA API读取模型,而不是生成和解析XMI,从而直接从EA转到EA。您选择哪一个将取决于您的环境、技能集等。

如果你想看看它在实践中会是什么样子,你可以看看MagicDraw。它提供开箱即用的ECore导出。(请注意,这是一个付费工具-但eval是可用的)。

直接问Sparx可能也是值得的:如果EA没有可用的ECore导出插件/插件,我会有点惊讶。

hth。

动态

如果您的模型具有动态性(状态、模型等)那么你就有更多的问题了。ECore根本没有涵盖这些概念。扩展ECore是可能的,这可能是一个选择--但这可能需要更多的工作,因为使用ECore的工具不太可能理解您的扩展。

票数 4
EN

Stack Overflow用户

发布于 2012-04-25 06:39:07

你可以很容易地从Ecore转到UML,但另一种方法是不可能的。你有几个插件,但当你尝试使用它们时,它不起作用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10303280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档