以下の表には、どの UML 要素がどの C# 要素に変換されるかが示されています。
| UML 要素 | C# 要素 |
|---|---|
| モデル | C# プロジェクト |
| マッピング・モデル内のパッケージ | C# プロジェクト内の同じ名前のフォルダー |
| モデル内のパッケージ | C# 名前空間 |
| «analysis» キーワードまたは «Analysis» キーワードを持つモデルのパッケージ | 無視 |
| 属性 | C# フィールド |
| «CSharp Field» の属性 | C# フィールド |
| «CSharp Event» ステレオタイプがある属性 | C# イベント
ステレオタイプ «CSharp Event» には、イベントにアクセサー (追加および除去) が指定されているかどうかを示す、boolean プロパティーの accessors があります。 TRUE の値は、追加および除去のアクセサーが明示的に指定されていることを示し、FALSE の値は、イベント・アクセサーが暗黙的であることを示しています。 |
| «CSharp Property» ステレオタイプがある属性 | 型が String の field_name 属性がある、C# プロパティー・クラス・メンバー。 |
| «CSharp Property» ステレオタイプがあり、 ステレオタイプのアクセサー・プロパティーが auto に設定されている属性 | C# の自動実装プロパティー プロパティー・クラス・メンバーには、 get アクセサーと set アクセサーの両方があり、 本文ブロックはありません。 |
| クラス | 同じ名前および可視性がある C# クラス |
| «CSharp Delegate» ステレオタイプがあるクラス | C# 委譲
呼び出しメソッドおよびそのシグニチャーは、その UML クラス内の UML 操作を使用してマップされます。 この操作の名前は、“invoke()”です。 |
| «CSharp Struct» ステレオタイプがあるクラス | C# 構造体 |
| «CSharp Partial» ステレオタイプがあり、クラス間に 依存関係がある 2 つのクラス | C# 部分クラス |
| 2 つ以上の従属クラスがあるクラス。 最初のクラスの依存関係には «CSharp Partial» ステレオタイプがあります。 同じ名前の独立したそれぞれの従属クラスに操作が存在します。 1 つは «CSharpPartialDeclaration» ステレオタイプ、もう 1 つは «CSharp PartialDefinition» ステレオタイプのものです | C# 部分メソッド 2 つの部分実装のあるクラスが作成されます。 «CSharpPartialDeclaration» ステレオタイプの操作を含む部分パートには、 メソッド宣言がありますが、メソッド本文はありません。«CSharpPartialDefinition» の操作を含む部分パートには、 メソッドとその本文があります。 |
| 汎化関係があるクラス | C# クラスが指定されたスーパークラスを拡張します |
| 実装 | C# クラスが指定されたインターフェースを実装します |
| クラスとインターフェース間の実現関係 | C# クラスが、テンプレート・インターフェースを含む、指定されたインターフェースを実装します。変換は、 実装されたインターフェースからメソッド、プロパティー、イベント、インデクサーのコードをクラス内に生成します |
| インターフェース | 同じ名前および可視性がある C# インターフェース |
| 汎化関係を持つインターフェース | C# インターフェースにより、指定されたインターフェースが拡張されます |
| 列挙 | デフォルトの基となる型 "int" があり、定数式を持つ列挙メンバーがない、同じ名前の C# 列挙型 |
| 列挙型リテラル | 同じ名前および可視性がある C# フィールド |
| 操作 | 同じ名前および可視性がある C# メソッド |
| 名前に「implicit/explicit operator」または「operator」、および記号がある操作 | C# 演算子
操作の名前は、以下のいずれかです。
|
| isStatic プロパティーを持つ操作 | true の場合、C# メソッドは static となります。 |
| isAbstract プロパティーを持つ操作 | true の場合、C# メソッドは abstract となります。 |
| isVirtual プロパティーがある操作 | true の場合、C# メソッドは virtual となります。 |
| クラスと同一の名前を持つ操作 | C# コンストラクター |
| "~" およびそのクラスと同じ名前がある操作 | C# デストラクター |
| «CSharp Indexer» ステレオタイプがある操作 | C# インデクサー
インデクサーの仮パラメーター・リストは、UML 操作の仮パラメーターとして表されます。 |
| isStatic プロパティーと
«CSharp ExtensionMethod» ステレオタイプがある操作 操作は、 «CSharp Class» ステレオタイプがあるクラスのメンバーで、ステレオタイプの static プロパティーが True に設定されている必要があります。 |
C# 拡張メソッド this と呼ばれる修飾子が 操作の最初のパラメーターに適用されます。 |
| Boolean、整数、文字列、および UnlimitedNatural の各型 | Boolean、Int32、文字列、および UInt32 の各型 |
名前にピリオドが含まれているモデル内の UML パッケージは、名前に下線が含まれた C# の名前空間に変換されます。 この変換の動作により、包含する要素に対して単一の名前空間が保持されます。 例えば、UML フォルダー com.ibm.samples に C1 という名前のクラスが含まれているとします。 UML から C# への変換を適用すると、UML クラス C1 を表す C# の成果物は、以下の名前空間で宣言されます。
namespace com_ibm_samples