如何使用 PlantUML 製作使用案例圖

如何使用程式碼建立清晰、實用的類別圖?透過範例、語法技巧和專家建議,學習如何使用 PlantUML 建立類別圖。

EdrawMax
EdrawMax Apr 30, 26
分享:
banner-product

透過本指南快速掌握使用案例圖和 PlantUML。它分解了使用案例圖的組成元素、PlantUML 功能,並教授編碼來建立圖表,加上範例步驟——非常適合整理系統互動從基礎到實作。

超越基礎知識,本資源也解決了使用案例圖繪製的常見難題。透過 PlantUML 語法、清晰步驟和實際案例,對於開發和溝通來說非常寶貴。立即深入了解並開始應用!

本文內容
  1. 什麼是使用案例圖?
  2. 什麼是 PlantUML?
  3. 使用案例圖的基本 PlantUML 語法
  4. 使用 PlantUML 建立使用案例圖的步驟
  5. 實用範例
  6. 何時考慮替代方案
  7. 結語

什麼是使用案例圖?

使用案例圖可協助您顯示參與者與系統之間的連結。它分解了可能的動作以及誰可以執行它們。當有某個動作時,我們稱之為使用案例。涉及該動作的人員或系統稱為參與者。

當您建立 PlantUML 使用案例圖時,您會撰寫一些程式碼來以視覺化方式呈現這些部分。它建立的圖片讓任何人都能輕鬆理解,無論他們是開發人員、客戶還是團隊成員。這樣一來,您就能了解事物的運作方式。

現在讓我們討論主要元件:

  • 參與者:使用軟體的人員或系統。
  • 使用案例:執行關鍵任務以運行系統的參與者稱為使用案例。
  • 關聯:參與者如何連結或與這些任務互動。

當您在規劃新功能或只是向團隊說明想法時,會發現這種圖表很有幫助。這是在開始編碼之前釐清任何疑惑的絕佳方式。

什麼是 PlantUML?

PlantUML 是一個免費的開源工具,讓您可以透過撰寫簡單的文字程式碼來建立圖表 而不是手動繪製它們。

主要功能

  • 基於文字的圖表

    您撰寫程式碼(例如 A -> B: Hello),PlantUML 會自動將其轉換為圖表(例如流程圖、UML 圖等)。

    不需要像 Visio 或 Lucidchart 這樣的拖放工具。

  • 支援多種圖表類型
    • UML 圖(類別圖、循序圖、使用案例圖等)
    • 流程圖
    • 心智圖
    • 網路圖
    • 甘特圖
  • 隨處可用

    可用於IDE(VSCode、IntelliJ), Confluence/Jira, GitHub/GitLab,甚至是獨立應用程式.

  • 容易學習

    使用簡單、人類可讀的語法。範例:

    @startumlAlice -> Bob: "Hi!"Bob --> Alice: "Hello!"@enduml 
  • 版本控制友善

    由於圖表是以文字撰寫的,您可以將它們儲存在Git 中並輕鬆追蹤變更。

使用案例圖的基本 PlantUML 語法

在我們討論建立完整圖表之前,了解 PlantUML 如何表示不同的事物會很有幫助。每個部分都有一種直接、易於遵循的撰寫方式。讓我們使用簡單的 PlantUML 語法和實際範例來說明如何定義參與者、使用案例以及它們之間的連結,讓事情更清楚。

參與者:

參與者是從外部與軟體互動的人員或系統,例如使用者或其他工具。

語法:
actor Customer

範例:

actor-plant-create-actor

如果有人從線上商店購物,請撰寫:
actor Buyer
這顯示購買者是系統的使用者。

使用案例:

使用案例從使用者的觀點顯示系統可以處理的任務。

語法:
usecase "Place Order"

範例:

cart-uml-create-cart-use-case

如果您在為商店撰寫:
usecase "add to cart"
這描述了您可以用系統做什麼。

關聯:

關聯連結參與者和使用案例,或將一個使用案例連結到另一個。

relation-ship-relationship-symbols
  • 關聯:您可以使用它來連結參與者和使用案例。

    語法:Customer --> (Checkout)

  • 包含:它有助於將共享行為加入基本使用案例:

    語法:(Checkout) ..> (Login) : <>

  • 擴充:您可以利用它來表示選擇性或條件性動作:

    語法:(Browse) ..> (Add to Wishlist) : <>

  • 泛化:使用它來收集類似的參與者:

    語法:
    User --|> Guest
    User --|> Member

