de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

PlantUML 用例圖指南

簡介

使用 案例 圖表 提供 一個 清晰 方式 以 描述 如何 使用者, 外部 系統, 以及 其他 參與者 互動 與 一個 軟體 系統。 它們 協助 團隊 定義 系統 範圍, 識別 功能 需求, 並 溝通 預期 行為 在 實作 開始前。

PlantUML 使 用例 建模 實用 實用 透過 一個 基於文字的 語法 其 可 被 儲存, 檢視, 版本控制, 並 重新生成 與 專案 文件 或 來源 程式碼。 透過 一些 幾個 指令, 您 可以 定義 參與者, 使用 案例, 系統 邊界, 關聯, <<包含>> 關係, <<擴展>> 關係, 泛化, 備註, 和 佈局 偏好設定。

本 指南 說明 關鍵 關鍵 PlantUML 使用 案例 記號 顯示 於 該 參考 工作表 並 展示 如何 來 應用 它 在 現實的 範例。 它 也 介紹 一個 更廣泛的 工具鏈 工作流程 使用 視覺 範式 UML, AI 輔助 建模, 以及 VPasCode。 結合起來, 這些 工具 支援 一個 完整的 流程: 將 需求 轉化為 一個 初步的 模型, 驗證 UML 關係, 精煉 該 圖表, 並 維護 該 最終 模型 為 易讀的 圖表 來源。

圖表顯示一個 PlantUML 使用案例模型,其中包含顧客與管理員參與者,與結帳與追蹤訂單等系統功能互動。UML 使用案例圖描述外部使用者或系統如何與系統互動。它著重於系統做什麼,而非其實現方式。

PlantUML 讓您使用簡單的文字標記來建立使用案例圖。

1. PlantUML 基本結構

每個 PlantUML 圖表都以@startuml 開始,並以@enduml.

註解以單引號開頭:

您也可以使用多行註解:

2. 定義參與者

參與者代表與您的系統互動的人、角色、組織、裝置或外部系統。

基本參與者

這會建立一個名為 的簡筆畫參與者使用者.

具有別名的參與者

當顯示的名稱包含空格,或您希望為關聯使用較短的識別碼時,別名非常有用。

接著您可以引用這些別名:

使用不同視覺樣式的參與者

PlantUML 支援多種參與者樣式。預設樣式通常已足夠,但您也可以使用圖示樣式的參與者:

您也可以使用純矩形樣式的參與者:

確切的外觀取決於 PlantUML 渲染引擎和皮膚參數。

3. 定義使用案例

使用案例代表系統所提供的服務、目標或功能。

基本使用案例

PlantUML 將此渲染為標註為 的橢圓形登入.

帶有別名的使用案例

可見的標籤為 處理信用卡付款,而ProcessPayment用於關聯中。

多行用例名稱

您可以使用以下內容插入換行:n:

當圖表包含長標籤時,這很有用。

4. 系統邊界

系統邊界將屬於特定系統的用例分組。

rectangle "線上購物系統" {
    usecase "瀏覽產品" 作為 Browse
    usecase "結帳" 作為 Checkout
}

矩形代表系統,其內部的用例代表該系統所提供的功能。

您也可以為邊界使用具名的別名:

rectangle "線上購物系統" as OnlineStore {
    usecase "瀏覽商品" as Browse
    usecase "結帳" as Checkout
}

在區分系統行為與外部參與者及服務時,系統邊界非常有用。

5. 連接參與者與用例

關聯顯示參與者參與或與某個用例互動。

無向關聯

這會建立一條沒有箭頭的實線。

定向關聯

這會建立一條實線,其箭頭指向用例。

這兩種形式都很常見。箭頭方向應根據您想要強調的溝通或責任保持一致地選擇。

帶有標籤的關聯

標籤描述該互動。

為了獲得更易讀的佈局,您可以使用更長的箭頭:

6. 該<<include>>關聯

一個包含關聯表示一種行為,該行為是始終必需的由另一個使用案例所要求。

例如,下訂單可能始終需要驗證付款:

方向至關重要:

基礎使用案例 ..> 包含的使用案例 : <<包含>>

箭頭從需要該行為的使用案例指向提供可重用行為的使用案例。

範例

usecase "結帳" as Checkout
usecase "驗證客戶資料" as ValidateCustomer
usecase "計算訂單總額" as CalculateTotal
usecase "進行付款" as MakePayment

Checkout ..> ValidateCustomer : <<include>>
Checkout ..> CalculateTotal : <<include>>
Checkout ..> MakePayment : <<include>>

這表示:

  1. 結帳流程一定會驗證客戶資料。

  2. 結帳流程一定會計算訂單總額。

  3. 結帳流程一定會執行付款。

使用 <<include>> 當被包含的行為是強制性或可重複使用時。

7. 該<<extend>>關聯

一個擴展關聯代表添加到基本用例中的可選、條件性或例外行為。

例如,僅當顧客持有有效優惠券時,才可能應用折扣:

方向為:

可選的擴展用例 ..> 基本用例:<<extend>>

箭頭從可選行為指向至基本用例.

正確範例

usecase "結帳" 作為 Checkout
usecase "套用折扣優惠券" 作為 ApplyDiscount

ApplyDiscount ..> Checkout : <<extend>>

這表示套用折扣優惠券可選地擴展結帳 流程。

包含與擴展之比較

關係 目的 箭頭方向
<<包含>> 強制性可重用的行為 基本使用案例 → 包含的使用案例
<<擴展>> 選填性或條件式行為 擴展的使用案例 → 基本使用案例

範例:

避免反轉這些關係,因為方向會改變其含義。

8. 用例泛化

泛化顯示一個用例是另一個用例的專門形式。

usecase "搜尋產品" as SearchProducts
usecase "瀏覽產品" as BrowseProducts

SearchProducts -|> BrowseProducts

空心三角形指向更通用的使用案例。

這表示搜尋產品是 的專用變體瀏覽產品.

一般化比 較不常見包含 與 延伸,因此僅在使用案例之間存在真實的父子關係時才使用它。

9. 參與者一般化

參與者之間也可以存在一般化關係。

這表示高級客戶是客戶的一種專門類型,並繼承一般參與者的互動。

例如:

10. 註解與註記

註解為圖形添加說明或限制。

附著於使用案例的註解

其他位置包括:

註解位於 Checkout 左側
  面向顧客的流程
end note

註解位於 Checkout 上方
  主要業務工作流程
end note

註解位於 Checkout 下方
  包含付款處理
end note

簡短註解語法

帶有別名的獨立註解

以虛線將註記連接到某個元素:

關於限制條件的註記

註記對於記錄條件很有用:

註解位於 ApplyDiscount 右側
  可選行為:
  僅在提供有效
  優惠券時使用。
結束註解

11. 佈局方向

預設情況下,PlantUML 會自動選擇佈局。您可以影響方向。

由左至右佈局

這對於用例圖通常很有用,因為參與者出現在左側,而外部系統出現在右側。

由上至下的佈局

這對於緊湊的圖形或垂直組織的工作流程可能很有用。

不可見的佈局連結

不可見的連結可以影響位置設定,而不會顯示可見的關係:

這對於改善圖表佈局很有用。

12. 圖表樣式設定

移除陰影

使用矩形套件與邊界

設定顏色

skinparam usecase {
    BackgroundColor #FDFDFD
    BorderColor #333333
}

skinparam actor {
    BorderColor #333333
}

設定箭頭顏色

設定預設字體大小

完整的樣式區塊可能如下所示:

skinparam shadowing false
skinparam packageStyle rectangle
skinparam actorStyle awesome
skinparam defaultFontSize 14

skinparam usecase {
    BackgroundColor #F9FBFF
    BorderColor #234
}

skinparam ArrowColor #555555

13. 套件與分組

套件可將相關的用例分組。

package "客戶功能" {
    usecase "註冊帳戶" as Register
    usecase "登入" as Login
    usecase "瀏覽產品" as Browse
}

