属性区画


フィールド情報

属性区画は、クラスの属性を表示するために利用します
UML における属性とは、プログラミングで言うプロパティのことで
言語レベルで考えれば、クラスが持つフィールドをこの場所に記載します
一般論から考えれば、表示するのは public と protected のプロパティでしょう

UML では、属性を「分類子のインスタンスが保持できる値」とされます
分類子とは、構造特性と振る舞いが記述されたモデル要素のことです
クラスは、メソッド(振る舞い)とプロパティ(構造特性)が記述されています
このうち、属性は構造特性を表すための区画ということになります

属性区画は、次のような記法でプロパティを表現します

可視性 識別子 : [多重度] 型表現 = 初期値 { プロパティ文字列 }

可視性とは、この属性にアクセスできる権限を示すものです
言語レベルで考えれば public、protected、private キーワードのことです
これらは、C++ 言語や Java を学習しているのであればおなじみでしょう
UML では、この可視性を次のような記号で表現します

記号意味
+ 公開可視性(public)
# 保護可視性(protected)
- 私的可視性(private)

可視性は省略可能であり、未定義、または非公開を省略することで示せます
また、可視性はキーワード public、protected、private と書いてもかまいません
通常は、冗長なので記号を用います

名前は属性の識別子を指定します。これは、つまりプロパティの名前です
多重度は、属性の集合数を表すためのもので、配列や NULL 可能性を表せます
多重度は省略可能であり、多重度について詳しくは後ほど解説します

型表現は、属性の実装形を現します
これは、実装するプログラミング言語に依存することになります

初期値は、オブジェクト生成時にデフォルトとして与えられる値を示します
初期値が存在しなければ省略することもできます
単一の定数ではなく、式を表現することも可能で、その表現方法は言語に依存します

最後のプロパティ文字列は、言語依存の追加情報を記述します
例えば、可視性において、言語に依存した付加的可視性が存在する場合
それを記述するためのひとつの方法として、プロパティ文字列を使います



これは、キャラクターを表す Character クラスと
性別を表現するためのインターフェイス Sex が描かれています

キャラクターは、性別を sex プロパティで、体力を strength で示します。
また、strength 0 が初期値となっています
Sex はインターフェイスとなり、性別を表すための定数を公開しています
もし、実装が Microsoft .NET であれば、ステレオタイプは enum が適切ですね

インターフェイスの属性は全てが公開されていて
それぞれのプロパティは Const(定数)であり、フラグとして組み合わせて使える
ということを示すために、プロパティ文字列を使っています



前のページへ戻る次のページへ