透過本指南快速掌握使用案例圖和 PlantUML。它分解了使用案例圖的組成元件、PlantUML 功能,並教導編碼來建立圖表,加上範例步驟——非常適合整理系統互動從基礎到實作。
超越基礎知識,本資源也解決了使用案例圖繪製的常見困擾。透過 PlantUML 語法、清晰步驟和實際案例,它對開發和溝通來說非常寶貴。立即深入了解並開始應用吧!
什麼是使用案例圖?
使用案例圖可協助您顯示參與者與系統之間的連結。它分解了哪些動作是可能的以及誰可以執行這些動作。當有某個動作時,我們稱之為使用案例。參與動作的人員或系統稱為參與者。
當您建立 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 Buyer
這顯示 Buyer 是系統的使用者。
使用案例:
使用案例從使用者的角度顯示系統可以處理的任務。
語法:usecase "Place Order"
範例:

如果您是為商店撰寫:usecase "add to cart"
這描繪了您可以對系統執行的操作。
關聯:
關聯連接參與者和使用案例,或將一個使用案例連結到另一個。

- 關聯:您可以使用它來連結參與者和使用案例。
語法:
Customer --> (Checkout) - 包含:它有助於將共享行為加入基本使用案例:
語法:
(Checkout) ..> (Login) : <> - 延伸:您可以利用它來表示選擇性或條件式動作:
語法:
(Browse) ..> (Add to Wishlist) : <> - 泛化:用它來匯集類似的參與者:
語法:
User --|> Guest
User --|> Member
使用 PlantUML 建立使用案例圖的步驟
一旦您知道要包含哪些元素,用程式碼繪製圖表就相當直接了。但在開始之前,擬定計畫很重要。誰會使用系統?他們究竟會做什麼?不同部分如何連接?讓我們一起逐步進行,協助您建立清晰的 PlantUML 使用案例圖範例。
步驟一識別系統的參與者
讓我們先列出所有與系統互動的人。將他們想像成主系統外部的人員,每個人都有其特定角色。
例如,在美食外送應用程式中,主要參與者是顧客、餐廳員工和外送騎士。
管理員也可以在維持一切順利運作方面扮演角色。

步驟二識別系統支援的使用案例
從每個參與者的角度思考。他們需要系統做什麼?
寫下他們的主要任務。例如,顧客下訂單並追蹤他們的餐點。
餐廳管理收到的訂單,騎士配送餐點,而管理員則監控一切。

步驟三定義參與者和使用案例之間的關聯
首先將每個參與者連接到他們所做的事情。這有助於釐清誰負責每項任務。
對於不同參與者共享的事物,例如登入,請將這些連接到多個參與者。使用箭頭顯示從參與者到使用案例的方向。
僅在有助於更好地說明時才加入包含或延伸。

步驟4撰寫 PlantUML 程式碼
透過簡單的程式碼將您的想法轉化為直觀的圖表。只需使用純文字描述參與者及其動作即可。
以 @startuml 開始,以 @enduml 結束。使用箭頭顯示連接關係,並將帶有空格的名稱放在雙引號內。
保持程式碼整潔有序,以便日後更容易理解。

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 中的外掛程式,或選擇桌面應用程式。選擇最適合您的方式即可。
執行後,圖表會立即出現。無需等待,無需複雜的設定。

實際範例
現在,我們將討論圖書館管理系統的範例。我們也將提供使用案例圖的 PlantUML 語法。
範例 1找出參與者
- 與其專注於名稱,不如思考角色。
- 使用者是借閱書籍的人,訪客只能搜尋和瀏覽,而圖書館員則處理所有管理任務。
- 這些是您的系統應該識別和回應的主要角色。

範例 2圖書館管理系統的使用案例
- 使用者借閱和歸還書籍。訪客只能搜尋書籍。
- 圖書館員確保一切順利運作並更新系統。
- 專注於他們需要做什麼,而不是如何做。

