変換は、構成したり、プラグイン・マニフェスト・ファイルに「公開」として指定したり、変換構成を使用して実行したりできる一連の変換式です。
ソース要素とターゲット要素の関係は、変換に含まれる一連の規則によって定義されます。 これらの規則の適用は、一連のソース要素のトラバース方法を指定する抽出に基づいて行われます。 変換は、より多くの情報をその規則に適用するため、プロファイルに依存している場合があります。
変換により、UML モデルからコードへの変換、コードから UML モデルへの変換、ある抽象化レベルのモデルから別の抽象化レベルのモデルへの変換を行えます。変換には、次の 4 つのカテゴリーがあります。
また、変換はパターンを実装して、フォーム間で要素 を変換することができます。
変換の最も一般的な開始点は、クラス・モデルなどのプラットフォーム独立モデル (PIM) です。 クラス・モデルには、実装の仕様書への参照が ない設計要素が含まれています。クラス・モデルの作成、変更、および注釈付けを行ってから、 変換を使用して、Java™ トピック図やコード・レベル・テキストなどの プラットフォーム固有モデル (PSM) を生成することができます。
パッケージ化処理の一環として、パターンは、特定のレベルの抽象化や特定のメタモデルに関与した場合に適用される追加の規則を定義する変換の拡張を、定義および提供できます。この概念の一般的な実装は、特定コード を生成する変換規則を提供する設計パターンです。これらの規則はコード変換 (例えば、Java または C++ 変換) を拡張して、 生成される出力にパターン固有のコードを提供します。
モデル変換のごく基本的なプロセスとして、以下のステップがあります。 これらの各ステップは、繰り返し実行できます。
変換が完了した結果、ターゲット・モデルまたはテキスト、および追跡を可能にするための変換レコードが生成されます。 モデルからテキストへの変換による出力は、Java コード、 C++ コード、データベースの作成およびデータ取り込み用のデータ定義言語 (DDL) ファイル、単体テスト、 または対応するモデリング図に一致した視覚化図などになります。 変換のレコードには、ソース・モデルの要素からターゲットの対応する要素へのマップが含まれています。 また、このレコードは、変換の各部分に使用されたマッピングの部分も示しています。
変換 API を使用して、変換を新規作成することが できます。変換構成を使用して構成可能な変換を作成するには、 その変換が含まれているプラグインの中の plugin.xml ファイルに com.ibm.xtools.transform.core.transformationProviders 拡張を追加する必要があります。 変換プロバイダーは、提供する各変換について「変換」タイプの拡張を定義します。 これらの拡張を追加すると、変換サービスに変換 (複数可) が自動的に登録されます。 変換サービスは汎用であり、ソース・モデル、 ターゲット・モデル、または変換自身の実装に関する 前提事項はありません。 変換サービスにはデフォルトの変換エンジンが内蔵されていますが、 変換の作成者はまったく別のエンジンを使用する ことができます。 しかし、デフォルトのエンジンで変換をビルドすること によって、変換の作成者は論理デバッグ環境、拡張性 機構、およびそのアーキテクチャーに対する将来の改善点のすべてを 利用することができます。
変換構成は、すべての変換で使用される情報 (変換の固有の名前、ソース、ターゲットなど) を含む変換のインスタンスです。 指定された変換に固有のプロパティーを含むこともあります。 変換構成のファイル名拡張子は .tc です。変換の実行時には、変換構成で規定した情報が使用されます。
変換を実行するには、事前に変換構成を作成しておく必要があります。 変換構成を適用すると、その構成内で定義したプロパティーを使用して変換のインスタンスが作成および実行され、 期待どおりの出力が生成されます。
プログラムにより階層関係を構築することで、変換構成のプロパティーを、他の変換構成と共有できます。 このフィーチャーにより変換構成は、デフォルトの変換構成のプロパティーからプロパティー値を継承できるようになります。 変換構成は、複数の親を持つことができます。複数の構成が同じプロパティーを指定した場合には、パブリック API を使用して関係を指定した順が、構成の優先順位となります。 そのため、デフォルトのプロパティー・セットが変更されると、そのプロパティー・セットを使用している、システム内のすべての変換構成が変更を継承します。