双方向の Model2Model 変換を行いたいと思います。どちらのモデルも EMF / eCore ベースです。実際には、一方のモデルがもう一方の編集可能なビューであることをお勧めします。
私のオプションは何ですか?どのツールと変換言語が利用可能で、それらの制限は何ですか?
双方向の Model2Model 変換を行いたいと思います。どちらのモデルも EMF / eCore ベースです。実際には、一方のモデルがもう一方の編集可能なビューであることをお勧めします。
私のオプションは何ですか?どのツールと変換言語が利用可能で、それらの制限は何ですか?
EMF には、想像以上に多くの変換ツールがあります。
モデルがあまり似ていないメタモデルからメタモデルへの変換の場合:
メタモデルが非常に似ていて、いくつかの調整のみが必要な場合は、そのタイプの移行/更新を対象としたツールがあります。
EMF Java API を使用して、いつでもメタモデルとモデルを直接操作することもできます。
追加しますが、実際の EMF 作業を行っている場合は、EMF: Eclipse Modeling Frameworkを入手して読む必要があります。Safariでも利用できます。私は Safari を強くお勧めします。月額 39 ドルで、これまでに使用したほぼすべての開発用電子ブックを入手できます。
双方向の M2M 変換 (いわゆる Bxs) を行うことに固執する場合は、その wiki を更新しているアクティブな研究者のコミュニティがあることを知っておいてください: http://bx-community.wikidot.com。これにアクセスすると、Bx 変換に適した一連のツールがリストされていることがわかりますhttp://bx-community.wikidot.com/relatedtools。
KodKod 制約ソルバーに基づく QVT-R の実装を提供する ECHO を過去に使用しました。
試してみる価値は間違いありません。
M2Mが一番難しい。業界の強力なツールはまれで、学問的なものがたくさんあります。M2M 言語に夢中になっている場合は、ecore もサポートする必要がある ATL を調べてください。それ以外の場合は、モデルからテキストへの変換用に作成された Xtend を見ることができますが、悪用することができ、プレーンな Java よりも快適なはずです。研究に興味がある場合は、ここで Scala ベースの変換を見てください。
あなたは特に双方向のモデル変換を求めたので、選択肢はないと言わざるを得ません。より明確にするために、Ed Willink から得た回答に加えて、既存の M2M 変換言語 (AFAIK) のいずれも双方向のモデル変換をサポートしていません。QVTr および QVTc 実行エンジンでの作業は、まだこれに興味がある場合、有望に見え始めています: QVTd Project。