gpt4 book ai didi

eclipse - UML XMI 到 Ecore

转载 作者:行者123 更新时间:2023-12-04 05:49:06 26 4
gpt4 key购买 nike

我有个问题:

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

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

谢谢

最佳答案

Does anyone know if it is possible to transform the generated XMI to Ecore XMI ?!



是的,这是可能的 - 至少在大纲中。您可以将问题分为两部分:
  • 什么是语义映射?换句话说,您如何将源 XMI 中的概念映射到目标 eCore 模型中的概念?
  • 您将如何在实践中实现这些映射?

  • 语义映射

    我在这里假设您的元模型专注于静态结构。 ECore 不支持声明 EOperations 之外的动态概念。如果相关,请在下面详细了解动态。

    我不知 Prop 体的 EA,也不知道它支持哪个版本的 XMI。然而,它将是核心 UML 概念的一些变体:类、属性、操作、关联、关联结束等。
    eCore 有一个 similar (if smaller) set of concepts : EClass , EAttribute , EDataType , EReference , EOperation等等。“类型”概念之间有很强的相关性;例如:
  • UML类--> E类
  • 属性 --> EAttribute
  • 操作 --> EOperation

  • 所以那里的映射应该是直截了当的。基本上为每个 UML 概念创建一个等效的 ECore 实例。

    关系不太明显,但仍然可行。 ECore 不直接支持关系; EReference是唯一类似的概念。但是,合成关联非常容易,例如:
  • 单向可导航 UML 关联变为单个 EReference复制了最小和最大基数
  • 一个 UML 双向关联变成两个 EReferences ,每个方向一个。您还应该设置 EOtherEnd属性,它有效地表示了两个 EReferences是同一个协会的一部分。

  • 希望这能给你这个想法。

    实现

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

    解析源 --> 将源概念映射到目标概念 --> 生成目标文本。

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

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

    直接询问 Sparx 也可能值得:如果没有一些可用于 EA 的 ECore 导出附加组件/插件,我会感到有点惊讶。

    嗯。

    动力

    如果您的模型具有动态性(状态模型等),那么您的问题就会更多。 ECore 根本不涉及这些概念。可以扩展 ECore,这可能是一种选择 - 但它可能需要更多工作,因为与 ECore 一起使用的工具不太可能理解您的扩展。

    关于eclipse - UML XMI 到 Ecore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303280/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com