PlantUML 指南:如何在 PlantUML 中製作流程圖

流程圖是以圖形方式呈現步驟、判斷與執行順序的視覺化工具,文章聚焦於製作步驟,協助讀者理解其使用脈絡、操作方式,以及可直接參考的圖表做法。

EdrawMax
EdrawMax May 06, 26
分享:
banner-product

PlantUML 允許使用者在不使用 GUI 工具或單純打字的情況下製作各種圖表。您無需在視覺化編輯器中拖放形狀,而是需要撰寫類似程式碼的描述,這些描述會自動轉譯成圖表。

然而,雖然這看起來可能令人不知所措,但如前所述,PlantUML 具有簡單且易讀的文字語法。您可以使用它來製作循序圖、使用案例圖、類別圖以及更多圖表,包括流程圖。

為了快速示範其易讀性,以下是使用 PlantUML 語言製作的流程圖範例:

@startumlstart:使用者輸入憑證;if (憑證有效?) then (是) :登入使用者; :重新導向至儀表板;else (否) :顯示錯誤訊息; :返回登入表單;endifstop@enduml
User login flowchart
本文內容
  1. 如何使用 PlantUML 流程圖語法製作流程圖
  2. 如何在 PlantUML 中製作複雜流程圖
  3. 如何在 PlantUML 中編輯流程圖的樣式與版面配置
  4. PlanUML 流程圖範例
  5. 使用 PlantUML 的常見錯誤與修正方法
  6. PlantUML 替代方案:更多製作流程圖的方法

如何使用 PlantUML 流程圖語法製作流程圖

第一步學習在 PlantUML 中製作流程圖的第一步是理解基本語法。這些是您需要理解並熟練掌握的「程式碼」,以便輕鬆製作流程圖。這裡的目標是讓您能夠在不參考本文或其他資源的情況下撰寫 PlantUML。因此,請務必記下這些程式碼。

以下是在 PlantUML 中建立流程圖所需的基本元素分解說明:

開始與結束節點

每個流程圖都需要明確的進入點和退出點。這些將作為您程式碼的「邊界」或「限制器」。PlantUML 會理解從進入點到退出點程式碼之間的所有內容都是一個流程圖的一部分。

要標記流程圖的開始和結束,請使用程式碼:

@startumlstartstop@enduml

處理步驟

現在,是時候進行流程的步驟了。這些代表流程圖中的動作或操作。您可以使用類似「:步驟 1;」「:步驟 2;」等程式碼。以下是範例:

@startumlStart:步驟 1; :步驟 2;stop
Step 1 step 2 flowchart

決策(If-Else)

大多數流程圖都有決策點。這些 if-else 條件通常會根據您設定的結果觸發「流程」的變化。在 PlantUML 中,這些節點由 if-else 語法表示,如下所示:

@startumlStart:步驟 1; :步驟 2;if (條件) then (是) :動作 1;else (否) :動作 2;endifstop
If else flowchart

輸入/輸出(資料)

您也可以使用某些語法,例如「:輸入資料;」和「-> 輸出資料;」(將文字替換為您想要的資料標籤)來表示流程圖中的資料流。帶有文字的箭頭「->」顯示資料在流程之間流動。您也可以使用註解和標籤來闡明每個步驟處理的資料。

@startumlStart:輸入資料;:步驟 1; :步驟 2;if (條件) then (是) :動作 1;else (否) :動作 2;-> 輸出資料;endifstop
Input/output flowchart

有了這些,您現在應該能夠建立完整的流程圖。只需重現所述語法來製作更長的流程圖,並相應地編輯標籤。例如,您可以將「步驟 1」更改為「登入」,或執行任何適合您嘗試製作的流程的操作。

如何在 PlantUML 中製作複雜流程圖

在本節之前,請確保您已理解語法的本質。這些是使用 PlantUML 建立您的第一個流程圖的常用語法。在本節中,您將了解一些可以在文字編輯器中使用的更進階流程圖技術。

本指南試圖解釋如何以及何時使用這些語法,但大部分的理解將在您使用這些程式碼時顯現。這是因為您將能夠看到它們的實際運作。

迴圈(While/For)

迴圈或「repeat」語法可以顯示重複的流程,直到滿足特定條件為止。想像一個登入系統,它會不斷要求輸入密碼,直到使用者輸入正確的密碼為止。這裡的關鍵語法是「repeat」和「while」條件。您可以將迴圈用於重試機制、輪詢系統或重複性任務。以下是其運作方式的視覺化呈現:

@startumlstartrepeat :處理步驟;repeat while (條件?) is (是)stop@enduml
While/for flowchart

平行處理(Fork-Join)

有時,工作流程需要多個任務同時執行(例如,在記錄進度的同時下載檔案)。PlantUML 使用「fork」和「end fork」支援此功能。您可以將此用於多執行緒操作、背景任務或獨立流程。

@startumlstartfork :任務 1;fork again :任務 2;end forkstop@enduml
fork flowchart

子程式(回呼)

現在,子程式是可以獨立於主流程運行的獨立流程。例如,這可以是在使用者繼續登入流程時發送電子郵件通知(例如針對新 IP 位址)。這些是通過「detach」語法製作的。以下是此程式碼的實際範例:

@startumlstart:主流程;Start:輸入資料;:步驟 1; :步驟 2;if (條件) then (是) :動作 1;else (否) :動作 2;-> 輸出資料;detach:子程式;stop@enduml
callback flowchart

跳轉點

在大型流程圖中,箭頭可能會變得混亂。隱藏連接器「-[hidden]->」可讓您連結步驟而不會使圖表混亂。使用此方法來簡化複雜流程或避免線條交叉。以下是跳轉點的實際應用:

@startumlstart:步驟 1;:步驟 2;-[hidden]->:步驟 3;stop@enduml
Jump points flowchart

如何在 PlantUML 中編輯流程圖的樣式與版面配置

在基本和進階語法之後,您現在應該能夠採取額外的創意步驟。這些對於使流程圖成為您自己的至關重要。此外,您現在應該能夠操作流程圖以新增更多分組。在本節中,您將了解所有這些看似複雜的步驟。

顏色與形狀

顏色不僅具有創意目的。它們還可用於區分步驟,例如成功或錯誤路徑,並提高流程圖的整體可讀性。例如,綠色通常用於成功路徑,紅色用於錯誤路徑。這是在 PlantUML 流程圖中使用顏色的簡單範例。

對於顏色,您可以在節點「: 在此插入步驟;」之前使用「#顏色名稱」語法,如下所示:

@startumlstart#palegreen :成功步驟;#red :錯誤步驟;stop@enduml
colors flowchart

方向控制

預設情況下,PlantUML 會從上到下生成您的流程圖。但有時,從左到右的版面配置可能更適合您的流程,例如那些更寬或涉及更多步驟的流程。這些更適合插入文件中。因此,您應該使用簡單的語法,例如「->」來手動重新導向流程圖。

@startumlstartif (條件) then (是) -> 步驟 1;else (否) -> 步驟 2;endifstop@enduml
Change direction flowchart

分組(泳道)

最後,您可以嘗試製作泳道或將流程圖中的某些流程分組在一起。泳道(垂直或水平分隔線)根據執行者(例如使用者與系統)來分隔步驟。以下是下方 PlantUML 文字中內容的快速說明:

  • |User|:建立一個標記為「User」的泳道。(|User| 下的步驟屬於使用者的動作。)
  • |System|:用於系統流程的新泳道。
  • |Database|:顯示資料庫應如何處理使用者/系統所採取的資料或流程。
@startuml|User|start:點擊按鈕;|System|:處理請求;|Database|:儲存資料;@enduml
swimlane flowchart

PlanUML 流程圖範例

如您所見,使用像 PlantUML 這樣的文字編輯器製作流程圖不必太複雜。您只需理解基本語法,就可以開始了。只需經過幾次嘗試和練習,您就可以建立流程圖或圖表。

這三個範例向您展示如何處理最常見的情境:決策點、重試機制、錯誤處理和多步驟流程。每個範例都處理不同層級的複雜性。我們從基本的是-否決策開始,進入迴圈和錯誤恢復,並以跨多個系統的平行處理作為結束。

範例 1基本登入系統

這個簡單的登入流程示範了基於決策的流程圖的基礎。使用者輸入其憑證,系統進行驗證,然後會發生以下兩種情況之一:授予存取權限或顯示錯誤。

@startumlstart:輸入使用者名稱與密碼;if (有效?) then (是) :授予存取權限;else (否) :顯示錯誤;endifstop@enduml
Basic login system
範例 2密碼重設流程

密碼重設涉及更多複雜性,因為它們需要重試邏輯和有時效性的連結。此流程圖顯示如何處理過期的權杖和失敗的嘗試,同時保持使用者體驗順暢。repeat-while 迴圈確保系統持續嘗試,直到連結過期或成功為止。

