ObjectSquare [1999 年 8 月号]

[オブジェクト指向モデリング言語 UML]
   - 情報処理 VOL.40 NO.1, NO.3より -


UMLダイアグラム

振る舞いを表すダイアグラム

振る舞いは相互作用図とステートチャート図,アクティビティ図で表現する.相互作用図はシーケンス図とコラボレーション図からなる.

(1)シーケンス図(Sequence Diagram)

シーケンス図は,相互作用図の1種であり,あるコラボレーションに参加するオブジェクトの間でやりとりされる個々のメッセージ送受信(相互作用と呼ぶ)の時間的順序を上から下に順に示す.メッセージ送信を時間順に1つずつトレースできるため,シナリオと対応させてコラボレーションの具体的な内容を示すのに便利であり,分析で多用される.

縦棒(オブジェクト生存線と呼ぶ)でオブジェクトの存在を示し,オブジェクト間のメッセージ送信を実線矢印とメッセージ名で表して上から順番に並べる.また分析では特に,シーケンス図の左にメッセージ送信と対応させてシナリオの各ステップをテキストで記述することで,ユースケースの実現例である1本のシナリオとシーケンス図の対応付けが容易になる.

図-5 シーケンス図

(2)コラボレーション図(Collaboration Diagram)

コラボレーションとは,1つのユースケースや1つのメソッド等を実現するに必要な一連の相互作用のまとまりを指す.コラボレーション図も,相互作用図の1種であり,あるコラボレーションに参加するオブジェクト間で送受信されるメッセージを,それらのオブジェクト間の接続関係(コラボレーションのコンテキストと呼ぶ)とともに示す.参加オブジェクトは,オブジェクト名にアンダーラインの付いたシンボルで表現し,それらを関連リンクで結合して,各オブジェクトの参照・接続関係を示す.各リンクを流れるメッセージはリンクの脇の矢印で表し,メッセージ送信の順番を示すシーケンス番号を各メッセージの頭に振る.

シーケンス図に比べると設計を意識したオブジェクト間の接続関係が詳細に表現できるが,時間順のトレースはやりづらくなる.したがって,設計で多用する.

図-6 コラボレーション図

(3)ステートチャート図(State Chart Diagram)

ステートチャート図は,クラス(場合によってはシステム全体や各ユースケース)のとりうるライフサイクルの状態遷移図としてHarelのステートチャート記法で表わしたものである.オブジェクトのとりうる状態の集合,状態間の遷移とそのトリガとなるイベント,状態や遷移にともなうアクションの記述によって,オブジェクトの振る舞いを記述する.ステートチャート図では,状態の入れ子とそれに伴う遷移とアクションの継承,および状態履歴という概念が追加され,従来の状態遷移図に比べ表現力と記述の簡潔さが向上した.
ステートチャート図は各クラスごとにその振る舞いを定義するのに必要だが,実際には,ある程度複雑なライフサイクルをもつクラスのみ定義すれば十分である.

ラウンドボックスで状態を,状態間の実線矢印で遷移を,遷移の脇にイベント名を置いて,その遷移を発火するトリガイベントを示す.状態遷移および状態そのものに付随した操作実行をアクションとして付加することができる.また,状態には,入状時アクション,退状時アクション,状態内で継続的に実行するアクティビティを定義できる.

状態は入れ子にでき,上位状態の性質を下位状態は継承する.また,並行状態を破線で区切って並置したり,並行状態との入出力に対応して複数の遷移間で同期をとるためのバーを導入できる.

図-7 ステートチャート図の例


© 1999 OGIS-RI Co., Ltd.

Prev.

Index

Next