 |
使えるUML 第5回 |
2007.5.31 掲載
内容とその表現方法をわける
前回は、「枠組みを使用してとらえる」と題しまして、開発プロセスをはじめとする枠組みが、モデリングに与える影響を感じていただきました。今回は、また「物事をわけてとらえる」にもどります。「内容とその表現方法をわける」として、システムの構造に関するパターンのひとつであるMVCパターンと、UML自体の構造にせまりたいと思います。
◇MVCパターン
MVCパターンは、Model View Controllerの略で、最もよく知られているアーキテクチャパターン(システムの構造の指針)のひとつです。ユーザーとの対話を行うユーザインタフェースが存在するアプリケーションを、次の3つの部分に分割します。
| No |
略語 |
正式名称 |
日本語訳 |
説 明 |
| 1 |
M |
Model |
モデル |
データやビジネスロジック |
| 2 |
V |
View |
ビュー |
ユーザインタフェース |
| 3 |
C |
Controller |
コントローラ |
モデルとビューの仲介役 |
表1 MVCの内容
システムが提供する機能に関係するデータやビジネスロジックなどの中核的な内容を司るモデルと、その表現方法を司るユーザインタフェースを分離し、コントローラはモデルとビューの連携を担当します。
図1 MVCの依存関係
モデルとビューは関心事が異なるため、この2つを分離することでシステムの開発中やリリース後に以下のような効果が期待できます。
- ユーザインタフェースとビジネスロジックの担当分けができる。
- 1つのモデルに対応した表現方法を、表形式やグラフ形式など複数種類サポートするようにできる。
- ユーザビリティの考慮などによってユーザインタフェース部分が変化する際、モデル部分が影響を受けにくい。
- データの永続化方法や取得方法、計算式といったビジネスロジックが変化する際、ビュー部分が影響を受けにくい。
- それぞれ切り離したテストが可能になる。
- 表形式やグラフ形式といった表現方法の追加がより容易になる。
- リッチクライアントやPCブラウザ向けWebアプリケーション、携帯電話ブラウザ向けWebアプリケーションなど、主にユーザインタフェース部分のみを変更することで、移植することが可能になる。(実装言語などの実現方法にも依存しますが)
JavaによるWebアプリケーションでモデルとビューを分離する場合には、厳密にはJ2EEパターンのひとつであるMVC2が利用されます。また、最近ではJakarta Strutsをはじめとした、MVC(または、そのバリエーション)を実現するためのフレームワークを利用する機会が多くなっています。
◇UML自体の構造
システムの構造としてモデルとビューを分離するのと同様に、UML自体も厳密には内容を表す部分と表現方法を現す部分にわけられます。
| No |
名称 |
説 明 |
| 1 |
モデル |
モデル化した内容を表す。 広義には、ダイアグラムを含めてモデルと呼ぶ。 |
| 2 |
ダイアグラム |
モデルを図として表現したもの。 |
表1 MVCの内容
例えば次のような「モデル」があるとします。
「地図」クラスには、「緯度」属性と「経度」属性がある。
「地図」クラスは「路線」クラスと「道路」クラスを集約する。
|
このモデルを表す「ダイアグラム」は次のようなものが考えられます。
図2 地図情報のクラス図A
同じモデルを表現する、別のダイアグラムを追加することができます。
図3 地図情報のクラス図B
このように、ひとつのモデルを表現するダイアグラムをいくつか記述し、目的や読み手によって書き方を変えることができます。UMLを利用してモデリングする上では、モデル化対象を把握することに加えて、ダイアグラムで表現するスキルが重要になってきます。
補足ですが、OMGで標準化されているXMIは、UMLのモデル部分をXML形式にするための仕様で、DI(Diagram Interchange)は、ダイアグラムをXML形式化するための仕様です。
UMLの構造を意識して利用することで、UMLをいっそう使いこなせるようになるでしょう。
◇書籍紹介
アーキテクチャパターンについて詳しく知りたい方は、弊社が翻訳を行いました「エンタープライズアプリケーションアーキテクチャパターン」をご参照ください。
 |
エンタープライズアプリケーションアーキテクチャパターン 〜頑強なシステムを実現するためのレイヤ化アプローチ〜 |
【著作】 マーチン・ファウラー
【翻訳】 株式会社テクノロジックアート
【監訳】 長瀬 嘉秀
【出版】 株式会社翔泳社
|
また、UMLによる設計/開発・支援に関しましては、弊社テクノロジックアートで提供しておりますトレーニングコースや、コンサルティングサービスをご活用いただけます。
■筆者紹介 照井 康真/Koma Terui 株式会社テクノロジックアート テクニカルデプト モデリンググループ グループリーダー シニアシステムコンサルタント
|