用例圖是統一建模語言(UML)中的一個關鍵組成部分,提供用戶(參與者)與系統之間互動的視覺化表示。本指南將涵蓋用例圖的關鍵概念、組成部分和用途,幫助您理解並有效運用它們進行系統建模。

用例圖的目的
用例圖用於模擬系統、子系統或類的行為,展示系統在其環境中提供的外顯服務。它們捕捉系統的功能需求,有助於理解用戶如何與系統互動以及他們對系統的期望。用例圖從特定視角呈現外部代理(稱為參與者)與主體(例如系統)互動時所感知的主體功能。
用例
定義與特徵
用例代表用戶(參與者)希望透過系統達成的功能單元或目標。它描述系統執行的一系列動作,以產生對參與者具有價值的可觀察結果。主要特徵包括:
- 以目標為導向:每個用例代表某個用戶希望系統協助達成的目的或目標。
- 操作:用例可視為由外部用戶觸發的操作。
- 行為模型:用例是系統行為模型的一部分,通常被視為系統上的操作。
- 情境:用例可以是多組序列的描述,其中每個序列代表所有變異中的一種可能流程。每個序列稱為一個情境。
- 分類器:用例是一種分類器,因此可以具有屬性和操作,類似於類。
範例
在電子商務系統中,一個用例可能是「下訂單」,描述客戶下訂單時執行的一系列動作,包括將商品加入購物車、輸入付款資訊以及確認訂單。
參與者
定義與特徵
參與者代表與系統互動的使用者或外部實體(例如另一個系統)。參與者啟動用例。主要特徵包括:
- 外部實體:參與者本身並非系統的一部分。
- 角色:參與者代表角色,而非特定個人或職稱。
- 泛化:參與者可以被泛化或特化。當參與者被特化時,所有特化參與者都可以參與與一般參與者相同的用例。
- 類型:參與者可以是人類、其他電腦系統或程序。
範例
在圖書館管理系統中,參與者可能包括「圖書館員」、「會員」以及「外部系統」(例如書籍供應商)。
主題
主題是一種分類器,向參與者提供用例。它通常是系統或子系統。一個用例可以有許多主題。主題以一個方框表示,名稱和可選的樣式標記位於左上角。
範例
在銀行系統中,主題可能是「銀行系統」,它向參與者如「客戶」和「銀行櫃員」提供「提款」、「存款」和「轉帳」等用例。
關係
用例與參與者之間透過關係相連,包括:
關聯
關聯表示參與者與用例之間的通信路徑。參與者與用例之間的關聯表示雙方彼此進行通信。
泛化
泛化表示一般用例與較具體用例之間的關係。它以實線搭配三角形箭頭繪製,類似於類別的泛化。
包含
包含用於將多個用例之間共用的行為提取為一個獨立的用例。包含關係以帶有關鍵字「包含」的虛線箭頭表示,箭頭從基本用例指向被包含的用例。
擴展
擴展用於向基本用例添加可選或條件性行為。擴展關係以帶有關鍵字「擴展」的虛線箭頭表示,箭頭從擴展指向基本用例。
範例
在線上購物系統中,用例「結帳」可能包含用例「驗證付款」,而用例「加入購物車」可能擴展用例「瀏覽商品」。
符號
用例
用例以橢圓形表示,其名稱位於內部或下方。
參與者
參與者以人形圖示或帶樣式標記的類別方框表示。
主題
主題通常以矩形表示。
範例