@startumlstart:點擊「忘記密碼」;:輸入電子郵件;repeat :發送重設連結; :使用者點擊連結; if (連結有效?) then (是) :顯示新密碼表單; else (否) :記錄「無效連結嘗試」; endifrepeat while (過期?) is (否)stop@enduml
Password reset flow
範例 3電子商務結帳

實際的結帳系統必須同時驗證多項內容 - 付款處理和庫存檢查不能互相等待。此範例使用平行處理(fork/end fork)和泳道來顯示不同系統如何協同工作。當任一驗證失敗時,整個訂單都會被取消,以維持資料一致性。

@startumlleft to right|Buyer|start:加入購物車;:前往結帳;|System|fork :驗證付款;fork again :檢查庫存;end forkif (全部有效?) then (是) :確認訂單;else (否) #pink :取消訂單;endif|Warehouse|:包裝商品;stop@enduml
Ecommerce checkout

使用 PlantUML 的常見錯誤與修正方法

即使是經驗豐富的開發人員在使用 PlantUML 建立流程圖時也會遇到這三個問題。好消息是?每個問題都有一個簡單的解決方案,可以立即改善圖表的可讀性和專業外觀。

  • 隱藏箭頭:重疊的箭頭會造成視覺混亂,使流程變得難以追蹤。當您的圖表看起來像一盤義大利麵時,請在元素之間新增 -[hidden]-> 以建立引導版面配置引擎的不可見連接。
  • 改善可讀性。無法閱讀的文字會破壞視覺化文件的目的 - 如果人們無法閱讀您的標籤,他們就不會使用您的流程圖。在圖表頂部加入 skinparam defaultFontSize 14,使所有內容都清晰易讀。
  • 改善對齊。混亂的對齊會使即使是簡單的流程看起來也很複雜。根據您偏好的流程方向,透過變更某些節點的方向來強制 PlantUML 整齊地組織元素。

PlantUML 替代方案:更多製作流程圖的方法

PlantUML 在許多方面表現出色,但它並不是每個團隊或專案的完美解決方案。了解其限制有助於您做出更好的工具決策並避免挫折。

PlantUML 的限制

非開發人員通常難以適應 PlantUML 的文字式方法。雖然程式設計師喜歡像程式碼一樣撰寫流程圖,但設計師和業務分析師通常更喜歡可以立即看到變更的視覺化編輯器。語法學習階段可能會拖慢需要快速建立圖表的團隊,特別是當利害關係人想要直接參與流程文件時。

PlantUML 的自動版面配置適用於簡單的圖表,但對於複雜的工作流程則會出現問題。當您需要精確定位或特定的視覺化排列時,您將與版面配置引擎搏鬥。使用隱藏箭頭和間距命令進行手動調整可能會比初始圖表建立消耗更多時間,特別是對於可供展示的輸出。

GUI 工具替代方案

對於需要所見即所得(what you see is what you get)編輯的團隊,像 EdrawMax 這樣的工具提供豐富的範本庫和直觀的拖放介面,消除了語法學習的需要。當非技術性利害關係人需要直接編輯存取權限,或當圖表美觀與功能同樣重要時,視覺化工具表現出色。

當您的團隊重視版本控制整合、自動文件產生或與程式碼相關的工作流程時,請考慮使用 PlantUML。當快速原型製作、利害關係人協作或精美簡報優先時,請選擇視覺化替代方案。許多成功的團隊會同時使用兩種方法 - PlantUML 用於技術文件,GUI 工具用於面向客戶的資料或腦力激盪會議。

Wondershare EdrawMax:概述與主要功能

如果您已經在考慮 PlantUML 的 GUI 替代方案,不妨查看 Wondershare EdrawMax 以開始使用。它的主要優勢在於它是一個功能強大的一體化圖表工具,專業人士和初學者都可以輕鬆使用。憑藉簡潔的拖放介面,在更多情況下,它肯定比手動輸入您不熟悉的程式碼要好得多。

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

以下是一些讓您熟悉該工具的主要功能:

  • 跨平台支援:適用於 Windows、macOS、Linux 和網頁,允許使用者在任何裝置上工作。
  • 廣泛的圖表種類:支援超過 280 種類型的圖表,包括流程圖、組織圖、心智圖和 UML。
  • 範本與符號庫:提供 30,000 多個使用者製作的範本和數千個隨時可用的符號。
  • 靈活的匯出選項:允許以多種格式匯出圖表,例如 PDF、Visio、SVG、Word 和 PowerPoint。
  • AI 功能:透過整合的 AI 功能(如摘要、寫作、圖表分析、繪圖和其他相關工具)使您的工作變得更輕鬆。