モデル要素のプロパティー

プロパティーは、UML ダイアグラム内のモデル要素の特性を定義します。 例えば、オブジェクトの concurrency プロパティーを設定すると、 その他のオブジェクトとの調整方法を指定することができます。 multiplicity プロパティーを設定すると、 モデル要素と関連付けることができる値の数を指定することができます。 また、type および visibility プロパティーを設定すると、 モデル要素をストリングにするか整数にするか、 可視性を public にするか private にするか、 などを指定することができます。

並行性 (concurrency)

アクティブ・オブジェクトにおける操作の concurrency プロパティーは、 別のアクティブ・オブジェクトがその操作を呼び出したときに行われる、 システムの振る舞いを指定します。

concurrency プロパティーが関係してくるのは、 アプリケーションがアクティブ・オブジェクト、 プロセス、またはスレッドを持っている場合のみです。 アプリケーション内のアクティブ・オブジェクトに 属する操作に、concurrency プロパティーを設定することができます。
並行性の値 説明
sequential この値が、操作の concurrency プロパティーのデフォルトになります。 並行処理間で競合が発生する可能性があります。 この操作を呼び出すオブジェクトを相互に調整して、一度に 1 つの操作のみ呼び出されるようにする必要があります。
guarded 1 つの操作に対する呼び出しが同時に複数起こった場合、 そのうちの 1 つだけを処理するようにします。 これ以降の呼び出しは、最初の呼び出しが完了するまでブロックされます。 システム設計者は、アプリケーションが操作に対する呼び出しを 同時にブロックできることを、確認する必要があります。
concurrent 1 つの操作に対する呼び出しが同時に複数起こった場合、 それらを同時に処理することができます。

多重度

multiplicity プロパティーが適用されるモデルはいくつかありますが、 特に、分類子、コンポジット構造図のパーツに属する属性、 および分類子間の関連に対して、適用されます。 属性の多重度によって、 そのモデル要素に関連付けることができる値の数が決まります。 例えば、データ型が整数の Attribute1 という 属性を、0 から 3 の整数値の範囲を持つように 定義すると、Attribute1 : Integer [0..3] になります。 関連の端における多重度の値、または値の範囲は、 関係に参加することができるオブジェクトの数を表しています。 多重度の指定は、 単一の正整数、下限と上限を指定した正整数の範囲、 またはコンマで区切られた正整数のリストの いずれかで行うことができます。 アスタリスクは、上限に制限がないことを表しています。 以下の表では、いくつかの多重度の指定を例に挙げて、説明しています。

サンプル 説明
1 1 つだけ
0..1 ゼロまたは 1 つ
* ゼロを含む、任意の数
n ゼロを含む、任意の数
1..* 1 つ以上
注: この製品では、多重度の表記に en (n) を 使用した場合、en をアスタリスク (*) に変換します。

テンプレートのようなパラメーターを持つコンテキストの場合、 多重度の指定における上限と下限は、 整数値に対する評価を行う式となる可能性があります。

以下の図にあるように、 多重度の値が属性と関連付けられている場合は、 その値は大括弧に囲まれて表示されます。

多重度の値 0..3 が大括弧で囲まれた Attribute1 という属性。

以下の図にあるように、 多重度の値がコンポジット構造図内のパーツと関連付けられている場合も、 その値は大括弧に囲まれて表示されます。

多重度の値が大括弧で囲まれた PartName というパーツのダイアグラム。

以下の図にあるように、 多重度の値が関連の端と関連付けられている場合、 適用する関連の端の隣に、その値が表示されます。

端に多重度の指定が表示されている関連によって関連付けられている 2 つの分類子。

タイプ (type)

属性、操作、パラメーター、および関連の端の 各タイプを指定することができます。 指定できるタイプは、 クラス、インターフェース、または UML データ型 (整数、ストリング、無制限自然数、ブール型など) です。

可視性

同じクラス、同じパッケージ、継承構造から、 あるいはシステム全体の任意の場所から、 モデル要素が他の要素へのアクセス権を得ることができるか どうかは、可視性によって決定します。 以下のモデル要素に、可視性を指定することができます。
  • 分類子に属する属性および操作
  • パッケージに属する分類子
  • 2 つの分類子を接続する関連関係に属する、関連の端

例えば、可視性が public であるクラス内の属性と操作は、 ほかのクラスによる表示および使用が可能です。 属性と操作の可視性が private である場合、 それらを含むクラスだけに表示と使用が許されます。

UML の可視性指定子は、 多くのオブジェクト指向プログラミング言語の指定子と同じです。 アイコンまたはテキスト記号を使用して、 属性と操作の可視性レベルを表示することができます。 関連の端の名前の隣にある番号記号 (#) のようなテキスト記号は、 その関連の端の可視性を表しています。
レベル 属性アイコン 操作アイコン テキスト記号 説明
public Attribute1 という属性の横に、可視性が public であることを示す小さい中空きの緑の円が付いています。 Operation1 という操作の横に、可視性が public であることを示す小さい塗りつぶしの緑の円が付いています。 + コンテナーを表示できるモデル要素は、public のモデル要素を表示し、 使用することができます。
private Attribute1 という属性の横に、可視性が private であることを示す小さい中空きの赤い正方形が付いています。 Operation1 という操作の横に、可視性が private であることを示す小さい塗りつぶしの赤い正方形が付いています。 - 同じコンテナー内にあるモデル要素は、 そのコンテナー内の private のモデル要素を表示し、 使用することができます。
protected Attribute1 という属性の横に、可視性が protected であることを示す小さい中空きの黄色のダイヤモンド図形が付いています。 Operation1 という操作の横に、可視性が protected であることを示す小さい塗りつぶしの黄色のダイヤモンド図形が付いています。 # 同じコンテナー内、または そのコンテナーの子孫内にあるモデル要素は、 そのコンテナー内の protected のモデル要素を表示し、 使用することができます。
パッケージ Attribute1 という属性の横に、可視性が package であることを示す小さい中空きの青い三角形が付いています。 Operation1 という操作の横に、可視性が package であることを示す小さい塗りつぶしの青い三角形が付いています。 ~ コンテナーと同じパッケージ内にあるモデル要素は、 可視性が package のモデル要素を表示し、使用することができます。

フィードバック