2012-04-24 35 views
2

我有一個問題:UML XMI到Ecore

在我的建模工具(Enterprise Architect)中,我建模了一個元模型(基於UML)。 現在我想將元模型轉換成Ecore。但我不知道該怎麼做。

在Enterprise Architect中,我可以將元模型導出到UML XMI。有誰知道是否可以將生成的XMI轉換爲Ecore XMI?!

感謝

回答

4

有誰知道是否可以將生成的XMI轉換爲Ecore XMI?

是的,這是可能的 - 至少在輪廓。您可以將問題分爲兩部分:

  1. 什麼是語義映射?換句話說,您如何將源XMI中的概念映射到目標eCore模型中的概念?
  2. 你將如何在實踐中實現這些映射?

語義映射

我假設你在這裏着重元模型的靜態結構。 ECore不支持聲明EOperations的動態概念。更多關於動態的內容,如果這是相關的。

我不知道EA的具體情況,也不知道它支持哪個版本的XMI。然而,這將是核心UML概念的一些變種:類,屬性,操作上,協會,AssociationEnd等 心魄有similar (if smaller) set of conceptsEClassEAttributeEDataTypeEReferenceEOperation,等有中一個相當強的相關性'類型'概念;例如:

  • UML類 - >的EClass
  • 屬性 - > EAttribute
  • 操作 - >是EOperation

所以映射應該有簡單明瞭。基本上爲每個UML概念創建一個ECore等效實例。

關係不太明顯,但仍然可行。 ECore不直接支持關係; EReference是唯一類似的概念。但是它很容易合成的關聯,例如:

  • 單向通航UML關聯成爲一個EReference與分&最大基數複製
  • UML的雙向關聯變成兩個EReferences,一個在每方向。您還應該設置EOtherEnd屬性,這有效地表示這兩個EReferences是同一關聯的一部分。

希望能給你這個想法。

實施

已經定義了你的概念映射有很多的選擇上如何做到這一點。所有通常都會遵循相同的基本模型:

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

您可以使用xslt(因爲它只是一個XML-> XML轉換)。您也可以使用許多模型到模型(M2M)和/或模型到文本(M2T)工具包中的一個。見例如日食建模項目(M2MM2T)。您也可以直接從EA通過使用EA API讀取模型,而不是生成解析XMI的&。你選擇哪一個取決於你的環境,技能等等。

如果你想看看它在實踐中的樣子,你可以看看MagicDraw。它提供開箱即用的ECore導出。 (請注意這是一個付費工具 - 但eval可用)。

這也許值得直接詢問Sparx:如果沒有可用於EA的ECore導出插件/插件,我會有點驚訝。

hth。


動態

如果模型動力學(狀態模型等),那麼你有更多的問題。 ECore根本不包括這些概念。有可能擴展ECore,這可能是一個選擇 - 但它可能會有更多的工作,因爲與ECore一起工作的工具不太可能理解你的擴展。

+0

太棒了!非常感謝你! – matthias 2012-04-26 11:05:01

+0

不客氣。一個小時upvote將是一個很好的方式來顯示欣賞... :-) – sfinnie 2012-04-26 12:54:27

-1

您可以輕鬆地從Ecore的去UML,但另一種方式是不是真的有可能。你有幾個插件,但是當你嘗試使用它們時,它不起作用。