使用案例圖從使用者的角度描述系統的功能需求,展示「誰」可以做「什麼」。它是需求分析階段最重要的工具之一。
定義:與系統互動的外部實體(人、其他系統、硬體等)
表示法:火柴人符號或方框(「方框」通常用於非人類/系統參與者)
┌─────┐
│使用者│ ← 人類參與者
└─────┘
┌─────────┐
│外部系統 │ ← 系統參與者
└─────────┘
類型:
定義:系統提供的一個功能或服務
表示法:橢圓形,內含功能名稱
╭─────────────────╮
│ 使用案例名稱 │
╰─────────────────╯
命名原則:
✅ 好的命名:「查詢訂單」、「更新個人資料」、「產生報表」
❌ 不好的命名:「訂單」、「資料」、「系統處理」
定義:界定系統的範圍
表示法:矩形框,框內是系統提供的功能
┌──────────────────────┐
│ 系統名稱 │
│ ○ 功能1 │
│ ○ 功能2 │
│ │
└──────────────────────┘
符號:實線
意義:參與者與使用案例之間的互動
┌─────┐
│使用者│────────>○ 登入系統
└─────┘
符號:虛線 + <<include>>
意義:基礎使用案例必定會執行的子功能
使用時機:
○ 結帳
│
│ <<include>>
▽
○ 驗證登入狀態
範例:結帳功能必定要先驗證使用者是否已登入。
符號:虛線 + <<extend>>
意義:基礎使用案例的可選額外功能
使用時機:
○ 結帳
△
│ <<extend>>
│
○ 使用優惠券
範例:結帳時,使用者「可以選擇」使用優惠券,也可以不使用。
符號:實線三角箭頭
意義:繼承關係,表示特殊化
用於參與者:
┌─────┐
│使用者│
└─────┘
△
┌────┴────┐
│ │
┌─────┐ ┌─────┐
│會員 │ │訪客 │
└─────┘ └─────┘
用於使用案例:
○ 付款
△
┌────┴────┐
│ │
○ 信用卡 ○ 行動支付
付款 付款
設計一個線上購物平台,需要支援以下功能:
會員功能:
管理員功能:
系統功能:
┌────────────────────────────────┐
│ 線上購物系統 │
│ │
┌─────┐ │ ○ 瀏覽商品 │
│顧客 │───────────>│ │
└─────┘ │ ○ 加入購物車 │
│ │ │
│ │ ○ 結帳 │
│ │ △ │
└──────────────>│ │ <<include>> │
│ │ │
│ ○ 選擇配送方式 │
│ △ │
│ │ <<include>> │
│ │ │
│ ○ 付款 │
│ │ │
│ │ <<extend>> │
│ ▽ │
│ ○ 使用優惠券 │
│ │
┌──────────────>│ ○ 查看訂單歷史 │
│ │ │
│ │ ○ 管理商品 │
│ │ │
┌─────────┐ │ ○ 管理會員 │
│管理員 │ │ │
└─────────┘ │ ○ 查看所有訂單 │
│ │ │
└──────────────>│ │
│ │
│ ○ 發送確認郵件 ─────────────────┤
│ △ │
│ │ <<include>> │
┌──────────┐ │ │ │
│郵件系統 │<──────┤ ○ 結帳 │
└──────────┘ │ │
│ │
┌──────────┐ │ ○ 更新庫存 ────────────────────┤
│庫存系統 │<──────┤ △ │
└──────────┘ │ │ <<include>> │
│ │ │
│ ○ 結帳 │
│ │
└────────────────────────────────┘
使用案例圖只是視覺化的概覽,每個使用案例都應該有詳細的文字描述。
| 項目 | 內容 |
|---|---|
| 使用案例名稱 | 結帳 |
| 使用案例 ID | UC-003 |
| 參與者 | 顧客(主要)、郵件系統(次要)、庫存系統(次要) |
| 簡述 | 顧客完成購物後,進行結帳流程,包含選擇配送方式和付款 |
| 前置條件 | • 顧客已登入• 購物車中至少有一件商品 |
| 後置條件 | • 訂單已建立• 庫存已更新• 顧客收到確認郵件 |
主要流程:
替代流程:
3a. 顧客未登入
4a. 顧客沒有儲存的地址
5a. 顧客選擇使用優惠券(擴展:使用優惠券)
5b. 付款失敗
例外流程:
E1. 商品庫存不足
E2. 系統錯誤
特殊需求:
✅ 好的做法:
❌ 避免的錯誤: