統一建模語言(UML) 時序圖是一種互動圖,專注於系統中物件的時序限制。這些圖表對於即時系統特別有用,因為事件的時序與持續時間至關重要。本文將以附圖為參考,解釋UML時序圖的核心概念。
UML時序圖的關鍵概念

1. 生命線
生命線代表物件或參與者在時間上的存在。在附圖中,生命線標示為「User/Acc_User」,並垂直延伸,表示使用者在系統中存在的时间長度。
2. 狀態
狀態是物件可能存在的條件或情境。在圖中,不同的狀態如「空閒」、「等待卡片」、「等待存取」和「卡片送出」被呈現出來。每個狀態代表使用者與系統互動過程中的特定階段。
3. 持續時間限制
持續時間限制指定物件在特定狀態中停留的時間長度。在圖中,持續時間限制以區間 [d..3d] 表示,使用者在「等待存取」狀態中停留的時間介於 d 到 3d 個時間單位之間。
4. 時間限制
時間限制定義不同事件之間的時序關係。在圖中,時間限制顯示為 [t..t+3],表示從「代碼」到「卡片送出」的轉移必須在 t 到 t+3 個時間單位內發生。
5. 刺激
刺激是觸發狀態變化的外部事件或信號。在圖中,刺激以狀態之間的轉移來表示,例如從「等待卡片」到「代碼」的轉移,以及從「代碼」到「卡片送出」的轉移。
6. 時間單位
時間單位是圖中時間的基本度量單位。在附圖中,時間單位以水平軸表示,從 0 到 8 逐步遞增。此軸有助於視覺化各狀態與轉移的時序與持續時間。
解讀UML時序圖
- 初始狀態:使用者從「空閒」狀態開始。
- 等待卡片狀態:使用者轉移到「等待卡片」狀態,等待卡片被出示。
- 代碼狀態:收到卡片後,使用者進入「代碼」狀態,進行某些處理或驗證。
- 等待存取狀態:使用者隨後進入「等待存取」狀態,等待存取權被授予。持續時間限制 [d..3*d] 表示允許的等待時間。
- 卡出狀態: 最後,使用者轉換至「卡出」狀態,表示卡片已處理完畢且已授予存取權。時間約束 [t..t+3] 確保此轉換在指定時間範圍內發生。
UML 時序圖的應用
UML 時序圖在多個領域中至關重要,包括:
- 即時系統: 時間至關重要的系統,例如嵌入式系統、控制系統和通訊協定。
- 效能分析: 分析軟體系統的效能,以確保其符合時間需求。
- 模擬與測試: 在不同時間約束下模擬與測試系統的行為。
UML 時序圖的替代呈現方式
UML 時序圖可以以不同風格呈現,同時傳達相同資訊。第二張圖中的替代呈現方式透過專注於狀態與持續時間約束,而不明確顯示觸發訊號與時間約束,簡化了視覺呈現。以下將討論這種替代呈現方式,並說明兩張圖表的等價性。
替代呈現方式中的關鍵元素

- 生命線: 生命線保持不變,代表「使用者/存取使用者」在時間上的存在。
- 狀態: 「閒置」、「等待卡片」、「等待存取」和「閒置」狀態均清晰呈現。使用者依序經過這些狀態。
- 持續時間約束: 「等待存取」狀態顯示持續時間約束 [d..3*d],表示允許的等待時間。
兩張圖表的等價性
- 生命線: 兩張圖表均具有代表「使用者/存取使用者」在相同時間範圍內的生命線。
- 狀態: 兩張圖表中的狀態序列完全相同:「閒置」→「等待卡片」→「等待存取」→「閒置」。
- 持續時間約束: 兩張圖表均針對「等待存取」狀態指定持續時間約束 [d..3*d]。
- 隱含的時間約束: 雖然替代呈現方式未明確顯示時間約束,但其意義是隱含的。狀態之間的轉換依序發生,且持續時間約束確保符合時間需求。
詳細比較
- 初始狀態: 兩個圖表均以「空閒」狀態開始。
- 等待卡片狀態: 兩個圖表均顯示轉換至「等待卡片」狀態,表示使用者正在等待卡片。
- 等待存取狀態: 兩個圖表中均存在帶有持續時間約束 [d..3*d] 的「等待存取」狀態,確保使用者等待指定的時間。
- 最終狀態: 兩個圖表在「等待存取」狀態後均返回至「空閒」狀態,完成循環。
替代呈現方式的優點
- 簡潔性: 替代呈現方式更為簡潔且容易理解,專注於基本元素,而不包含額外細節。
- 清晰度: 通過省略明確的觸發訊號和時間約束,圖表變得更為簡潔,使狀態轉換和持續時間約束更容易被直觀理解。
結論
UML 時序圖提供系統中物件時序與持續時間約束的視覺化表示。透過理解生命線、狀態、持續時間約束、時間約束、觸發訊號和時間單位等關鍵概念,開發人員可以有效建模與分析即時系統的行為。附圖作為一個實際範例,說明這些概念在典型情境中的應用方式。












