UML から CORBA への変換プロファイル

Common Object Request Broker Architecture (CORBA) 変換プロファイルには、ほとんどの CORBA 要素をモデル化して生成する場合に使用できるステレオタイプが含まれます。

プロファイルのステレオタイプを使用して、structvaluetypetypedefsequencearrayexception などの固有の CORBA タイプをモデル化できます。 ただし、モジュール、属性付きインターフェース、演算、 パラメーター、インターフェース間の継承、ネイティブ・タイプ、列挙などの CORBA タイプは、 プロファイルを使用せずにモデル化することができます。

プロファイルにもステレオタイプに適用される制約についての情報が含まれます。

また、プロファイルを使用して、UML コンポーネントを指定することができます。 このコンポーネントは、generateCode プロパティーを true または false に設定することによって、CORBA インターフェース定義言語 (IDL) 要素に変換されます。 コード生成中に、generateCode プロパティーが false に設定されているコンポーネントは、変換において無視されます。

モデルの検証

モデルの検証フィーチャーを使用すると、 プロファイルが適用されたソース・モデルについて、潜在的な変換の問題や、 生成される IDL ファイルでコンパイル・エラーの原因となる可能性のある、循環関係のような名前の競合を評価することができます。 以下の表は、変換対象であるソース・モデルを準備したり、変換の問題を回避したりするために使用できる規則の一覧です。
UML ステレオタイプ 使用法の規則
«CORBAOperation» このステレオタイプは UML 演算に適用されます。

このステレオタイプの context プロパティーは、一連の固有のストリング・リテラルを指定します。それらのリテラルは、演算呼び出しの暗黙の一部である ID にマップされます。

«CORBATruncatable» このステレオタイプは、truncatable 値タイプの継承を指示する汎化関係に適用されます。
注: UML の中で値タイプを表すようにするには、«CORBAValue» ステレオタイプを UML クラスに適用します。

変換により、truncatable 値タイプの継承のためのコードが生成されます。

«CORBAUnion» CORBA 共用体を生成する UML クラスに適用されます。

ステレオタイプの switchType プロパティーは、生成される switch 構造の分類子のタイプを指定します。分類子のタイプは integercharacterBooleanenum、または有効範囲内のその他の名前です。

«CORBAValue»

このステレオタイプは UML クラスに適用されます。

この値タイプには、以下の特性があります。
  • typedefstructexception、または enumeration 以外のネスト分類子はない
  • 固有の名前のメンバー
  • 固有の継承属性
  • 固有の継承演算
  • 非抽象インターフェースを 1 つだけサポート
  • 状態メンバーを持ち、状態メンバーを持つ単一の値タイプからのみ継承可能
抽象値タイプで、以下の特性は不可能です。
  • 同じクラスから複数回継承すること
  • 状態メンバーがあること、そしてボクシングされた値タイプは不可能
ボクシングされた値タイプには、以下の特性があります。
  • 継承に関与できない
  • 1 つの関連または属性を持つ
«CORBAConstants» クラスの特性は以下のとおりです。
  • 演算を持たない
  • ネストされた分類子を持たない
  • メンバーは固有名を持つ
«CORBAException» クラスにネスト分類子がありません。
«CORBAStruct» struct に以下の特性があってはなりません。
  • 汎化関係または実装関係を所有すること
  • ネスト分類子がある
  • 演算がある
«CORBATypedef» このステレオタイプは UML クラスに適用されます。

typedef に以下の特性があってはなりません。

  • 汎化関係
  • 1 つの置換関係
  • 関連、属性、または演算
  • ネスト分類子

このステレオタイプの specification プロパティーは、型定義が配列、シーケンス、または固定小数点型 (この場合は置換関係は必須ではない) のどれであるかを示します。
固定小数点をモデル化する場合、ステレオタイプの point プロパティーが桁数とスケールを表します。例えば、10,2 は、値の長さが 10 桁で、右から 2 番目の桁以降が小数であることを指定します。

«CORBAState» 状態メンバー属性の所有者として値タイプのクラスがなければなりません。
«CORBAOneway» 単項演算の特性は、以下のとおりです。
  • in または inout 型のパラメーターを持たない
  • 戻り値の型が void である
  • インターフェースの所有者である
  • 例外を生じさせない
列挙型 列挙には、固有の名前の列挙リテラルがなければなりません。
コンポーネント コンポーネントには、ネスト・コンポーネントが含まれていません

コンポーネント中のパッケージには固有の名前がなければなりません。

インターフェース
  • 固有名のメンバーを推奨
  • 固有の継承演算を推奨
  • 固有の継承属性を推奨

インターフェース、パッケージ、値タイプ、またはコンポーネントのネストが含まれていてはなりません。
抽象インターフェースは、別の抽象インターフェースからのみ継承可能です。

モデル
  • CORBA キーワードの要素名を持たない
  • 循環汎化関係や実装関係があるクラスやインターフェースを持たない
  • 要素名の重複
  • コンポーネントのネストを含むものなど、間違った書式の階層がない
«switch» このステレオタイプは、CORBA 共用体の属性に適用されます。 CORBA 共用体のモデル化については、この表の «CORBAUnion» の行を参照してください。

ステレオタイプの case プロパティーは、case タイプを表すストリング・リテラルです。
isDefault プロパティーが true に設定されている場合、それは、生成される switch 文の default ブロックがこの属性に含まれていることを示します。


フィードバック