Java からサービス・モデルへの変換によるソース・コードの変換処理

この変換によって生成されるソフトウェア・サービス・モデル要素は、変換のソースとして指定される Java™ コードの特性によって決定されます。変換によって Java 要素を変換できない場合、その要素は無視されます。
下表には、変換において、 Java 要素が どのようにソフトウェア・サービス・モデルの UML 要素に変換されるかがリストされています。
Java 要素 変換出力
パッケージ 変換によって、変換する Java 要素が含まれるパッケージの完全修飾名を持つパッケージが生成されます。
以下の Java コード・フラグメントを見てみましょう。
packageB.packageC;

ClassAlpha{
}
変換によって、以下の UML 表記が生成されます。

<package>packageB
     <package>packageC
           <class>classAlpha

Java 実装クラス
  • ターゲット・モデル内の対応するパッケージ・パスに、Java 実装クラスと同じ名前の UML コンポーネントが生成され、それには以下の項目が含まれています。
    • <Java 実装クラスの名前>Port<固有の番号> という名前のポートで、以下の特性を伴うもの。
      • ポートの type プロパティーは、Java 実装クラスを参照する
      • 提供インターフェースのリストには、その Java 実装クラスが実装する Java インターフェースが含まれる
    • Java 実装クラスが型として設定されている部分
  • ターゲット・モデル内の対応するパッケージ・パスに、<Java 実装クラス>Delegate という名前の UML コンポーネントが変換により生成されます。 このコンポーネントは、ターゲット・モデルでの Java 実装へのサービス呼び出しを委譲します。このコンポーネントには、変換により次の 2 つのポートが作成されます。
    • Type プロパティーが UML クラスを参照しているポート

      必須インターフェースのリストには、この Java 実装クラスが実装する Java インターフェースが含まれる 生成されるこのポートの名前は、<Java 実装クラスの名前>Port<固有の番号> です。

    • Type プロパティーが、変換によって Java インターフェースから生成される UML インターフェース を参照しているポート

      変換により、ポートの提供インターフェースのリストに、この UML インターフェースが追加されます。 この生成済みポートの名前は、<UML インターフェースの名前> Port <固有の番号> です。

  • トップレベルのターゲット・モデル内に、このリスト内の前述の 2 つのコンポーネントをラップする UML コンポーネントが変換によって生成されます。

    変換構成で選択するターゲット・プロファイルに応じて、サービス・モデリング (SoaML) プロファイルの «Participant» ステレオタイプか、またはソフトウェア・サービス・プロファイル (推奨されない) の «serviceProvider» ステレオタイプのいずれかが、変換により適用されます。

    変換によって、このコンポーネントに以下の項目が生成されます。
    • Type プロパティーが、変換によって Java インターフェースから生成される UML インターフェースを参照しているポート。 詳しくは、この表の Java インターフェースの行を参照してください。

      変換により、提供インターフェースのリストに、この UML インターフェースが追加されます。 この生成済みポートの名前は、<UML インターフェースの名前> Port <固有の番号> です。

    • タイプと名前が、変換により Java 実装クラスから生成される UML コンポーネントに対応しているプロパティー
    • Java 実装へのサービス呼び出しを委譲する生成済み UML コンポーネントに、タイプと名前が対応しているプロパティー
    • このコンポーネント内のポートと、<Java 実装クラスの名前>Delegate コンポーネント内のポートとの間のコネクター。 Connector::kind プロパティーは Delegation に設定されます。
    • <Java 実装クラスの名前>Delegate コンポーネントのポートのいずれかと、Java サービス実装コンポーネントのポートのいずれかとの間のコネクター。 Connector::kind プロパティーは Assembly に設定されます。
Java インターフェース ターゲット・モデル内の、Java パッケージの対応するパスに、Java インターフェースと同じ名前の UML インターフェースが変換により生成されます。

変換構成で選択するターゲット・プロファイルに応じて、サービス・モデリング (SoaML) プロファイルの «ServiceInterface» ステレオタイプか、またはソフトウェア・サービス・プロファイル (推奨されない) の «serviceSpecification» ステレオタイプのいずれかが、変換により適用されます。

Java クラス 変換では、変換ソースに対応するインターフェースのメソッドのパラメーター・タイプである Java クラスのみが変換されます。

これらの Java クラスの場合、ターゲット・モデル内の、対応するパッケージ・パスに、 Java クラスと同じ名前を持つ UML クラスが変換により生成されます。

生成された UML クラス内で、Java 属性の名前は変更されません。

以下の Java クラスをコード・フラグメントを見てみましょう。

Package a.b.c;
Import a.d.ClassB;
Import x.a.ClassD;

Class ClassA{
   Int x;
	 String a;
	 ClassB c;
  	 ClassD d;
}

タイプが Java クラスである (クラスはワークスペース内に存在する) 属性ごとに、次の例のように、変換によって UML クラスが作成されます。

<package>a
   <package>b
      <package>c
         <class>ClassA
			      <attribute>x //primitive type
             <attribute>a // primitve type
             <attribute>c //ClassB type
             <attribute>d //ClassC type
   <package>d
      <class>B
   
<package>x
   <package>a
      <class>ClassD

フィードバック