 |
はじめるUML 第8回 |
2005.10.3 掲載
システムの動きを表現しよう! (1)
今回から2回にわたって、OMGのUML仕様書「UML2.0 Superstructure Specification」の第14章Interaction(相互作用図)について取り上げます。今回はUML2.0になって大幅に機能拡張されたシーケンス図についてです。
シーケンス図では、オブジェクト同士がメッセージを送受信して処理を行う様子を、時系列に沿って表現することができます。このことはオブジェクト指向モデルやプログラムの動作や機能を説明するのに都合がよいことから、シーケンス図はシステム開発において、クラス図と並んで頻繁に用いられる代表的なUMLのダイアグラム(図)となっています。
シーケンス図の例として、Webアプリケーションの動作を表してみます。典型的なWebアプリケーションの構造は、ユーザがWebブラウザ(画面)を通して、Webアプリケーションにメッセージを送り、内部でデータベースなどと通信を行って必要な情報を画面に表示するというものでしょう。これをシーケンス図で表します。
この例では、「Webブラウザ」や「データベース」などの、大きな粒度の登場人物(「ライフライン」といいます)が現れていますが、シーケンス図では、画面ウィジェットやユーティリティクラスのような、もっと小さな粒度のオブジェクト(ライフライン)同士のやり取りも、用途に応じて表すことができます。
複雑なシステムの流れをシーケンス図でモデリングしようとすると、たくさんの要素を細かく記述する必要があるため、煩雑でわかりにくい図となってしまいます。UML2.0では、そのような問題を解決するために「複合フラグメント」という要素が導入されました。これによって、繰り返しや分岐など、より実装寄りの概念を簡潔に表現することが可能になりました。この例では残りがある間、最大5回検索を行う処理を表現しています。
また、システム実装における単体テストを表現するための要素として、複合フラグメントの一種である「アサーション」や、「状態不変式」などが新しく登場しました。
これらのように、実装により近い表現や、テストへの対応などは、モデルと実装を相互に変換する技術であるMDA(モデルドリブンアーキテクチャ)を実現するためのステップとして期待されています。
次回は、UML2.0で新しく登場した相互作用図(相互作用概要図・タイミング図)について見ていきましょう。
■筆者紹介 藤川 幸一/Kouichi Fujikawa 株式会社テクノロジックアート テクニカルデプト システムコンサルタント
パターンウィーバー(PatternWeaver) ver2.0
-
UML2.0 Superstructureの全てのダイアグラムに対応
-
Eclipse3.0にプラグインとして統合
-
表現力の大幅な向上
-
新規プラグインの追加
●商品に関するお問い合わせ 株式会社テクノロジックアート e-mail : pw@tech-arts.co.jp http://pw.tech-arts.co.jp/pw/index.html
|