什麼是使用案例建模?
這是一種在軟體開發和系統工程中使用的技術,用於描述系統的功能需求。它著重於從終端使用者的角度理解並記錄系統應如何運作。本質上,它有助於回答這個問題:「系統應該做什麼才能滿足使用者的需求和目標?」

使用案例建模的關鍵概念
功能需求:功能需求是系統為實現其預期目的必須具備的功能、動作和行為。使用案例建模主要關注以結構化的方式定義和捕捉這些需求。
終端使用者的觀點:使用案例建模從與系統互動的人或實體(稱為「參與者」)的觀點來觀察系統。了解這些參與者如何使用系統以達成其目標或完成其任務至關重要。
互動:使用案例建模強調捕捉這些終端使用者(參與者)與系統之間的互動。這不僅僅是系統獨立運作的內容,更在於系統如何回應使用者的操作或請求。
使用案例的基本概念:
- 使用案例是系統與一個或多個外部實體(稱為參與者)互動以達成特定目標的描述。
- 根據所需的細節程度和複雜性,使用案例可以以文字或圖示形式撰寫。
- 使用案例應捕捉互動中的關鍵與相關方面,例如前置條件、後置條件、主要流程、替代流程和例外情況。
什麼是使用案例圖?
使用案例圖是使用案例建模中用於視覺化和溝通這些互動與關係的圖形表示。在使用案例圖中,參與者通常以人形圖示表示,而使用案例(特定功能或特性)則以橢圓形或矩形表示。線條和箭頭將參與者與使用案例連接,以顯示它們之間的互動方式。
-
- 參與者:這些是與系統互動的系統外部實體或使用者。他們可以是人、其他系統,甚至是外部硬體設備。每個參與者在系統中都有特定的角色或職責。
- 使用案例:使用案例代表系統為滿足參與者需求而能執行的特定功能或流程。每個使用案例通常具有名稱和描述,有助於理解其具體實現的功能。
- 關係:圖中連接參與者與使用案例的線條和箭頭,顯示參與者如何透過這些使用案例與系統互動。不同類型的關係,例如關聯關係、擴展關係和包含關係,可用來說明這些互動的性質。
如何進行使用案例建模?
- 要理解一個使用案例,您需要識別系統中涉及的參與者和使用案例。
參與者是與系統互動中扮演角色的外部實體。參與者可以是人、另一個系統,或時間事件。 - 使用案例是一組情境,用以描述系統與參與者如何合作以達成共同目標1。情境是一系列步驟,用以描述特定情況下發生的事件1。
使用案例建模中的參與者: - 參與者在使用案例圖中以人形圖示表示。
參與者可以具有泛化關係,表示一個參與者繼承另一個參與者的特徵與行為。例如,學生參與者可以是本科生參與者與研究生參與者的泛化。 - 參與者也可以具有關聯關係,表示參與者參與某個使用案例。例如,教師參與者可以與成績分配使用案例相關聯。
參與者與使用案例之間的關係:

- 使用案例可以具有包含包含關係,表示一個使用案例在其正常執行過程中會整合另一個使用案例的行為。例如,登入使用案例可以被許多需要驗證的其他使用案例所包含。
- 包含關係是兩個使用案例之間的依賴關係,其中一個使用案例(基礎)在其正常執行過程中整合另一個使用案例(包含)的行為。
- 包含關係以帶有「包含」標記的虛線箭頭表示,從基礎指向包含。
- 包含關係可用於重用共用功能、簡化複雜的使用案例,或抽象底層細節
- 使用案例也可以具有擴展擴展關係,表示在特定條件下,一個使用案例會向另一個使用案例添加選擇性或例外行為。例如,如果使用者決定取消預訂,取消預訂使用案例可以擴展預訂使用案例。
- 擴展關係是兩個使用案例之間的依賴關係,其中一個使用案例(擴展)在特定條件下向另一個使用案例(基礎)添加某些選擇性或例外行為。
- 擴展關係以帶有「擴展」標記的虛線箭頭表示,從擴展指向基礎。
- 擴展關係可以有一個擴展點,即基礎使用案例中可插入擴展的位置。
- 擴展點可以標示名稱和條件
建立有效的使用案例:
- 識別系統邊界:
- 系統邊界是一個包圍使用案例的方框,用以顯示系統的範圍。
- 系統邊界有助於區分系統內部(使用案例)與系統外部(參與者)。
- 系統邊界應明確標示系統名稱及其版本1。
- 定義使用案例目標與情境:
- 使用案例目標是一句總結使用案例為參與者達成什麼的陳述。
- 使用案例目標應具體、可衡量、可達成、相關且可測試。
- 使用案例情境是一系列步驟,用以描述參與者與系統如何互動以達成目標。
- 使用案例情境應完整、一致、實際且可追蹤。
- 撰寫清晰且簡明的使用案例描述:
- 使用案例描述是一份文字文件,提供更多關於使用案例的細節,例如前置條件、後置條件、主要流程、替代流程和例外情況。
- 使用案例描述應清晰且簡明,使用簡單且精確的語言,避免術語與模糊性,並遵循一致的格式。
- 使用案例描述也應具備邏輯一致性與完整性,涵蓋所有可能的情境、結果與變異,並滿足所有相關需求。
- 用例模板與文件:
- 用例模板是一種標準化格式,有助於以一致且結構化的方式組織和呈現用例資訊。
- 用例模板可包含多個部分,例如用例名稱、ID、目標、參與者、優先級、假設、前置條件、後置條件、主要流程、替代流程、例外情況等。
- 用例文件是一組用例的集合,從不同角度描述系統的功能。
- 用例文件可用於多種目的,例如溝通、驗證、確認、測試、維護等。
用例建模最佳實務:
- 一些用例建模的最佳實務包括:
- 識別 關鍵利益相關者及其目標,並讓他們參與用例開發過程
- 採用 自上而下的方法來識別並優先處理最重要的用例
- 採用 命名規範,確保用例與參與者命名的一致性、意義明確且具描述性
- 使用 圖示與 文字描述相互補充,並提供不同層次的細節
- 使用 關係,例如延伸、包含與泛化,以顯示用例之間的依賴關係與共通性
- 審查並 驗證用例與利益相關者確認,並確保其與系統需求一致
使用用例模板進行用例建模
問題描述:大學圖書館系統
大學圖書館系統面臨一系列運營挑戰,這些挑戰影響其效率以及為學生、教職員工提供的服務品質。這些挑戰包括:
- 手動借還流程:圖書館依賴紙質流程進行圖書借閱、歸還及到期日追蹤。這種手動方式容易出錯,導致記錄不一致,並偶爾引發圖書館工作人員與使用者之間的爭議。
- 庫存管理:目前用於管理圖書館龐大圖書與資料收藏的系統已過時。缺乏有效的庫存管理系統,使得查找特定物品變得困難,導致圖書館使用者感到挫敗並造成不必要的延遲。
- 逾期罰款追蹤:追蹤與收取逾期圖書的罰款是具有挑戰性的任務。圖書館工作人員缺乏自動化系統來監控到期日並準確計算罰款。這導致收入損失,並給使用者帶來不便。
- 使用者帳戶管理:使用者帳戶(包括圖書證發放與管理)依賴手動流程。這導致新學生無法及時取得圖書資源存取權,也使得現有成員更新個人資料變得困難。
- 存取性有限:目前的圖書館系統缺乏使用者線上搜尋圖書、預約或遠端續借已借出書籍的功能。此限制妨礙了現代學生與教職員工所期望的便利性與可及性。
- 資源配置低效:圖書館工作人員經常面臨優化資源(如圖書、期刊與學習空間)配置的挑戰。缺乏即時資料與分析,使得難以做出有關資源分配的明智決策。
- 溝通落差:圖書館工作人員與使用者之間存在溝通落差。使用者經常不了解圖書館政策、新到書籍或營運時間的變更,導致誤解與挫敗感。
- 安全隱憂:圖書館系統缺乏足夠的安全措施來保護使用者資料,並防止圖書資源被盜或未經授權存取。
這些挑戰共同導致圖書館工作人員與使用者的體驗未達理想。解決這些問題並現代化大學圖書館系統,對於提供高效服務、提升使用者滿意度,以及改善校園社群整體學術體驗至關重要。
以下是根據所提供的問題描述所列出的大學圖書館系統候選使用案例:
- 使用者註冊與帳戶管理:
- 建立使用者帳戶
- 更新使用者資訊
- 刪除使用者帳戶
- 發放圖書證
- 圖書管理:
- 將新書加入庫存
- 更新書籍資訊
- 從庫存中移除書籍
- 搜尋書籍
- 檢查書籍可用性
- 預訂書籍
- 續借借出的書籍
- 處理書籍歸還
- 庫存管理:
- 編目與分類書籍
- 管理書籍副本
- 追蹤書籍位置
- 庫存核對
- 逾期罰金管理:
- 計算逾期罰金
- 通知使用者逾期書籍
- 接受逾期罰金付款
- 線上存取與搜尋:
- 線上搜尋書籍
- 為書籍預留
- 請求書籍配送
- 線上續借書籍
- 資源配置與預約:
- 預訂學習空間
- 分配學習材料(例如:預約書籍)
- 管理學習空間預約
- 溝通:
- 通知使用者圖書館政策
- 宣布新到貨品
- 提供營業時間資訊
- 安全:
- 使用者身分驗證與授權
- 資料安全與隱私
- 報告與分析:
- 產生使用報告
- 分析借閱趨勢
- 預測特定資料的需求
- 館際互借服務:
- 向其他圖書館申請資料
- 管理館際互借請求
- 圖書館人員管理:
- 人員身分驗證與授權
- 訓練與入職
- 人員排班
- 無障礙服務:
- 為有特殊需求的使用者提供服務(例如:盲文資料)
- 輔助科技支援
- 資源預約與借出:
- 預約音像設備
- 借出設備
- 圖書館資源推薦:
- 根據用戶偏好推薦書籍和資源
- 圖書館推廣與工作坊:
- 組織並推廣圖書館工作坊與活動
這些候選用例涵蓋了廣泛的功能,解決了問題描述中所識別的問題。它們為進一步分析、設計和開發大學圖書館系統奠定了基礎,以提升其效率和用戶滿意度。具體應優先考慮和實施的用例將取決於系統需求和利益相關者的需求。
用例範本:
以下是大學圖書館借書用例的範本與範例,以表格形式呈現:
| 用例名稱 | 借書 |
|---|---|
| 用例編號 | UC001 |
| 主要參與者 | 學生 |
| 次要參與者 | 圖書館員、書籍庫存系統 |
| 前置條件 | – 學生持有有效的圖書館卡。 |
| – 該書在圖書館的庫存中可取得。 | |
| 後置條件 | – 該書在系統中標示為已借出。 |
| – 學生已持有該書。 | |
| 主要流程 | 1. 描述: 學生希望借一本 |
| 書籍來自大學圖書館。 | |
| 2. 參與者動作: | |
| – 學生向圖書館員出示其圖書館卡。 | |
| 圖書館員。 | |
| – 館員掃描圖書證以 | |
| 驗證其有效性。 | |
| – 學生提供想要借閱的書籍的書名或國際標準書號(ISBN) | |
| 他們想要借閱的書籍。 | |
| – 館員在圖書館目錄中搜尋該書 | |
| 以查找該書。 | |
| – 館員確認該書是否可借。 | |
| – 館員將該書借給學生 | |
| 。 | |
| – 學生拿走書籍並離開圖書館 | |
| 。 | |
| 3. 系統的動作: | |
| – 系統驗證圖書證的有效性。 | |
| – 系統將書籍狀態更新為 | |
| 「已借出」。 | |
| – 系統記錄書籍的歸還日期 | |
| 。 | |
| – 系統為該交易生成收據 | |
| 。 | |
| 4. 替代流程: | |
| – 如果學生的圖書證無效,館員會通知學生,使用案例結束。 | |
| 館員會通知學生,並結束使用案例。 | |
| 使用案例結束。 | |
| – 如果所要求的書籍不可用,館員會通知學生,並結束使用案例。 | |
| 館員會通知學生,並結束使用案例。 | |
| 使用案例結束。 | |
| 擴展 | – 如果學生有逾期未還的書籍,系統會發出通知 |
| 會發送給學生。 | |
| – 如果學生想要續借此書,他們可以 | |
| 透過圖書館網站申請續借。 | |
| 特殊需求 | – 系統應具備安全的 |
| 圖書館卡持有者資料庫。 | |
| – 逾期日期與罰款應由系統計算並 | |
| 執行。 |
範例使用案例:從大學圖書館借書
| 使用案例名稱 | 借書 |
|---|---|
| 使用案例編號 | UC001 |
| 主要參與者 | 學生 |
| 次要參與者 | 圖書館員,圖書庫存系統 |
| 前置條件 | – 學生持有有效的圖書館卡。 |
| – 此書在圖書館的庫存中可取得。 | |
| 後置條件 | – 此書在系統中標示為已借出。 |
| – 學生已持有此書。 | |
| 主要流程 | 1. 描述: 學生想要借一本 |
| 書籍來自大學圖書館。 | |
| 2. 參與者動作: | |
| – 學生將其圖書證交給 | |
| 圖書館員。 | |
| – 圖書館員掃描圖書證以 | |
| 驗證其有效性。 | |
| – 學生提供欲借閱圖書的書名或國際標準書號(ISBN) | |
| 他們希望借閱的書籍。 | |
| – 圖書館員在圖書館目錄中搜尋該書 | |
| 以查找該書。 | |
| – 圖書館員確認該書是否可借。 | |
| – 圖書館員將該書借給學生 | |
| 。 | |
| – 學生拿取書籍並離開圖書館 | |
| 。 | |
| 3. 系統動作: | |
| – 系統驗證圖書證的有效性。 | |
| – 系統將書籍狀態更新為 | |
| 「已借出」。 | |
| – 系統記錄書籍的歸還日期 | |
| 。 | |
| – 系統為該交易產生收據 | |
| 。 | |
| 4. 替代流程: | |
| – 若學生的圖書證無效,圖書館員將通知學生,使用案例結束。 | |
| 圖書館員將通知學生,使用案例結束。 | |
| 使用案例結束。 | |
| – 若所要求的書籍不可用,圖書館員將通知學生,使用案例結束。 | |
| 圖書館員將通知學生,使用案例結束。 | |
| 使用案例結束。 | |
| 擴展 | – 如果學生有逾期圖書,系統會發送通知 |
| 給學生。 | |
| – 如果學生想要續借書籍,他們可以 | |
| 透過圖書館網站申請續借。 | |
| 特殊需求 | – 系統應具備安全的圖書館卡持有人資料庫。 |
| 圖書館卡持有人。 | |
| – 逾期日期與罰款應由系統計算並執行。 | |
| 由系統執行。 |
上述表格以結構化且有條理的方式呈現用例範本與範例,使閱讀與理解用例的關鍵要素更加容易。
用例的細粒度
用例細粒度定義:用例細粒度指的是用例規格中細節與組織程度。它本質上描述了在記錄用例時,如何將系統功能細分。簡單來說,它涉及將用例分解為較小部分或步驟的程度。
用例細粒度的重要性:
- 溝通增強:用例細粒度在改善軟件專案中不同利益相關者(如業務分析師、開發人員、測試人員和最終用戶)之間的溝通方面扮演著關鍵角色。當用例定義明確且細粒度恰當時,各方都能更清楚地理解系統功能與需求。
- 專案規劃:用例的細粒度層級會影響專案規劃。較小且更細緻的用例能讓開發任務所需時間與努力的估算更為容易。這有助於專案經理制定更準確的專案時程與資源配置。
- 清晰與精確:達成適當的細粒度層級,可確保用例清晰且精確。若用例過於高階與抽象,可能缺乏有效開發所需的必要細節。相反地,過於詳細的用例可能變得難以掌控與管理。
範例:讓我們以電商應用程式中的「使用者註冊」功能為例,說明用例細粒度:
- 高細粒度:一個命名為「使用者註冊」的單一用例,涵蓋從開始到結束的整個註冊流程。它包含所有步驟,例如輸入個人資料、建立密碼、確認密碼,以及提交註冊表單。
- 中等細粒度:用例被劃分為更小且更專注的部分。例如,「輸入個人資料」、「建立密碼」和「提交註冊」可分別作為獨立的用例。每個用例專注於使用者註冊的特定方面。
- 低細粒度:最低層級的細粒度可能涉及將單一步驟中的動作進一步拆解。例如,「輸入個人資料」可進一步分解為「輸入名字」、「輸入姓氏」、「輸入電子郵件地址」等。
適當的細節層級取決於專案需求以及利害關係人的具體需求。找到適當的平衡點至關重要,以確保使用案例能夠被理解、易於管理,並有效傳達系統功能給所有相關方。
在他的書《撰寫有效的使用案例》中,艾拉斯泰爾·科本提供了一個簡單的類比,幫助我們想像目標達成的不同層級。他建議使用海洋的類比來思考這些層級

參考資料:











