UMLさわり〜デザパタPHP5その0

最近勉強不足を実感して来たので、デザインパターンから勉強してみようと本を購入。

増補改訂版Java言語で学ぶデザインパターン入門
結城 浩
ソフトバンククリエイティブ (2004/06/19)
売り上げランキング: 7,578

最初から読み進めてみて、とりあえずUMLを多少分からないと駄目らしいのでそこからメモ。

クラス図(Class Diagram)

階層関係

AクラスとBクラスの関係で、大まかに親子関係を表す。
それぞれ四角で囲み、上からクラス名・メンバ・メソッドの順で区切られる。抽象(abstract)は斜字体、静的(static)は下線で表現される。
白抜きの△がついた実線の矢印で階層関係が示され、子から親に向かう。これは、相手をさす事が出来るのは相手を知っているときという考え方に基づく。

インターフェースと実装

クラスの階層関係とほぼ同様で、矢印が破線で表現される点が異なる。
また、JAVAのインターフェースをUMLで表現する場合、<<interface>>がつけられる。

集約(aggregation)

「持っている」関係を「集約」と呼ぶ。例えば、BクラスがAクラスのインスタンスを配列で持っている場合など。ただし、どのような実装かは問題ではない。
白抜きの◇から実線の矢印を集約するクラスに向けて描く。クラスの表現は階層関係と同様。

アクセス制御

privateやpublicなどを利用してアクセス制御を行うクラスを表現する場合には、-や+などの記号を該当するメンバやメソッドの頭につける。

  • +:public
  • -:private
  • #:protected
  • ~:同パッケージ

クラスの関連

「AクラスがBクラスを〜する」という関連を表すために、AクラスからBクラスへの実線矢印と矢印の上に行動の動詞を記述する。その際、動詞の横に黒塗りの▶をつける事で、関連の方向を表す。

シーケンス図(Sequence Diagram)

クラス図が「静的な関係」で、シーケンス図は「時間に従って変化するもの(動的な振る舞い)」を表す。
各インスタンスを「:インスタンス名」として表し、四角で囲み横並びに配置する。各インスタンスからは縦に破線(ライフライン)が伸びていて、これが表示されている間インスタンスは保持される。
呼び出されるメソッド名と矢印で振る舞いを記述していく。呼び出しは黒塗りの▶がついた実線の矢印で表現され、戻りは破線の矢印で表現される。戻りは省略される場合もある。
オブジェクトが活動中(メソッド実行中)である間、ライフライン上にしろ抜きの長方形が描かれる。
シーケンス図は、ライフラインを辿って上から順番に読んでいく。

簡単なまとめ

とりあえず、UMLとやらをまとめ。これだけでUMLを利用した設計が出来る様になるとは思わないまでも、頭の整理とか書籍を読み進める助け程度にはなると思う。
必要性があれば、もう少し調べて設計に取り入れる。

プロフィール

このブログ記事について

このページは、koshigoeが2005年11月18日 00:53に書いたブログ記事です。

ひとつ前のブログ記事は「JMeterのテストケースXMLが変わったらしい」です。

次のブログ記事は「キーボードが欲しい」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。