創建系統應如何運作的清晰地圖,是軟體開發中最關鍵的任務之一。當利益相關者與開發人員使用不同的語言時,就會產生誤解。一個使用案例圖能彌補這道鴻溝。它將原始的文字需求轉化為所有人都能理解的視覺語言。本指南將帶你一步步從抽象的需求轉換為具體的圖示,且不依賴特定的專有工具。
無論你是在分析銀行應用程式、醫院管理系統,還是庫存追蹤系統,核心邏輯都是一樣的。你必須辨識出與系統互動的對象,以及他們所達成的目標。本教學涵蓋了確保你的圖示準確、實用且符合實際業務需求的關鍵步驟。

理解核心元件 🧩
在繪製線條與方框之前,你必須先了解基本構件。使用案例圖不僅僅是圖像,更重視關係。它專注於功能需求。
1. 原型 🧍♂️
原型代表使用者或外部系統所扮演的角色。它不是特定的個人,而是職稱或系統介面。
- 主要原型: 這些是啟動流程的對象。例如,在圖書館系統中,「讀者」就是主要原型。
- 次要原型: 這些是支援流程但不啟動流程的對象。例如,「付款網關」可能是一個次要原型,協助處理交易。
- 外部系統: 有時,一個軟體系統會與另一個系統互動。這也以原型的方式進行建模。
2. 使用案例 🎯
使用案例是原型希望達成的特定目標或結果。它描述了一連串能產生具價值可觀察結果的動作序列。
- 動詞-物件命名: 始終以動詞與物件來命名使用案例。例如,「下訂單」比「訂單」更佳。
- 細節程度: 保持使用案例的聚焦性。如果使用案例過大,可能需要拆分;如果過小,則可能需要與其他使用案例合併。
3. 系統邊界 📦
使用案例圖中的矩形代表所考慮的系統。方框內的所有內容都是系統的一部分,方框外的則是原型或外部實體。
收集需求 📋
在了解系統應具備的功能之前,你無法繪製圖示。此階段著重於探索。它包括與人們對話以及審閱文件。
訪談與工作坊
直接溝通是了解使用者真正需求的最佳方式。請提出開放式問題:
- 你每天執行哪些任務?
- 你在目前流程中遇到哪些問題?
- 你做出決策時需要哪些資訊?
使用者故事
現代的需求通常以使用者故事的形式出現。這些故事遵循一個簡單的結構:
「作為[角色],我希望[行動],以便[利益]。」
這些故事是用例的絕佳起點。例如,「作為一位顧客,我希望搜尋產品,以便能快速找到商品。」這可以直接轉換為「搜尋產品」的用例。
文件分析
審閱現有的業務流程文件。尋找:
- 表單與報表
- 法規合規要求
- 工作流程圖
定義關係 📊
一旦你有了參與者和用例,就需要將它們連接起來。線條代表關係。理解這些連接對於繪製正確的圖表至關重要。
關聯
這是最基本的線條。它顯示參與者與用例之間的互動。這是一種雙向連結,表示參與者可以觸發用例,而用例也能將資料回傳給參與者。
一般化(繼承)
這種關係顯示一個元素是另一個元素的特殊版本。在參與者中,「經理」可能是「員工」的一種一般化。在用例中,「以信用卡付款」的用例可能是「付款」用例的一種特定類型。
包含(包含)
這種關係表示基礎用例必須執行包含用例的行為。這是一種強制性依賴。如果你想要「註冊使用者」,你就必須「驗證電子郵件」。
擴展(擴展)
這種關係表示基礎用例可能執行擴展用例的行為。這是一種可選關係,通常在特定條件下發生。例如,如果提供了優惠券代碼,「下訂單」可以用「套用折扣」來擴展。
| 關係 | 符號 | 含義 | 範例 |
|---|---|---|---|
| 關聯 | 實線 | 參與者與使用案例互動 | 客戶下訂單 |
| 包含 | 虛線箭頭 <<包含>> | 必要行為 | 結帳時必須列印發票 |
| 延伸 | 虛線箭頭 <<延伸>> | 選擇性行為 | 列印收據為選擇性 |
| 一般化 | 實心三角形 | 繼承 | 管理員是一種使用者 |
逐步圖示建構 🛠️
現在你已了解理論,讓我們進入實際步驟。此順序可確保你不會遺漏任何關鍵細節。
步驟 1:定義系統邊界
首先畫一個大矩形,並標示系統名稱。這定義了範圍。任何位於此方框之外的內容都不屬於此特定圖示。
步驟 2:識別參與者
列出所有與系統互動的角色。將它們放置在邊界之外。使用人形簡筆畫代表人類參與者,使用圖示或簡單矩形代表系統參與者。
- 誰啟動這個流程?
- 誰提供輸入?
- 誰接收輸出?
步驟 3:草擬使用案例
將橢圓形放置在邊界內。在每個橢圓形內寫上動詞-物件語句。目前無需擔心線條。只需列出系統必須執行的每一項功能。
步驟 4:將參與者連接到使用案例
在參與者與其互動的使用案例之間畫實線。確保每位參與者至少有一個使用案例。若某參與者無任何線條連接,則表示該參與者不在此系統的範圍內。
步驟 5:識別關係(包含/延伸)
尋找共通行為。若多個使用案例共享一個步驟,則使用包含關係。若使用案例包含選擇性步驟,則使用延伸關係。將關係箭頭指向基礎使用案例。
步驟 6:審查與優化
根據原始需求核對你的工作。所有需求都已涵蓋嗎?是否有孤立的參與者?圖表是否容易閱讀?在可能的情況下盡量簡化。
常見挑戰與解決方案 🚧
即使是經驗豐富的分析師也會遇到障礙。以下是常見問題及其解決方法。
問題:圖表過於擁擠
如果你有太多參與者或用例,圖表將變得難以閱讀。
- 解決方案:將圖表拆分為邏輯群組。為利益相關者創建高階圖表,為開發人員創建詳細圖表。
- 解決方案:使用子系統。將相關的用例歸為一組。
問題:參與者過於具體
為「John」設計圖表,而非「顧客」。
- 解決方案:始終使用角色。角色具有可重用性且永不過時。
問題:技術實現細節
在圖表中加入資料庫表格或使用者介面畫面。
- 解決方案:保持圖表聚焦於功能。內部實現細節應出現在類圖或資料流程圖中。
撰寫用例描述 📄
圖表僅為摘要。它不會詳細說明如何用例的運作細節。為此,你需要撰寫用例描述。此文件可補充視覺圖表。
描述的關鍵部分
- 用例名稱:清晰且簡明。
- 參與者:誰執行此動作?
- 前置條件:開始前必須為真的條件?(例如:使用者必須已登入)。
- 後置條件: 完成後什麼是正確的?(例如:訂單已儲存)。
- 主要流程: 標準的順利流程。逐步操作。
- 替代流程: 如果發生問題會怎麼樣?(例如:密碼無效)。
驗證技術 ✅
圖表完成後,必須進行驗證。驗證可確保模型與現實相符。
走查
與利益相關者一起走查圖表。請他們追蹤從開始到結束的路徑。如果他們感到困惑,表示圖表過於複雜。
可追溯性矩陣
建立一個將需求與使用案例連結的表格。這可確保每個需求都得到處理。
| 需求編號 | 描述 | 關聯的使用案例 | 狀態 |
|---|---|---|---|
| REQ-001 | 使用者必須登入 | 驗證使用者 | 已完成 |
| REQ-002 | 系統必須計算稅額 | 計算稅額 | 待處理 |
最終考量 🌟
建立使用案例圖表是一項協作工作。它需要來自業主、開發人員和測試人員的意見。目標不是立即創造出完美的圖像,而是建立共同的理解。
請記住,圖表會持續演進。隨著需求變更,圖表也必須隨之調整。它是一份活文件,而非靜態的產物。定期更新可避免技術負債,並確保系統持續符合使用者需求。
透過遵循這些步驟,可確保你的分析具備穩健性。你將從模糊的想法轉向具體的規格。這種清晰度能節省時間、減少錯誤,並帶來更好的軟體成果。專注於「什麼」以及「誰,並留下如何用於實施階段。
最佳實務摘要
- 使用動詞-物件名稱來命名使用案例。
- 將參與者視為角色,而非個人。
- 明確區分 Include 與 Extend。
- 盡早且經常與利害關係人驗證。
- 將需求與使用案例連結,以確保可追蹤性。
經過練習,建立這些圖表將會自然地融入您的分析工作流程中。它能將複雜的需求轉化為清晰的視覺敘事,推動專案成功交付。