package "管理功能" {
    usecase "管理產品" as ManageProducts
    usecase "產生銷售報告" as SalesReport
}

當圖表包含許多使用案例時,套件會很有幫助。

您也可以使用矩形作為群組:

rectangle "訂單管理" {
    usecase "下訂單" as PlaceOrder
    usecase "追蹤訂單" as TrackOrder
    usecase "取消訂單" as CancelOrder
}

14. 外部系統

外部應用程式或服務可以表示為參與者。

actor "付款閘道" as PaymentGateway
actor "電子郵件服務" as EmailService
actor "外部 CRM" as CRM

將它們連接到系統使用案例:

這清楚地區分了系統功能與系統邊界之外的服務。

15. 完整範例

下列範例整合了參考表中的主要符號。

完整的 VPasCode PlantUML 範例,顯示包含參與者、關聯與註解的線上購物系統使用案例圖。

@startuml
title 線上購物系統 - 使用案例圖

left to right direction

skinparam shadowing false
skinparam packageStyle rectangle
skinparam actorStyle awesome

skinparam usecase {
    BackgroundColor #F9FBFF
    BorderColor #333333
}

skinparam ArrowColor #555555

' 參與者
actor 顧客 as customer
actor "高級顧客" as premium
actor 管理員 as admin
actor "金流閘道" as payment
actor "電子郵件服務" as email

' 參與者泛化
premium -|> customer

' 系統邊界
rectangle "線上購物系統" {

    ' 顧客使用案例
    usecase "註冊帳號" as Register
    usecase "登入" as Login
    usecase "瀏覽商品" as Browse
    usecase "搜尋商品" as Search
    usecase "檢視商品詳情" as ViewProduct
    usecase "將商品加入購物車" as AddToCart
    usecase "檢視購物車" as ViewCart
    usecase "結帳" as Checkout
    usecase "下單" as PlaceOrder
    usecase "追蹤訂單" as TrackOrder
    usecase "取消訂單" as CancelOrder

    ' 共用包含行為
    usecase "驗證顧客資料" as ValidateCustomer
    usecase "計算訂單總額" as CalculateTotal
    usecase "進行付款" as MakePayment
    usecase "發送訂單確認" as SendConfirmation

    ' 可選行為
    usecase "套用折扣優惠券" as ApplyDiscount
    usecase "申請退費" as RequestRefund

    ' 管理員使用案例
    usecase "管理商品" as ManageProducts
    usecase "產生銷售報表" as SalesReport
}

' 參與者關聯
customer --> Register
customer --> Login
customer --> Browse
customer --> Search
customer --> ViewProduct
customer --> AddToCart
customer --> ViewCart
customer --> Checkout
customer --> TrackOrder
customer --> CancelOrder

premium --> ApplyDiscount
premium --> RequestRefund

admin --> ManageProducts
admin --> SalesReport

payment --> MakePayment
email --> SendConfirmation

' 包含關係
Checkout ..> ValidateCustomer : <<include>>
Checkout ..> CalculateTotal : <<include>>
Checkout ..> PlaceOrder : <<include>>

PlaceOrder ..> MakePayment : <<include>>
PlaceOrder ..> SendConfirmation : <<include>>

' 延伸關係
ApplyDiscount ..> Checkout : <<extend>>
RequestRefund ..> CancelOrder : <<extend>>

' 使用案例泛化
Search -|> Browse

' 註解
note right of Checkout
    主要顧客購買流程
end note

note right of ApplyDiscount
    可選行為:
    僅在擁有有效
    優惠券時使用
end note

note bottom of MakePayment
    付款由外部
    金流閘道處理
end note

@enduml

線上購物系統的 PlantUML 使用案例圖,顯示顧客、管理員與金流閘道參與者與系統功能互動。

16. 閱讀完整範例

