C# と UML の各要素間のマッピング

クラス図では、統一モデリング言語 (UML) 表記が、C# および CTS の各要素、要素を構成するフィールドおよびメソッド、および C# 要素間の関係を表現するために使用されます。
クラス図では、C# クラスだけでなく、構造体、列挙型、委譲などのその他の C# 要素も示されます。

ステレオタイプは拡張のメカニズムであり、UML の用語を拡張し、より具体的な意味を C# クラスおよびその他の要素に与えます。

以下の表には、クラス図における C# 要素と UML 要素との間のマッピングが要約されています。

表 1.
.NET 要素 UML 要素
ファイル «C# File» または «.NET Assembly File» ステレオタイプの成果物。
フォルダー «C# Folder» ステレオタイプの成果物。
名前空間 «C# Namespace» ステレオタイプおよび名前空間アイコンがあるパッケージ。
クラス «C# Class» ステレオタイプのクラス。
列挙型 列挙 («C# enumeration» ステレオタイプの有無は無関係)。
構造体 «C# Struct» ステレオタイプおよびクラス・アイコンがあるクラス。
インターフェース インターフェース・アイコンがあるインターフェース。
部分クラス «C# Partial Class» ステレオタイプのクラス。
部分インターフェース «C# Partial Interface» ステレオタイプのインターフェース。
委譲 «C# Delegate» ステレオタイプのクラス。呼び出しメソッドおよびそのシグニチャーは、このクラス内の UML 操作を使用してマップされます。 この操作の名前はクラスと同じです。 そのシグニチャーは委譲のシグニチャーです。 デフォルトで、この委譲クラスは、System.Delegate または System.MultiCastDelegate から派生します。
メンバー・フィールド プロパティー。 ユーザー設定に応じて、非基本タイプの関連も作成されます。 このダイアグラムでは、明示的に作成する必要のない関連のプロパティー表示をサポートしています。

ユーザー設定に応じて、Eclipse アイコンまたは UML 可視性アイコンが表示されます。

イベント これは、メンバー・フィールドと同様にモデル化されますが、«C# Event» ステレオタイプが付けられます。
インデクサー これは、メンバー・フィールドと同様にモデル化されますが、«C# Indexer» ステレオタイプが付けられます。
プロパティー これは、メンバー・フィールドと同様にモデル化されますが、«C# Property» ステレオタイプが付けられます。 各プロパティーには、«get» および «set» ステレオタイプを使用して操作として明示的にモデル化可能なアクセサーがあります。
メソッド 操作。

ユーザー設定に応じて、Eclipse アイコンまたは UML 可視アイコンが表示されます。

注: C# 静的メソッドは可視化できますが、ダイアグラムに追加することはできません。
  • 値パラメーター
  • ref 修飾子で宣言される、参照パラメーター
  • out 修飾子で宣言される、出力パラメーター
  • params 修飾子で宣言される、パラメーター配列
  • 方向 [in] のパラメーター。
  • 方向 [inout] のパラメーター。
  • 方向 [out] のパラメーター。
  • 多重度が 1 次元配列を示す“*”に設定されたパラメーター。
属性 «C# Attribute» ステレオタイプのクラス。 これには、使用文字列に設定する必要があるプロパティー“AttributeUsage”が付けられます。

属性は、各属性ターゲットの対応する UML 要素の文書ビュー内で、自由形式のテキストで指定されます。 大括弧“[]”に入れた完全な文字列が文書ビューで指定されます。 有効な属性のターゲットは、アセンブリー、イベント、フィールド、メソッド、パラメーター、プロパティー、戻り値の型、型変数です。

Generics Generics は、UML テンプレート・パラメーターにマップされます。 クラス、構造体、インターフェース、およびメソッドがパラメーター化できます。 これらはそれぞれ、パラメーター化 UML クラス、«struct» ステレオタイプのパラメーター化 UML クラス、パラメーター化 UML インターフェース、およびパラメーター化 UML 操作にマップされます。
ヌル可能タイプ 定義済みタイプのヌル可能タイプは、同じ名前の UML 基本タイプにマップされます。 その他の値タイプのヌル可能タイプは、«nullable» ステレオタイプが適用された UML クラスにマップされ、基本値タイプ、およびその UML クラスから基本値タイプを表す UML タイプに存在する UML 置換関係として名前付けされます。
アクセシビリティー (public、private、protected、internal、 protected internal) クラス、属性、および操作の場合、アクセシビリティーは同じ名前の可視性またはキーワード・プロパティーにマップされます。
注: ステレオタイプの名前は、その要素が C# 要素であるか、または .NET アセンブリー要素であるかによって決まります。 上記の表におけるステレオタイプでは、C# 形式のみを指定しています。 例えば、視覚化される名前空間は、以下のようなステレオタイプになります。
  • <<.NET Assembly Namespace>>

    .NET アセンブリーからの名前空間。

  • <<C# Namespace>>

    C# ファイルからの名前空間。


フィードバック