質問があります:
モデリングツール(Enterprise Architect)内で、メタモデル(UMLベース)をモデリングしました。次に、メタモデルをEcoreに変換したいと思います。しかし、私はそれを行う方法がわかりません。
Enterprise Architect内で、メタモデルをUMLXMIにエクスポートできます。生成されたXMIをEcoreXMIに変換できるかどうか誰かが知っていますか?!
ありがとう
質問があります:
モデリングツール(Enterprise Architect)内で、メタモデル(UMLベース)をモデリングしました。次に、メタモデルをEcoreに変換したいと思います。しかし、私はそれを行う方法がわかりません。
Enterprise Architect内で、メタモデルをUMLXMIにエクスポートできます。生成されたXMIをEcoreXMIに変換できるかどうか誰かが知っていますか?!
ありがとう
生成されたXMIをEcoreXMIに変換できるかどうか誰かが知っていますか?!
はい、それは可能です-少なくとも大まかに言えば。問題は2つの部分で考えることができます。
セマンティックマッピング
ここでは、メタモデルが静的構造に焦点を合わせていると仮定しています。ECoreは、EOperationsの宣言以外の動的な概念をサポートしていません。それが関連性がある場合は、以下のダイナミクスの詳細をご覧ください。
EAを具体的に知りません。また、EAがサポートするXMIのバージョンもわかりません。ただし、これはコアUML概念のいくつかの変形になります:クラス、属性、操作、関連付け、AssociationEndなど。eCoreには同様の(小さい場合)概念のセットがあります: 、、、、、など。 「タイプ」の概念。例えば:EClass
EAttribute
EDataType
EReference
EOperation
したがって、そこにあるマッピングは単純なものでなければなりません。基本的に、UMLの概念ごとに同等のECoreのインスタンスを1つ作成します。
関係は少しわかりにくいですが、それでも実行可能です。ECoreは関係を直接サポートしていません。EReference
唯一の類似した概念です。ただし、関連付けを合成するのは非常に簡単です。たとえば、次のようになります。
EReference
最小および最大カーディナリティがコピーされた単一になりますEReferences
、各方向に1つずつ、合計2つになります。EOtherEnd
また、プロパティを設定する必要があります。これは、2つEReferences
が同じ関連付けの一部であることを効果的に示しています。うまくいけば、それはあなたにアイデアを与えるでしょう。
実装
概念マッピングを定義したら、それを行う方法について多くのオプションがあります。通常、すべて同じ基本モデルに従います。
ソースの解析->ソースの概念をターゲットの概念にマップ->ターゲットのテキストを生成します。
xsltを使用できます(これは単なるXML-> XML変換であるため)。また、利用可能な多くのモデル間(M2M)および/またはモデル間(M2T)ツールキットの1つを使用することもできます。たとえば、日食モデリングプロジェクト(M2M、M2T)を参照してください。XMIを生成して解析する代わりに、EA APIを使用してモデルを読み取ることにより、EAから直接アクセスすることもできます。どちらを選択するかは、環境、スキルセットなどによって異なります。
実際にどのように見えるかを知りたい場合は、MagicDrawをご覧ください。箱から出してECoreエクスポートを提供します。(これは有料のツールですが、evalは利用可能です)。
Sparxに直接質問する価値もあるかもしれません。EAで利用できるECoreエクスポートアドオン/プラグインがない場合は少し驚かれることでしょう。
hth。
ダイナミクス
モデルにダイナミクス(状態モデルなど)がある場合は、さらに問題があります。ECoreはこれらの概念をまったくカバーしていません。ECoreを拡張することは可能であり、それはオプションかもしれませんが、ECoreで動作するツールが拡張機能を理解する可能性が低くなるため、より多くの作業が行われる可能性があります。
EcoreからUMLに簡単に移行できますが、その逆は実際には不可能です。プラグインはほとんどありませんが、それらを使おうとすると機能しません。