此圖傳達以下資訊:

  • 顧客可以瀏覽商品、將商品加入購物車並結帳。

  • 高級顧客是 的專業化形式顧客.

  • 結帳 始終包含顧客驗證、總額計算和訂單下達。

  • 下達訂單 始終包含付款和確認。

  • 套用折扣優惠券 為選填項目,並會延長結帳流程。

  • 申請退費 為取消作業的選填延伸項目。

  • 金流閘道負責處理付款作業。

  • 電子郵件服務會發送訂單確認訊息。

  • 管理員負責管理商品並產生報表。

17. 常見錯誤

撤銷 包含

不正確:

正確:

基本用例指向所需的包含行為。

反轉延伸

不正確:

正確:

可選的擴展用例指向基本用例。

使用include用於可選行為

如果行為僅在特定條件下發生,請使用<<extend>>:

如果總是發生,請使用<<include>>:

將外部參與者置於系統邊界內

外部使用者與服務通常應位於矩形之外:

建立過度詳細的使用案例

使用案例應描述有意義的使用者目標,例如:

除非某個小型實作步驟會被重複使用、為可選項目,或對模型至關重要,否則避免將其轉化為獨立的用例。

18. 最小實用範本

對於較小的圖表,請使用此範本:

VPasCode 介面顯示 PlantUML 程式碼,產生包含參與者、系統邊界與關聯的最小化使用案例圖。

@startuml

left to right direction

actor User

rectangle "My System" {
    usecase "主要使用者目標" as MainGoal
    usecase "必要共用行為" as SharedBehavior
    usecase "可選行為" as OptionalBehavior
}

User --> MainGoal

MainGoal ..> SharedBehavior : <<include>>
OptionalBehavior ..> MainGoal : <<extend>>

note right of MainGoal
    主要系統功能
end note

@enduml

最小化 PlantUML 使用案例範本,顯示使用者、系統邊界,以及延伸、包含等關聯與註解。

此範本包含基本標記:

  • 參與者

  • 系統邊界

  • 使用案例

  • 關聯

  • 包含

  • 擴展

  • 註解

  • 佈局方向

工具:Visual Paradigm UML、AI 與 VPasCode

PlantUML 非常適合以文字形式建立圖表,但視覺化建模工具能讓相同的工作流程更便於審查、修訂與分享。Visual Paradigm 提供 UML 建模功能,搭配 AI 輔助建模與基於文字的 VPasCode 工作區。其平台支援標準 UML 圖表,包括使用案例、類別、序列、活動、元件、部署、狀態機、套件與物件圖表。

Visual Paradigm UML 建模

當您希望以視覺化方式建立使用案例圖,而非手動撰寫所有語法時,可使用 Visual Paradigm。典型工作流程如下:

  1. 建立 UML 專案。

  2. 新增使用案例圖表。

  3. 將參與者與使用案例放置於畫布上。

  4. 繪製系統邊界。

  5. 將參與者連接到使用案例。

  6. 新增 包含, 延伸以及泛化關係。

  7. 新增註解與限制。

  8. 排列並匯出完成的圖表。

當利害關係人需要互動式審查圖表時,視覺化建模特別有用。團隊成員可以檢視符號、討論特定元素,並協同標註圖表。

手動建立的使用案例圖表可能包含:

  • 參與者,例如 客戶, 管理員,以及 支付閘道

  • 系統邊界,例如 線上購物系統

  • 使用案例,例如 結帳, 下訂單,以及 追蹤訂單

  • <<include>> 用於強制性可重用行為的關係

  • <<extend>> 用於可選行為的關係

  • 用於專業化參與者或使用案例的泛化關係

視覺模型應保留 PlantUML 中使用的相同語義規則:

Checkout ..> ValidatePayment : <<include>>
ApplyDiscount ..> Checkout : <<extend>>
PremiumCustomer -|> Customer

重要的區別在於,更換工具不會改變 UML 的含義。無論圖表是手繪、由 AI 生成,還是用 PlantUML 編寫,關係的方向都必須保持正確。

AI 輔助建模

Visual Paradigm 的 AI 功能可協助將自然語言需求轉換為模型元素和圖表。該平台將其 AI 功能描述為能夠將需求轉化為圖表,並根據文字描述生成軟體開發產出物。

例如,您可以提供以下需求:

為線上購物系統建立一個使用案例圖。

參與者:
- 客戶
- 高級客戶
- 管理員
- 支付閘道
- 電子郵件服務

客戶可以註冊、登入、瀏覽商品、將商品加入購物車、
結帳、追蹤訂單以及取消訂單。

結帳必須包含客戶驗證、總額計算、付款
以及訂單確認。

套用折扣優惠券為可選項目,並擴展結帳流程。
高級客戶是客戶的一種特殊類型。

AI 輔助工具可能會利用此描述提出以下內容:

  • 參與者定義

  • 使用案例名稱

  • 系統邊界

  • 關聯

  • 包含的使用案例

  • 擴展的使用案例

  • 參與者泛化

  • 描述業務規則的註解

AI 在首次建模階段最為有用。它能快速根據需求產生草稿、識別候選參與者,並建議可重用的行為。產生的模型仍應由開發人員、分析師或領域專家進行審查。

建議的 AI 審查清單

產生圖表後,請驗證:

  • 每個參與者都位於系統邊界之外。

  • 每個使用案例都描述了一個有意義的使用者目標或系統服務。

  • 強制性可重用行為使用 <<include>>.

  • 可選或條件式行為使用 <<extend>>.

  • 「include」箭頭由基礎使用案例指向被包含的使用案例。

  • 「擴展箭頭從擴展用例指向基礎用例。

  • 泛化箭頭指向更一般的參與者或用例。

  • 已移除重複或過於詳細的用例。

  • 名稱一致地以動詞短語形式表達。

  • 該圖表清晰地傳達了系統範圍。

VPasCode:以文字進行建模

VPasCode 在 Visual Paradigm 生態系統中提供了一個文字轉圖形的作業空間。官方平台將其描述為一個免費的文字轉圖形線上編輯器,同時也將其呈現為將程式碼轉換為圖形的方式。

這使得 VPasCode 對於偏好程式碼即圖形之精確性與可重複性,同時仍希望在視覺化建模環境中工作的使用者來說非常有用。

PlantUML 用例圖可以如下撰寫:

VPasCode 介面顯示 PlantUML 文字編輯器,旁邊並列已產生的線上購物系統使用案例圖。

@startuml
標題:線上購物系統

方向:由左至右

參與者 Customer 作為 customer
參與者「高級客戶」作為 premium
參與者 Administrator 作為 admin
參與者「支付閘道」作為 payment
參與者「電子郵件服務」作為 email

premium -|> customer

矩形「線上購物系統」{
    用例「註冊帳號」作為 Register
    用例「登入」作為 Login
    用例「瀏覽商品」作為 Browse
    用例「結帳」作為 Checkout
    用例「下訂單」作為 PlaceOrder
    用例「追蹤訂單」作為 TrackOrder
    用例「取消訂單」作為 CancelOrder

    用例「驗證客戶資料」作為 ValidateCustomer
    用例「計算訂單總額」作為 CalculateTotal
    用例「進行付款」作為 MakePayment
    用例「發送訂單確認」作為 SendConfirmation

    用例「套用折扣優惠券」作為 ApplyDiscount
    用例「申請退費」作為 RequestRefund

    用例「管理商品」作為 ManageProducts
}

customer --> Register
customer --> Login
customer --> Browse
customer --> Checkout
customer --> TrackOrder
customer --> CancelOrder

premium --> ApplyDiscount
premium --> RequestRefund

admin --> ManageProducts
payment --> MakePayment
email --> SendConfirmation

Checkout ..> ValidateCustomer : <<include>>
Checkout ..> CalculateTotal : <<include>>
Checkout ..> PlaceOrder : <<include>>

PlaceOrder ..> MakePayment : <<include>>
PlaceOrder ..> SendConfirmation : <<include>>

ApplyDiscount ..> Checkout : <<extend>>
RequestRefund ..> CancelOrder : <<extend>>

