Timing図とは |
---|
時間関係に注目して、状態や状況の変化を描くための図。 |
Keywords |
DurationConstraint(持続時間制約) TimeConstraint(時間制約) |
Timing図の特徴 |
Timing図は主にハードウェア設計者をターゲットとして導入された図だと考えてよい。 目的としては、「ある時間を基準として、イベント発生がどのタイミングでおきて、 それによってどのようにオブジェクトの状態や状況が変化するかを描く」という ところにある。
タイミング図は、シーケンス図と同様に、イベントの発生を意識している点に着目されたい。
タイミング図には主に3通りの表現手法があるので、次の項から順にこれらを見ていく。
以下で説明する例はいずれもCDプレイヤーを題材に取った。ここでは、以下のような流れを
トレースしたモデルを描く。
Timing図の例(1) |
横軸に時間、縦軸に オブジェクトの取る状態を書き、直線で経過を表す。直線が垂直になっているところ (状態が切り替わるポイント)は、何らかのイベントが発生したものと考える。
conditionsにあたるところについては、UML上で特に明確な定義はないし、 対応するメタクラスも存在しない。ここに書くものとしては 「stateまたはcondition(いずれも、メタクラスを意図しては書かれていない)」 と書かれていることから、ユーザが理解しやすい状態や状況を定義してよいようである。 特にこの例などはStateMachine図でも表現することがありそうだが、StateMachineに 時間制約をつけた表現としても活用できそうなことがわかるだろう。
{0..10}となっているところはDuration Constraintである。この状態にあるべき時間を0秒以上 10秒以下と定義している。
{t+2h}となっているところはTime Constraintである。 図の下方に示したルーラに基づいて、tから2h経った時点でイベントが発生することを 示している。 このように、ある時間をtなどとしてルーラ上に定義すると、扱いやすい。
図の左に縦書きされているのは、このトレースを持つオブジェクトである。シーケンス図で いえば、これはLifelineの示すオブジェクトに当たる。
時間は左から右へ流れるように示す。
下で示す例(2)の表記法に比べて、この表記法は視覚的に状態変化がわかりやすいという特徴を持つ。 その一方で、状態の数が多いと図が煩雑になりやすいという欠点を持っている。
Timing図の例(2) |
この表記法は、上で説明した例(1)の欠点を補った表記法である。 この表記法では、各状態・状況は六角形の図の中に書き、 その六角形を一直線につなげる。 六角形の頂点が交わっているところが、イベントが発生したポイントである。
Timing図の例(3) |
ここまでの例ではいずれも1つのオブジェクトに対してフォーカスを当ててきたが、複数のオブジェクト について、時間関係を把握したいという場合がある。その場合に用いるのがここに示した例である。
上下の2つの箱は、それぞれLifelineと呼ばれる。シーケンス図のLifelineでは ヘッドにオブジェクト名を書き、時間は上から下へ 流れるが、タイミング図のLifelineではLifelineの箱の中にオブジェクト名を書き、 さらに時間の流れを左から右へと示す。 この箱は、関連するオブジェクトの数だけつなげてよい。