統一モデリング言語(UML) タイミング図は、システム内のオブジェクトのタイミング制約に焦点を当てる相互作用図の一種である。これらの図は、イベントのタイミングや持続時間が重要なリアルタイムシステムにおいて特に有用である。本記事では、添付の図を参照にしながら、UMLタイミング図の主要な概念を説明する。
UMLタイミング図の主要な概念

1. ライフライン
ライフラインは、オブジェクトまたは参加者がある時間に存在することを表す。添付の図では、ライフラインは「User/Acc_User」とラベル付けされており、垂直に延びており、ユーザーがシステム内で存在する期間を示している。
2. 状態
状態は、オブジェクトが存在できる条件や状況を指す。図では、「Idle」、「WaitCard」、「WaitAccess」、「Cardout」などの異なる状態が示されている。各状態は、ユーザーがシステムとやり取りする際の特定の段階を表している。
3. 持続時間制約
持続時間制約は、オブジェクトが特定の状態に滞在する時間の長さを指定する。図では、持続時間制約は区間[d..3d]で示されており、これはユーザーが「WaitAccess」状態に滞在する時間はdから3d時間単位の間であることを意味する。
4. 時間制約
時間制約は、異なるイベント間のタイミング関係を定義する。図では、時間制約は[t..t+3]として示されており、これは「Code」から「Cardout」への遷移がtからt+3時間単位の間に発生しなければならないことを示している。
5. 刺激
刺激は、状態の変化を引き起こす外部イベントや信号を指す。図では、刺激は状態間の遷移によって表されており、たとえば「WaitCard」から「Code」への遷移や、「Code」から「Cardout」への遷移が含まれる。
6. 時間単位
時間単位は、図における時間の基本的な測定単位である。添付の図では、時間単位は水平軸に表されており、0から8までの刻みで示されている。この軸は、さまざまな状態や遷移のタイミングと持続時間を視覚的に把握するのに役立つ。
UMLタイミング図の解釈
- 初期状態:ユーザーは「Idle」状態から開始する。
- WaitCard状態:ユーザーは「WaitCard」状態に遷移し、カードの提示を待つ。
- Code状態:カードを受け取ると、ユーザーは「Code」状態に移行し、何らかの処理または検証が行われる。
- WaitAccess状態:その後、ユーザーは「WaitAccess」状態に入り、アクセスの承認を待つ。持続時間制約[d..3*d]は許容される待機時間を示している。
- カードアウト状態: 最後に、ユーザーは「カードアウト」状態に遷移し、カードの処理が完了しアクセスが許可されたことを示す。時間制約 [t..t+3] により、この遷移が指定された時間枠内に発生することが保証される。
UMLタイミング図の応用
UMLタイミング図は、以下の分野において不可欠である:
- リアルタイムシステム: 時間が重要なシステム、たとえば組み込みシステム、制御システム、通信プロトコルなど。
- 性能分析: ソフトウェアシステムの性能を分析し、時間要件を満たしているかを確認する。
- シミュレーションとテスト: 異なる時間制約下でのシステムの挙動をシミュレーションおよびテストする。
UMLタイミング図の代替表現
UMLタイミング図は、同じ情報を伝えることを前提に、異なるスタイルで提示できる。2番目の図における代替表現は、刺激や時間制約を明示的に表示せずに、状態と期間制約に焦点を当てることで視覚的表現を簡略化している。以下では、代替表現について説明し、2つの図が等価である理由を解説する。
代替表現の主な要素

- ライフライン: ライフラインは同じままであり、時間の経過に伴う「ユーザー/アクセスユーザー」の存在を表している。
- 状態: 「アイドル」、「カード待機」、「アクセス待機」、「アイドル」という状態が明確に描かれている。ユーザーはこれらの状態を順次遷移する。
- 期間制約: 「アクセス待機」状態に対して期間制約 [d..3*d] が示されており、許容される待機時間を示している。
2つの図の等価性
- ライフライン: 両方の図には、「ユーザー/アクセスユーザー」を同じ時間スパンで表すライフラインが存在する。
- 状態: 両図の状態の順序は同一である:「アイドル」→「カード待機」→「アクセス待機」→「アイドル」。
- 期間制約: 両図とも「アクセス待機」状態に対して期間制約 [d..3*d] を指定している。
- 暗黙の時間制約: 代替表現では時間制約を明示的に表示していないが、それらは暗黙的に理解される。状態間の遷移は順次行われ、期間制約により時間要件が満たされることを保証する。
詳細な比較
- 初期状態: 両方の図は「アイドル」状態から始まる。
- WaitCard 状態: 両方の図に「WaitCard」状態への遷移が示されており、ユーザーがカードを待っていることを示している。
- WaitAccess 状態: 「WaitAccess」状態に期間制約 [d..3*d] が設定されており、両方の図に存在し、ユーザーが指定された期間待つことを保証している。
- 最終状態: 「WaitAccess」状態の後、両方の図は「アイドル」状態に戻り、サイクルを完了する。
代替表現の利点
- 単純さ: 代替表現はより単純で理解しやすく、追加の詳細を省き、重要な要素に焦点を当てる。
- 明確さ: 明示的な刺激や時間制約を省略することで、図がごちゃつきにくくなり、状態遷移や期間制約を視覚的に把握しやすくなる。
結論
UML 時間図は、システム内のオブジェクトのタイミングおよび期間制約を視覚的に表現する。ライフライン、状態、期間制約、時間制約、刺激、時間単位といった主要な概念を理解することで、開発者はリアルタイムシステムの挙動を効果的にモデル化および分析できる。添付された画像は、これらの概念が典型的なシナリオでどのように適用されるかを示す実用的な例である。












