我有一個問題:UML XMI到Ecore
在我的建模工具(Enterprise Architect)中,我建模了一個元模型(基於UML)。 現在我想將元模型轉換成Ecore。但我不知道該怎麼做。
在Enterprise Architect中,我可以將元模型導出到UML XMI。有誰知道是否可以將生成的XMI轉換爲Ecore XMI?!
感謝
我有一個問題:UML XMI到Ecore
在我的建模工具(Enterprise Architect)中,我建模了一個元模型(基於UML)。 現在我想將元模型轉換成Ecore。但我不知道該怎麼做。
在Enterprise Architect中,我可以將元模型導出到UML XMI。有誰知道是否可以將生成的XMI轉換爲Ecore XMI?!
感謝
有誰知道是否可以將生成的XMI轉換爲Ecore XMI?
是的,這是可能的 - 至少在輪廓。您可以將問題分爲兩部分:
語義映射
我假設你在這裏着重元模型的靜態結構。 ECore不支持聲明EOperations的動態概念。更多關於動態的內容,如果這是相關的。
我不知道EA的具體情況,也不知道它支持哪個版本的XMI。然而,這將是核心UML概念的一些變種:類,屬性,操作上,協會,AssociationEnd等 心魄有similar (if smaller) set of concepts:EClass
,EAttribute
,EDataType
,EReference
,EOperation
,等有中一個相當強的相關性'類型'概念;例如:
所以映射應該有簡單明瞭。基本上爲每個UML概念創建一個ECore等效實例。
關係不太明顯,但仍然可行。 ECore不直接支持關係; EReference
是唯一類似的概念。但是它很容易合成的關聯,例如:
EReference
與分&最大基數複製EReferences
,一個在每方向。您還應該設置EOtherEnd
屬性,這有效地表示這兩個EReferences
是同一關聯的一部分。希望能給你這個想法。
實施
已經定義了你的概念映射有很多的選擇上如何做到這一點。所有通常都會遵循相同的基本模型:
解析源 - >將源概念映射到目標概念 - >生成目標文本。
您可以使用xslt(因爲它只是一個XML-> XML轉換)。您也可以使用許多模型到模型(M2M)和/或模型到文本(M2T)工具包中的一個。見例如日食建模項目(M2M,M2T)。您也可以直接從EA通過使用EA API讀取模型,而不是生成解析XMI的&。你選擇哪一個取決於你的環境,技能等等。
如果你想看看它在實踐中的樣子,你可以看看MagicDraw。它提供開箱即用的ECore導出。 (請注意這是一個付費工具 - 但eval可用)。
這也許值得直接詢問Sparx:如果沒有可用於EA的ECore導出插件/插件,我會有點驚訝。
hth。
動態
如果模型動力學(狀態模型等),那麼你有更多的問題。 ECore根本不包括這些概念。有可能擴展ECore,這可能是一個選擇 - 但它可能會有更多的工作,因爲與ECore一起工作的工具不太可能理解你的擴展。
您可以輕鬆地從Ecore的去UML,但另一種方式是不是真的有可能。你有幾個插件,但是當你嘗試使用它們時,它不起作用。
太棒了!非常感謝你! – matthias 2012-04-26 11:05:01
不客氣。一個小時upvote將是一個很好的方式來顯示欣賞... :-) – sfinnie 2012-04-26 12:54:27