2

質問があります:

モデリングツール(Enterprise Architect)内で、メタモデル(UMLベース)をモデリングしました。次に、メタモデルをEcoreに変換したいと思います。しかし、私はそれを行う方法がわかりません。

Enterprise Architect内で、メタモデルをUMLXMIにエクスポートできます。生成されたXMIをEcoreXMIに変換できるかどうか誰かが知っていますか?!

ありがとう

4

2 に答える 2

4

生成されたXMIをEcoreXMIに変換できるかどうか誰かが知っていますか?!

はい、それは可能です-少なくとも大まかに言えば。問題は2つの部分で考えることができます。

  1. セマンティックマッピングとは何ですか?つまり、ソースXMIの概念をターゲットeCoreモデルの概念にどのようにマッピングしますか?
  2. これらのマッピングを実際にどのように実装しますか?

セマンティックマッピング

ここでは、メタモデルが静的構造に焦点を合わせていると仮定しています。ECoreは、EOperationsの宣言以外の動的な概念をサポートしていません。それが関連性がある場合は、以下のダイナミクスの詳細をご覧ください。

EAを具体的に知りません。また、EAがサポートするXMIのバージョンもわかりません。ただし、これはコアUML概念のいくつかの変形になります:クラス、属性、操作、関連付け、AssociationEndなど。eCoreには同様の(小さい場合)概念のセットがあります: 、、、、、など。 「タイプ」の概念。例えば:EClassEAttributeEDataTypeEReferenceEOperation

  • UMLクラス->EClass
  • 属性->EAttribute
  • 操作->E操作

したがって、そこにあるマッピングは単純なものでなければなりません。基本的に、UMLの概念ごとに同等のECoreのインスタンスを1つ作成します。

関係は少しわかりにくいですが、それでも実行可能です。ECoreは関係を直接サポートしていません。EReference唯一の類似した概念です。ただし、関連付けを合成するのは非常に簡単です。たとえば、次のようになります。

  • 一方向にナビゲート可能なUMLアソシエーションは、EReference最小および最大カーディナリティがコピーされた単一になります
  • UML双方向アソシエーションはEReferences、各方向に1つずつ、合計2つになります。EOtherEndまた、プロパティを設定する必要があります。これは、2つEReferencesが同じ関連付けの一部であることを効果的に示しています。

うまくいけば、それはあなたにアイデアを与えるでしょう。

実装

概念マッピングを定義したら、それを行う方法について多くのオプションがあります。通常、すべて同じ基本モデルに従います。

ソースの解析->ソースの概念をターゲットの概念にマップ->ターゲットのテキストを生成します。

xsltを使用できます(これは単なるXML-> XML変換であるため)。また、利用可能な多くのモデル間(M2M)および/またはモデル間(M2T)ツールキットの1つを使用することもできます。たとえば、日食モデリングプロジェクト(M2MM2T)を参照してください。XMIを生成して解析する代わりに、EA APIを使用してモデルを読み取ることにより、EAから直接アクセスすることもできます。どちらを選択するかは、環境、スキルセットなどによって異なります。

実際にどのように見えるかを知りたい場合は、MagicDrawをご覧ください。箱から出してECoreエクスポートを提供します。(これは有料のツールですが、evalは利用可能です)。

Sparxに直接質問する価値もあるかもしれません。EAで利用できるECoreエクスポートアドオン/プラグインがない場合は少し驚かれることでしょう。

hth。


ダイナミクス

モデルにダイナミクス(状態モデルなど)がある場合は、さらに問題があります。ECoreはこれらの概念をまったくカバーしていません。ECoreを拡張することは可能であり、それはオプションかもしれませんが、ECoreで動作するツールが拡張機能を理解する可能性が低くなるため、より多くの作業が行われる可能性があります。

于 2012-04-25T21:23:36.040 に答える
-1

EcoreからUMLに簡単に移行できますが、その逆は実際には不可能です。プラグインはほとんどありませんが、それらを使おうとすると機能しません。

于 2012-04-24T22:39:06.750 に答える