著重控制邏輯,考察物件狀態隨時間變化的序列,描述「何時做」以及「在什麼條件下做」。
| 圖表 | 焦點 | 適用對象 | 關鍵元素 |
|---|---|---|---|
| 狀態圖 | 單一類別生命週期狀態轉換 | 具有複雜狀態行為的類別 (訂單、工作流、連線) | 狀態、事件/轉換、守衛條件、動作、初始/終止狀態 |
| 事件追蹤圖 / 序列圖 | 特定場景多物件互動序列 | 用例實現、API 流程、異常處理流 | 物件生命線、訊息 (同步/非同步/回傳)、啟動桿、片段 (alt/loop/par) |
| 要素 | 建模指引 | 常見錯誤 |
|---|---|---|
| 狀態識別 | 業務意義明確、可觀測、有限數量 (通常 < 10) | 將屬性值當狀態 (如 Amount > 0)、狀態爆炸 |
| 事件命名 | 過去式動詞 + 主體 (OrderPlaced, PaymentReceived) | 技術術語 (OnClick, TimerElapsed) 混雜業務 |
| 守衛條件 | [condition] 標註於轉換箭頭,布林運算式 | 複雜邏輯塞入守衛、副作用操作 |
| 動作 | entry/do/exit 或轉換動作 /action | 長時間運算阻塞狀態機、非同步未建模 |
| 複合狀態 | 巢狀狀態 (OR 分解)、並行區域 (AND 分解) | 過度使用導致難以理解 |