循序圖展示物件之間如何互動,以及訊息傳遞的時間順序。它是動態行為圖中最常用的類型。
定義:代表參與互動的物件或參與者
表示法:
物件名稱
│
│ ← 垂直虛線(生命線)
│
▼
命名格式:
物件名稱 : 類別名稱
:類別名稱 (匿名物件)物件名稱 (只顯示名稱)定義:表示物件處於活躍狀態(正在執行操作)
表示法:生命線上的細長矩形
物件A
│
├──┐ ← 啟動框
│ │
│<-- 內部方法
└──┤
│
定義:物件之間的通訊
類型:
| 類型 | 符號 | 說明 |
|---|---|---|
| 同步訊息 | ───> |
發送者等待回應 |
| 非同步訊息 | ----> |
發送者不等待回應 |
| 回傳訊息 | <- - - |
回傳結果 |
| 自我呼叫 | ⟲ |
物件呼叫自己的方法 |
| 建立訊息 | ----> + <<create>> |
建立新物件 |
| 銷毀訊息 | ----> ✕ |
銷毀物件 |
用於表達條件、迴圈等控制結構。
類型:
alt:選擇(if-else)opt:可選(if)loop:迴圈par:平行執行ref:引用其他循序圖表示法:
┌─ alt ──────────────┐
│ [條件1] │
│ 執行流程1 │
├────────────────────┤
│ [else] │
│ 執行流程2 │
└────────────────────┘
實作一個使用者登入功能:
使用者 LoginUI AuthService UserRepository Database
│ │ │ │ │
│─輸入帳密─>│ │ │ │
│ │ │ │ │
│ │─驗證請求─>│ │ │
│ │ │ │ │
│ │ │─查詢使用者────>│ │
│ │ │ │ │
│ │ │ │─SQL查詢────>│
│ │ │ │ │
│ │ │ │<─User物件───│
│ │ │ │ │
│ │ │<─User物件──────│ │
│ │ │ │ │
│ │ │─────┐ │ │
│ │ │ │驗證密碼 │ │
│ │ │<────┘ │ │
│ │ │ │ │
│ │<─登入成功─│ │ │
│ │ │ │ │
│ │─────┐ │ │ │
│ │ │顯示首頁 │ │
│ │<────┘ │ │ │
│ │ │ │ │
│<─顯示首頁─│ │ │ │
│ │ │ │ │
✅ 好的做法:
❌ 避免的錯誤:
| 特性 | 使用案例圖 | 循序圖 |
|---|---|---|
| 視角 | 外部使用者視角 | 內部系統視角 |
| 關注點 | 做什麼(What) | 怎麼做(How) |
| 抽象層級 | 高層次、概覽 | 詳細、具體 |
| 時間順序 | 不強調 | 強調時間先後 |
| 適用階段 | 需求分析 | 設計階段 |
| 目標受眾 | 客戶、產品經理 | 開發團隊 |