圖表標頭
圖表標頭的類型通常是「pkg」,但其他命名空間容器如「class」和「component」也是可能的。
簡化用例
可以使用泛化、包含和擴展等技術來簡化複雜的用例。
命名規則
- 動詞片語: 用例名稱應使用現在式動詞片語,以表明參與者的目標。
- 避免使用名詞: 避免使用名詞或分詞形式,並避免使用已完成的行為。
- 參與者術語: 使用參與者的術語,避免使用術語或實作概念。
- 簡單用語: 使用簡單且明確的用語,讓每個人都能理解。
- 目標陳述: 一個有用的技巧是在目標前加上「O 系統,請幫我……」這類詞語。
範例
在專案管理系統中,用例可能命名為「建立工作」,而非「工作建立」。
用例範本
雖然來源中並未明確指定正式的「用例範本」,但以下項目通常會被記錄於用例中:
- 名稱: 用動詞片語描述參與者想要達成的目標。
- 參與者: 與用例互動的使用者或外部實體。
- 主題: 提供功能的系統或子系統。
- 描述: 用例的文字描述。
- 事件流程: 描述用例何時開始與結束、執行步驟、用例的行為、與參與者的互動方式,以及交換的資訊。
- 情境: 用例的具體範例或變體。
- 關係: 用例與其他用例之間的關係(包含、延伸、泛化)。
- 前置條件與後置條件:定義用例執行前後的狀態。
- 擴展點:基本用例中可發生擴展的特定點。
範例
用例:下訂單
| 欄位 | 描述 |
|---|---|
| 名稱 | 下訂單 |
| 參與者 | 顧客 |
| 主題 | 電子商務系統 |
| 描述 | 顧客透過將商品加入購物車、輸入付款資訊並確認訂單來下訂單。 |
| 事件流程 | 1. 顧客瀏覽商品。 2. 顧客將商品加入購物車。 3. 顧客輸入付款資訊。 4. 顧客確認訂單。 5. 系統處理付款並確認訂單。 |
| 情境 | – 成功下訂單。 – 付款失敗。 – 商品缺貨。 |
| 關係 | 包含「驗證付款」,延伸「瀏覽商品」。 |
| 前置條件 | 顧客必須已登入。 |
| 後置條件 | 訂單已確認,付款已處理。 |
用例實例
用例實例是從參與者實例發出的訊息所觸發的用例執行。用例實例可能遵循由擴展或包含關係關聯的其他用例。用例實例可以具有屬性和操作,以表示執行進度及對系統的影響。
圖示用途
用例圖通常在分析階段使用,以捕捉系統的功能需求。它們可用於建模系統的上下文,或用於建模系統的需求。
與其他圖示的關係
可以用其他UML圖示(如順序圖、狀態機圖或通訊圖)來詳細描述用例。順序圖、合作圖和活動圖可用於展示用例的行為以及系統與參與者之間的互動。
正向與逆向工程
雖然用例圖並未指定系統的實現方式,也不能直接進行正向或逆向工程,但可以根據其事件流程生成測試腳本,用於測試。
套件
用例通常被組織成套件。建議建立以用例為導向的套件,即為每個參與者建立一個套件,並將相關的用例和類放入每個套件中。套件也可根據系統架構分為不同層次。
範例
在醫療系統中,套件可能包括「病人管理」、「預約排程」和「計費」,每個套件都包含相關的用例和類。
結論
用例圖是從使用者觀點建模和理解系統行為的寶貴工具。透過運用這些元素和概念,您可以建立全面且有效的用例圖,作為系統設計與開發的基礎。無論您是設計新系統、記錄現有系統,還是向利益相關者傳達設計理念,用例圖都能提供所需的清晰度與細節,以確保成功成果。
參考資料
- 什麼是用例圖?
- 本文介紹用例圖,說明其目的與主要組成部分,並包含範例以闡明所討論的概念。20.
- 用例圖教學
- 一份全面的教學,涵蓋用例圖的基本知識,包括如何建立用例圖以及何時使用它們。同時提供範例與有效繪製用例圖的技巧。21.
- 用例圖範本
- 此資源提供免費的線上用例圖範本與範例,使用者可透過直覺式的線上圖示軟體建立專業的用例圖。22.
- 線上用例圖工具
- Visual Paradigm Online 提供易於使用的線上UML圖示製作工具,並提供豐富的可自訂用例圖範例,幫助使用者快速上手。23.
- SysML:使用用例圖識別用戶需求
- 本指南說明如何使用SysML用例圖來識別和記錄用戶需求。其中包含範例以說明所討論的概念24.
- 免費用例圖工具
- 一款免費的線上用例圖工具,支援UML、ERD及組織圖。使用者可透過直覺的UML繪圖編輯器快速繪製用例圖25.
- 用例圖全面教程 – Cybermedian
- 本教程提供一份詳細指南,說明如何建立和理解用例圖,並以Wheels自行車租賃系統為範例26.
- 用例圖,UML圖示範例:商業用例圖範例 – Visual Paradigm社群圈
- 本文提供一個商業用例圖的範例,說明如何利用商業用例圖來呈現組織整體所提供的功能27.
- 用例 — 透過範例學習 – Cybermedian
- 此資源提供用例圖的範例,說明如何定義用例之間的關係,以及軟體分析中所涉及的決策過程28.