範例 3連結圖書館參與者和使用案例
- 將每個參與者連接到其動作
- 顯示誰做什麼。如果兩個參與者執行相同的功能,請將兩者都連結起來。
- 使用箭頭讓一切清晰明瞭。

範例 4撰寫 PlantUML 程式碼
- 確保使用清晰的參與者名稱和每個使用案例的具體標籤。
- 保持版面配置簡單一致,始終遵循相同的方向。
- 以易讀性為目標。如果一個步驟依賴於另一個步驟,請加入連結將它們連接起來。
- 別忘了遵循結構。您希望圖表看起來井然有序且清晰明瞭。

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產生使用案例圖
- 貼上您的程式碼,工具會處理其餘的部分。
- 您將看到參與者和動作以清晰易懂的圖表顯示出來。
- 如果標籤重疊或感覺太擁擠,您可以在程式碼中調整版面配置設定,使其看起來更合適。

何時考慮替代方案
PlantUML 對於熟悉撰寫程式碼的開發人員來說是個很好的工具。但並非每個團隊都有相同的技能或偏好。如果輸入語法感覺像是障礙或拖慢您的工作,也許值得探索其他選項。讓我們看看 PlantUML 的一些限制以及可能更適合您的視覺化替代方案。
PlantUML 的限制
PlantUML 是個方便的工具,但並不完美。有些人可能會覺得它有點慢、有時令人困惑,或者如果不熟悉編碼就會很難使用。
- 無視覺化編輯:PlantUML 沒有拖放功能,因此您需要為每次變更撰寫程式碼。與具有視覺化編輯的工具相比,這可能使快速編輯變得較慢。
- 對新手不友善:如果您不熟悉編碼,掌握語法可能需要一些時間。一開始,即使是簡單的圖表也可能看起來有點令人不知所措或困惑。
- 手動版面配置調整:PlantUML 並不總是能完美對齊元素。有時,您需要透過反覆嘗試來微調它們的位置,以使一切看起來整潔。
試試簡單的 GUI 工具
說實話——程式碼允許更多控制,但不一定總是有效率的。當您有緊迫的期限或團隊成員沒有語法經驗時,這並無幫助。如果您的優先考量是快速效能或簡易編輯,那麼改用基於 GUI 的選項可能會為您節省數小時。這就是 EdrawMax 發揮作用的地方。
EdrawMax 透過提供內建的形狀庫(如參與者和使用案例)讓 UML 圖表的使用變得容易。您可以在同一個畫面中以視覺化方式標記互動。與 PlantUML 不同,您可以將相關元素分組並套用為使用案例客製化的主題。這一切都無需處理語法或手動調整版面配置。

您會喜歡它的原因
- 豐富的範本:探索多種適用於不同使用案例的即用範本,從業務流程到 IT 系統。
- 直觀的拖放介面:我們的拖放介面讓您只需點擊一下即可輕鬆新增參與者、使用案例和連接。無需編碼或手動排列所有內容。
- 彈性匯出:完成後,以 PDF、PNG、SVG、Word 或 Visio 等格式匯出您的圖表。
結語
使用簡單的程式碼建立圖表讓開發人員擁有完全控制權,並使一切易於掌控。無論您是識別參與者還是規劃關係,每個步驟都保持井然有序。您可能已經看到如何設定角色並用箭頭連接所有內容。當您想要靈活且基於文字的工具時,PlantUML 使用案例圖是個很好的選擇。
並非每個人都喜歡使用程式碼。如果語法感覺像是挑戰,EdrawMax Online 等工具可能更適合。它們讓您避免手動輸入,而是提供拖放功能。這使得圖表製作更快、更容易,而不犧牲清晰度。
話雖如此,如果您需要清晰的文件,使用帶有 PlantUML 程式碼的使用案例圖仍然是可靠的選擇,特別是對於技術團隊而言。對於非技術人員或當您需要快速模型時,EdrawMax Online 等視覺化工具讓圖表建立更加直接,同時保持您的結構完整。今天就試試 EdrawMax,看看不同之處!