使用 PlantUML 建立使用案例圖的步驟

一旦您知道要包含哪些元素,用程式碼繪製圖表就相當直接了。但在開始之前,制定計畫很重要。誰會使用這個系統?他們到底會做什麼?不同的部分如何連結?讓我們一起完成每個步驟,協助您建立清晰的 PlantUML 使用案例圖範例。

步驟 1識別系統的參與者

讓我們從列出所有與系統互動的人開始。將他們視為主要系統外部的人員,每個人都有其特定角色。

例如,在美食外送應用程式中,主要參與者是顧客、餐廳員工和外送騎士。

管理員也可以在保持一切順利運作方面發揮作用。

step-one-detect-actors
步驟 2識別系統支援的使用案例

從每個參與者的角度思考。他們需要系統做什麼?

寫下他們的主要任務。例如,顧客下訂單並追蹤他們的食物。

餐廳管理傳入的訂單,騎士配送食物,而管理員監控一切。

use-case-use-case-code
步驟 3定義參與者與使用案例之間的關聯

從將每個參與者連結到他們所做的事情開始。這有助於釐清誰負責每項任務。

對於不同參與者共享的事物,例如登入,請將這些連結到多個參與者。使用箭頭顯示從參與者到使用案例的方向。

只有在有助於更好地說明事情時,才加入包含或擴充。

relation-links-links-between-actors
步驟 4撰寫 PlantUML 程式碼

使用簡單的程式碼將您的想法轉化為清晰的圖表。只需使用純文字描述參與者及其動作即可。

以 @startuml 開始,並以 @enduml 結束。使用箭頭顯示連接,並將帶有空格的名稱放在雙引號內。

保持程式碼整潔有序,以便日後更容易理解。

code-comp-complete-code

PlantUML 程式碼:

@startumlleft to right directionskinparam packageStyle rectangleactor Customeractor "Restaurant Staff" as Restaurantactor "Delivery Rider" as Rideractor Adminrectangle "Online Food Delivery System" { Customer --> (Register) Customer --> (Login) Customer --> (Browse Menu) Customer --> (Place Order) Customer --> (Track Order) Restaurant --> (Login) Restaurant --> (Accept Order) Restaurant --> (Update Order Status) Rider --> (Login) Rider --> (View Assigned Orders) Rider --> (Mark as Delivered) Admin --> (Monitor Orders) Admin --> (Manage Users) (Place Order) --> (Login) : includes (Accept Order) --> (Login) : includes (View Assigned Orders) --> (Login) : includes}@enduml
步驟 5使用 PlantUML 工具呈現圖表

只需將您的程式碼貼到 PlantUML 工具中,圖表就會立即顯示出來。

您可以選擇線上編輯器、使用 IDE 中的外掛程式,或選擇桌面應用程式。選擇您覺得最方便的方式即可。

執行後,圖表會立即出現。無需等待,無需複雜的設定。

final-result-use-case-ready

實用範例

現在,我們將討論一個圖書館管理系統範例。我們也會提供用例圖的 PlantUML 語法。

範例 1確定參與者
  • 與其專注於名稱,不如思考角色會更好。
  • 使用者是借書的人,訪客只能搜尋和瀏覽,而圖書館員則處理所有管理任務。
  • 這些是您的系統應該識別和回應的主要角色。
librar-act-library-actors
範例 2圖書館管理系統的用例
  • 使用者借書和還書。訪客只能搜尋書籍。
  • 圖書館員讓一切順利運作並更新系統。
  • 專注於他們需要做什麼,而不是如何做。
user-lib-user-library
範例 3連結圖書館參與者和用例
  • 將每個參與者連接到他們的動作
  • 顯示誰做什麼。如果兩個參與者執行相同的功能,請將兩者都連結起來。
  • 使用箭頭使一切清楚明瞭。
link-lib-relationship-library
範例 4撰寫 PlantUML 程式碼
  • 確保使用清楚的參與者名稱和每個用例的特定標籤。
  • 保持版面配置簡單且一致,始終遵循相同的方向。
  • 追求易讀性。如果某個步驟依賴於另一個步驟,請加入連結將它們連接起來。
  • 別忘了遵循結構。您希望圖表看起來有條理且清晰。