@enduml

線上購物系統的 PlantUML 使用案例圖,顯示顧客、管理員與金流閘道等參與者與系統功能互動。

同一模型可以透過多種方式進行精進:

  • 使用「由左至右的方向」變更佈局方向。.

  • 新增註解以說明業務規則。

  • 將使用案例分組至套件中。

  • 使用「skinparam」新增樣式。.

  • 重新命名別名,但不變更可見標籤。

  • 將圖表原始碼納入版本控制。

  • Whenever the model changes, regenerate the diagram.

視覺化建模 versus 圖表即程式碼

方法 最適合用於 主要優勢 主要限制
Visual Paradigm UML 互動式建模與利害關係人工作坊 直接操作與視覺審查 變更作為文字可能較難比較
AI 輔助建模 根據需求草擬模型 快速識別候選元素 生成的關聯需要驗證
VPasCode 與 PlantUML 可重複的文字式建模 易於版本控制、審查與重新生成 需要熟悉語法
整合工作流程 專業分析與開發 結合速度、精準度與協作 需要檢查不同表示法之間的一致性

一種實用的整合工作流程

高效的工作流程是讓每項工具處理其最擅長的任務:

  1. 以自然語言捕捉需求。
    描述使用者、目標、系統範圍與業務規則。

  2. 使用人工智慧建立初始模型。
    請人工智慧識別參與者與使用案例,然後生成初稿。

  3. 在 Visual Paradigm UML 中檢視初稿。
    檢查模型是否準確反映領域,以及圖表是否易於理解。

  4. 將模型匯出或重寫為 PlantUML 格式。
    使用別名、一致的名稱以及明確的關係語法。

  5. 將原始碼維護在 VPasCode 或版本控制系統中。
    儲存.puml檔案與專案文件或原始碼一併儲存。

  6. 驗證 UML 語意。
    請特別注意include, extend以及泛化方向。

  7. 發布最終圖形。
    將其匯出為影像或文件,用於需求、架構、設計審查及專案文件。

用於產生 PlantUML 使用案例圖的提示

以下提示可與 AI 建模助理搭配使用:

聊天機器人介面顯示已產生的線上購物系統 PlantUML 使用案例圖,包含顧客與管理員參與者。

為線上購物系統產生一個 PlantUML 使用案例圖。

採用由左至右的版面配置,並將所有系統使用案例置於名為「線上購物系統」的矩形框內。

參與者:
- 顧客
- 高級顧客
- 管理員
- 金流閘道
- 電子郵件服務

顧客的使用案例:
- 註冊帳號
- 登入
- 瀏覽商品
- 將商品加入購物車
- 結帳
- 追蹤訂單
- 取消訂單

結帳必須包含:
- 驗證顧客資料
- 計算訂單總額
- 下單

下單必須包含:
- 進行付款
- 發送訂單確認

可選行為:
- 套用折扣優惠券 extends 結帳
- 申請退費 extends 取消訂單

高級顧客是顧客的專化。

使用標準的 PlantUML 語法,並包含:
- 參與者別名
- 使用案例別名
- 系統邊界
- 參與者關聯
- <<include>> 關係
- <<extend>> 關係
- 參與者泛化
- 至少一則說明註解

請確保 include 箭頭從基礎使用案例指向被包含的使用案例,
而 extend 箭頭從可選的擴展使用案例指向基礎使用案例。

VPasCode 介面顯示線上購物系統使用案例圖的 PlantUML 程式碼,並列其視覺化呈現。

線上購物系統的 PlantUML 使用案例圖,顯示顧客、管理員與高級顧客參與者與結帳與下單等系統功能互動。

重點摘要

Visual Paradigm UML 非常適合互動式建模與審查,AI 可加速從需求到初稿的轉換,而 VPasCode 搭配 PlantUML 則提供可重複的基於文字的作業流程。三者結合使用,可支援完整的建模生命週期:描述需求、產生初稿、驗證 UML、修訂原始內容,並發布可維護的圖表。