代表的なUMLダイアグラム,クラス図.これを知らないとデザインパターンすら読みにくい……
クラス図をいつどのように使うべきか
- 全部の表現を使おうとしない→クラス・関連・属性・汎化・制約などのみで使ってみる
- ビジネスの説明のための概念的なクラス図→ソフトウェアについて考えずシンプルに書く
- 主要なものだけに作成することで,使用され・更新され続けるダイアグラムができる
- クラス図はクラスのプロパティと操作,オブジェクト同士の結合を表す制約も示す
プロパティ(property)
- クラスの構造的特性を表す
- 2つの記法.属性と関連で表される
- 属性と関連はほとんどいっしょだけど異なる情報もある
属性
- クラスボックス内のテキスト行として記述
可視性 名前: タイプ 多重度 = デフォルト値 {プロパティ文字列}
関連
- 2つのクラスの間にある実線で示す
- 行の両端に多重度を示すことができる
操作(operation)
ようにするにメソッド.だが違いがあり,区別することで役立つこともある
- 操作: オブジェクトにたいして起動されるもの(手続き宣言)
- メソッド: 手続きの本体
オーバーライドするときに実装と明確に区別するべき時に区別すると良いのかも
可視性 名前(パラメータリスト): 戻り値のタイプ {プロパティ文字列}
- パラメータはこのように表される
- 方向 名前:タイプ = デフォルト値
構文
基本的にプロパティのものといっしょ
汎化
継承
ノートとコメント
- ノートは破線を使ってコメントを付けている要素にリンクできる
- コメントはダイアグラムの要素にインラインで入れることができる.テキストの前にハイフン2つ(--)
依存関係
- ひとつの要素の定義を変更したことによってもう一方の要素の定義が変わるときに,2つの要素の間には依存が存在する
- 別のクラスにメッセージを送るとき
- データの一部として別のクラスを有しているとき
- 操作に対するパラメタとして別のクラスを指定するとき
- 依存を一方向に限定することで影響を与えることなく変更できる
依存関係のキーワード(一部)
- 依存関係はコードを調べることで判断できるため,ツールを利用するのが有効→wikipedia:静的コード解析
制約規則
- 関連,属性,汎化などでは表現できない残りの規約を表すことができる
- 制約の記述には制限はなく,中カッコ{}のなかに入れれば良い
- 自然言語でいいんじゃないかな
契約による設計(コラム)
- 契約による設計の中心は表明(assertion)→決して偽にならないはずの命題→ただしチェックされるのは開発時だけである
- 表明には3種類→事後条件・事前条件・不変表明
- 事後条件: 操作の実行後に世界の状態がどう見えるべきかの定義
- 事前条件: 操作の実行前に世界の状態がどういう状態であると予期しているかの定義
- チェックのレスポンシビリティ(責務)がどこにあるかを示すための条件→ここに書かれている条件は呼び出し側が保証している必要があることが分かるので,チェックの過少過多を防ぐことができる
- 事前・事後条件の定義から例外(Excaption)は,事前条件が満たされた状態でも事後条件が満たせない場合に発生すると定義できる
- 不変表明(invariant): クラスに対する表明.不変表明はクラスのインスタンスすべてにたいして常に真となる
- この表明によりスーパクラスに矛盾するようなサブクラスの定義を防ぐことができる
UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)
- 作者: マーチン・ファウラー,羽生田栄一
- 出版社/メーカー: 翔泳社
- 発売日: 2005/06/16
- メディア: 大型本
- 購入: 8人 クリック: 254回
- この商品を含むブログ (93件) を見る