如何使用 PlantUML 建立使用案例圖

PlantUML 是一種以文字語法快速生成流程圖與 UML 圖表的工具,文章進一步整理製作步驟,幫助讀者快速掌握主題並了解在 EdrawMax 或相關工具中的應用方式。

EdrawMax
EdrawMax May 06, 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
這顯示 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 使用案例圖範例。

步驟一識別系統的參與者

讓我們先列出所有與系統互動的人。將他們想像成主系統外部的人員,每個人都有其特定角色。

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

管理員也可以在維持一切順利運作方面扮演角色。

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

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

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

餐廳管理收到的訂單,騎士配送餐點,而管理員則監控一切。

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

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

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

僅在有助於更好地說明時才加入包含或延伸。

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 並不總是能完美對齊元素。有時,您需要透過反覆嘗試來微調它們的位置,以使一切看起來整潔。

試試簡單的 GUI 工具

說實話——程式碼允許更多控制,但不一定總是有效率的。當您有緊迫的期限或團隊成員沒有語法經驗時,這並無幫助。如果您的優先考量是快速效能或簡易編輯,那麼改用基於 GUI 的選項可能會為您節省數小時。這就是 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,看看不同之處!