UMLクラス図(Class Diagram)

クラス図(Class Diagram)

デザインパターンの勉強に安くように、UMLクラス図の書き方を記録する クラス図はUMLの基本となる図のひとつで、システムを構成するクラスとそれらの関係を表現する。 また、各クラスが保持する属性(プロパティ)や操作(メソッド)も表現する。*

クラスの表現

1
クラス図は次の要素で構成される。
クラス名
属性(省略可)
操作(省略可)
  • ■クラス名称:クラス名を記述。抽象クラスの場合はイタリックで記述。
    パッケージ:クラス名
    ※パッケージは省略可能
    また、クラス種別(ステレオタイプ)を表示するには、<<ステレオタイプ>>の形式でクラス名の上部に記述
    例 : <>
  • ■属性:属性は次の形式で記述。
    可視性 名前 : 型 = 初期値 { 制約条件 }
    ※名前以外は省略可能
可視性 意味
+ public:全てにおいて参照可能
- private:自クラスでのみ参照可能
# protected:自クラス及びの派生クラスにおいて参照可能
~ package:同バッケージ内で参照可能

■操作:操作は次の形式で記述    %{color:red}可視性 名前 ( 引数の名前 : 引数の型 ) : 戻り値の型%    ※名前以外は省略可能

※「属性」及び「操作」に下線が引かれると、static を表します。

|Sample| |------|------| |- +staticField:String=null+| |- instanceField:String=null| |+ +getStaticField()+| |+ getInstanceField()|

クラス間相互関係の表現

  • 線形
関係 線形
関連(association)
集約(aggregation)
コンポジション(composition)
依存(dependency)
汎化(generalization)
実現(realization)
  • 多重度 関連(集約、コンポジションを含む)の端に数値を書く事で関係する数を表現する事が出来る。
多重度 意味
1 厳密に1
* 複数
0..* 0以上
0..1 0 or 1
1..* 1以上
2..5 範囲指定(2から5まで)
1,3,5 1 or 3 or 5
1,3..6 1 or 3 or 4 or 5 or 6

クラス間相互関係の例

  • 関連(association) クラス間で結びつきがある場合、関連で表現する事ができる。

  • 集約(aggregation) 集約は関連の一種でオブジェクトが複数集まって全体を構成する関係です。
    双方のオブジェクト間に「全体-部分」の関係が成り立っているときに用いられる。

  • コンポジション(composition)<合成・組合> コンポジションは関連の一種で集約よりも結びつきが強い場合、
    例えば「全体-部分」において双方が存在して初めて成り立つような関係のとき用いられる。

  • 集約と組合 クラス間に包含関係が存在する場合、全体と部分という表現が 生まれてきる。
    これを集約と呼び、特に結びつきが強いものを合成と呼ぶ

  • 依存(dependency) 依存は、相手の状態、若しくはイベントに対して影響を受ける関係のとき用いる表現。

  • 汎化(generalization) Javaなどの継承、つまり「is a」の関係を表現する。

  • 実現(realization)
    Javaでいうinterfaceと同等の意味で、相手を具象化する関係のとき用いる表現です。


すべての表示の例図<中国語>