八葉の日記

日々、感じたことをまとめる場として利用する

クラス図について

UMLといえば、これって感じだと思う。

 

クラス図って?

システム(対象)の静的な関係を示すことに用いる。

示すのは、

・クラス名称

   - プロパティ(属性もしくはクラスの関連)

   - 操作

   - クラス同士の関連とその制約

  (汎化とかコンポジット、多重度、多重の場合は順序指定ありか?など...)

 

■プロパティ

クラスの属性を指す言葉、属性はクラスの外に出して関連でもかけるから、

属性もしくはクラスの関連って書いてます。

f:id:konboi_kun:20170122231655p:plain

上の図が属性版、下の図が関連版です。どっちで書くかの判断基準ですは、静的構造として重要でない場合は、属性にまとめると書きたいことが伝わりやすいかと思います。

f:id:konboi_kun:20170122231439j:plain

 

 ■操作

クラスが実行するアクションのこと。

(getter,setterメソッドは書かなくてもわかるから、書かなくてもいい)

クラスに書くときは、状態更新する(modifierもしくはcommand)と更新しない(query)に分けるとわかりやすい。

f:id:konboi_kun:20170122233206j:plain

■関係

汎化についてはリスコフの置換原則を守ること。

依存関係の向きと依存がつくクラス同士の関係が適切か意識する。

 

 

UMLモデリングのエッセンス―標準オブジェクトモデリング言語入門 (Object oriented selection)

UMLモデリングのエッセンス―標準オブジェクトモデリング言語入門 (Object oriented selection)