タイミング図とは、クラスやオブジェクトの状態を時系列で表す図です。状態遷移を起こすタイミング(きっかけ)や他のオブジェクトに対するメッセージなどを表現することが出来ます。
下の図は、プリンタの制御を表したものです。
【要件定義】
状態遷移の条件は、次のとおりである。
遷移条件 | 状態遷移 |
印刷 | 「待機中」→「給紙中」 |
給紙完了 | 「給紙中」→「印刷中」 |
印刷完了 | 「印刷中」→「排紙中」 |
排紙完了 | 「排紙中」→「待機中」 |
タイミング図により、オブジェクトの状態が遷移する順番やタイミング(きっかけ)が視覚的に表現できます。
タイミング図は次の要素で構成されます。
要素 | 表示形式 | 意味 |
ライフライン(Lifeline) | 使用するオブジェクトやクラスを表現します。どちらか一方なら省略可能です。 | |
状態リスト(State List) | 状態を示すリストを表現します。 | |
状態ライフライン(State Lifeline) | 状態の遷移を表現します。 | |
汎用値ライフライン(General Value Lifeline) |
状態ライフラインと状態リストを組み合わせた表記法です。 これにより、状態の数が増えても一列で表示できます。但し、状態の整合性を保つことが難しくなります。 |
|
時間軸(Time Coordinate) | 時間軸を表現します。 | |
継続時間(Duration) | ライフラインの継続時間を表現します。 | |
メッセージ(Message) | 複数のライフライン間でメッセージ(相互作用)を表現します。 |
下の図は、プリンタ制御を表した例です。
【解説】
記述例で示した「プリンタ制御」を汎用値ライフラインで記述したものです。汎用値ライフラインを使用すると状態の数が増えても一列で表記できます。
下の図は、プリンタ制御において、プリンタとアイドリング(待機)時の表示ランプの関係を表した例です。
【解説】
プリンタオブジェクトが「給紙中」の状態になった段階で「作動」メッセージが送られ、アイドリングランプオブジェクトの状態が「点灯」から「消灯」へ状態遷移しています。
次に、プリンタオブジェクトが「待機中」の状態になると、「アイドル」メッセージが送られ、その時(t)から10秒後にアイドリングランプオブジェクトの状態が「消灯」から「点灯」へ状態遷移します。