 |
使えるUML 第7回 |
2007.8.2 掲載
続・パターンの表現
前回に引き続きMVCパターンをはじめとしたアーキテクチャパターンや、GoFのパターンに代表されるデザインパターンなどのパターンをUMLでどのように表現すれば良いのかを見ていきたいと思います。ソフトウェア開発の効率化において、再利用は最も有効な手段のひとつです。パターンを利用することで、実装済みのコードだけではなく、問題の解決方法といった考え方も再利用することが出来ます。
◇UMLでのパターンの表現(2)
今回も、前回の時計アプリケーションを例に、コンポジット構造図で記述するコラボレーションの使い方を見ていきますので、前回の記事の内容をお忘れの方は、一度振り返っていただければと思います。
次のコラボレーションは、コラボレーションに参加するパートの型を明確に定義しないかたちの記述方法です。前回も触れましたが、コラボレーションの目的は、あるタスクでのインスタンスの協調を表すことなので、必要であれば、相互作用など他の内容と同様に、パートの型も省略されます。
図1 パートの型を省略したコラボレーション
次の図は、時計アプリケーションの「時刻を確認する」ユースケース内で行われる、「時計」というコラボレーションについて記述したコンポジット構造図です。「時計」コラボレーションでは更に別のコラボレーションである、「Observer」コラボレーションが複数箇所で使用されています。
前回触れた抽象クラスなどを使用することで、図の「時計表示」「時刻」「タイマー」といった「Observer」コラボレーションにバインドされたパートの型を、「Observer」コラボレーションで定義したクラスのサブクラスに限定することができると考えられます。
図2 コラボレーションの使用
◇パターンをあらかじめモデルで定義しておく
デザインパターンをあらかじめモデル上で定義しておき、モデルとして再利用できるようにしておくことができます。次の図は、コラボレーションテンプレートを利用してObserverパターンを記述したものです。要素の右上にある点線の四角の中には、パートの型をパラメータで変更できることが表されています。
図3 コラボレーションテンプレート
図3のように定義したコラボレーションテンプレートを利用する際には、図4のように、コラボレーションで特定の型を指定します。
図4 コラボレーションテンプレートによるコラボレーション
◇まとめ
ソフトウェア開発の効率化において、再利用は最も有効な手段のひとつです。パターンを利用することで、実装済みのコードだけではなく、問題の解決方法といった考え方も再利用することができます。さらにUMLではコラボレーションテンプレートを利用することで、パートの型を利用する時点で指定することができるのです。
今回の記事でみなさんのモデルの再利用性を少しでも向上する助けとなることができれば幸いです。
◇書籍紹介
実装に密着したパターンをUMLで管理する方法に関する詳細につきましては、弊社社員が執筆に関わりました「現場のUML」をご参照ください。
 |
現場のUML |
【著作】 浅井麻衣/重田正俊/橋本大輔/浜口弘志/藤井啓詞
【監修】 桐越信一/長瀬嘉秀
【出版】 株式会社ソーテック社
|
また、UMLによる設計/開発・支援に関しましては、弊社テクノロジックアートで提供しておりますトレーニングコースや、コンサルティングサービスをご活用いただけます。
■筆者紹介 照井 康真/Koma Terui 株式会社テクノロジックアート UMLモデリンググループ グループリーダー シニアシステムコンサルタント
|