code-comp-complete-code

PlantUML 程式碼:

@startumlactor User actor Guest actor LibrarianUser --> (Register) User --> (Login) User --> (Search Book) User --> (Reserve Book) User --> (Borrow Book) User --> (Return Book)Guest --> (Search Book)Librarian --> (Login) Librarian --> (Add Book) Librarian --> (Remove Book) Librarian --> (Issue Book) Librarian --> (Collect Return) Librarian --> (View Users)(Reserve Book) --> (Login) : <> (Borrow Book) --> (Login) : <> (Return Book) --> (Login) : <> (Add Book) --> (Login) : <> @enduml
範例 5產生用例圖
  • 貼上您的程式碼,工具會處理其餘部分。
  • 您會看到參與者和動作以清晰、易於理解的圖表形式呈現。
  • 如果標籤重疊或一切感覺太擁擠,您可以在程式碼中調整版面配置設定,使其看起來恰到好處。
library-res-library-management

何時考慮替代方案

PlantUML 對於熟悉編寫程式碼的開發人員來說是一個很棒的工具。但並非每個團隊都有相同的技能或偏好。如果輸入語法感覺像是障礙或拖慢您的工作,也許值得探索其他選項。讓我們來看看 PlantUML 的一些限制以及可能更適合您的視覺化替代方案。

PlantUML 的限制

PlantUML 是一個方便的工具,但它並不完美。有些人可能會覺得它有點慢、有時令人困惑,或者如果不熟悉編碼就難以使用。

  • 沒有視覺化編輯:PlantUML 沒有拖放功能,因此您需要為每個變更編寫程式碼。與具有視覺化編輯的工具相比,這可能會使快速編輯變得更慢。
  • 對新手困難:如果您是編碼新手,掌握語法可能需要一些時間。一開始,即使是簡單的圖表也可能看起來有點令人不知所措或困惑。
  • 手動調整版面配置:PlantUML 並不總是能完美對齊元素。有時,您需要透過反覆試驗來稍微調整它們的位置,以使一切看起來整齊。

試試簡單的圖形化介面工具

說實話——程式碼允許更多控制,但不一定總是有效率。當您有緊迫的截止日期或團隊成員沒有語法經驗時,這並沒有幫助。如果您的優先考量是快速效能或輕鬆編輯,那麼切換到基於圖形化介面的選項可能會為您節省數小時。這就是 EdrawMax 發揮作用的地方。

EdrawMax 透過提供內建的形狀庫(如參與者和用例)使 UML 圖表的工作變得簡單。您可以在同一畫面內視覺化地標記互動。與 PlantUML 不同,您可以將相關元素分組並套用為用例自訂的主題。這一切都無需處理語法或手動調整版面配置。

試用 App & 免費領取 500 AI Token
star icon

edraw-max-edrawmax-online

您會喜歡它的原因

  • 豐富的範本:探索多個針對不同用例的即用範本,從業務流程到 IT 系統。
  • 直覺的拖放介面:我們的拖放介面讓您只需點擊即可輕鬆添加參與者、用例和連接。無需編碼或手動排列一切。
  • 彈性匯出:完成後,以 PDF、PNG、SVG、Word 或 Visio 等格式匯出您的圖表。

結語

使用簡單的程式碼建立圖表可讓開發人員完全控制並輕鬆掌握一切。無論您是識別參與者還是規劃關係,每個步驟都保持有條理。您可能已經看到如何設定角色並用箭頭連接一切。當您想要靈活且基於文字的內容時,PlantUML 用例圖是一個很好的選擇。

並非每個人都喜歡使用程式碼。如果語法感覺像是挑戰,像 EdrawMax Online 這樣的工具可能更適合。它們讓您避免手動輸入,轉而提供拖放功能。這使得製作圖表更快、更容易,而不會犧牲清晰度。

話雖如此,如果您需要清晰的文件,使用帶有 PlantUML 程式碼的用例圖仍然是一個可靠的選擇,特別是對於技術團隊而言。對於非技術人員或需要快速模型時,像 EdrawMax Online 這樣的視覺化工具使建立圖表更加直接,同時保持結構完整。今天就試試 EdrawMax,看看差異!