從 VPASCode PlantUML 指南中精選的文章列表,包含 UML 與非 UML 圖形程式碼工作流程的語法指南。
PlantUML 核心與語法基礎
-
PlantUML 語法基礎:掌握 PlantUML 基礎語法,包括使用
@startuml/@enduml,實體定義、關係運算子、樣式指令與常見關鍵字。學習如何結構化清晰、易讀的 PlantUML 程式碼,自動產生專業圖表。[[34]] -
PlantUML 使用案例圖語法指南:學習如何使用 PlantUML 使用案例圖來建模功能需求與參與者互動。涵蓋參與者、使用案例、系統邊界、包含/延伸關係,以及一般化模式,適用於需求文件編寫與使用者故事映射。
-
PlantUML 類別圖語法指南:使用 PlantUML 類別圖設計靜態系統結構。掌握類別/屬性/方法宣告、可見性修飾符、繼承(
<|--),組合(*--),聚合(o--),以及關聯關係,用於物件導向架構文件編寫。[[49]] -
PlantUML 序列圖語法指南:模擬系統組件之間的訊息傳遞與時間互動。學習參與者宣告、同步/非同步訊息(
->,-->),激活條、迴圈、alt/else 區塊,以及建立/停用語法,適用於 API 設計與微服務通訊圖。[[51]] -
PlantUML 活動圖語法指南:使用 PlantUML 活動圖語法來視覺化業務流程與演算法工作流程。涵蓋起始/結束節點、動作、條件分支(
if/then/else),迴圈(repeat/while),平行分支,以及用於程序邏輯文檔的分割泳道。[[46]] -
PlantUML 狀態圖語法指南:建模有限狀態機和物件生命週期轉換。學習狀態宣告、轉移箭頭(
-->),進入/離開動作、複合狀態,以及用於事件驅動系統設計與行為規格的併發區域。[[36]] -
PlantUML 物件圖語法指南:展示特定時刻的具體物件實例及其執行時關係。掌握物件命名、屬性值指派、連結語法與實例層級關聯,以利除錯與測試情境的視覺化。[[15]]
-
PlantUML 模組圖語法指南:以模組化軟體架構中的元件、介面與依賴關係進行繪製。學習元件宣告、提供/需求介面(
<>),依賴箭頭,以及套件群組,用於微服務與外掛式系統的文件記錄。[[35]]
進階 PlantUML 圖表類型
-
PlantUML 部署圖語法指南:建模實體基礎設施與執行時部署拓撲。掌握
節點,雲端,框架,資料庫,以及元件元素、巢狀容器語法,以及網路協定標籤,適用於 DevOps 操作手冊與雲端架構圖。[[31]]
@startuml
skinparam shadowing false
skinparam defaultFontName "Arial"
' 定義樣式
skinparam node {
BackgroundColor #F1F8FF
BorderColor #005CC5
FontColor #032F62
}
skinparam database {
BackgroundColor #FFF5E6
BorderColor #D96F00
FontColor #5C3000
}
skinparam artifact {
BackgroundColor #E6FFF1
BorderColor #008670
FontColor #004D40
}
left to right direction
' 網路區域 / 節點
node "內容傳輸網路" as cdn <<CDN>> {
artifact "快取靜態資源" as static
}
node "負載平衡器" as lb <<F5 / HAProxy>>
node "應用伺服器" as appServer <<Ubuntu Linux>> {
node "Docker 容器" as docker {
artifact "app.war" as artifactApp
}
}
node "資料庫伺服器" as dbServer <<叢集>> {
database "生產資料庫" as db <<PostgreSQL>>
}
' 連線並標示協定
cdn --> lb : HTTP/HTTPS (連接埠 443)
lb --> artifactApp : HTTP (連接埠 8080)
artifactApp --> db : JDBC / SQL (連接埠 5432)
@enduml

範例:經典的三層架構,顯示 CDN、負載平衡器、含巢狀元件的應用伺服器,以及標示協定的資料庫層級連線。 [[1]]

@startuml
skinparam shadowing false
skinparam defaultFontName "Arial"
skinparam linetype ortho
' 樣式定義
skinparam rectangle {
BackgroundColor #F4F6F9
BorderColor #A0AAB2
FontColor #232F3E
}
skinparam node {
BackgroundColor #E2F3FC
BorderColor #4A90E2
FontColor #111111
}
skinparam database {
BackgroundColor #FFF2E6
BorderColor #FF9900
FontColor #232F3E
}
' 基礎設施入口點
node "AWS Route 53" as dns
node "AWS 應用程式負載平衡器" as alb
dns --> alb : 路由流量
' 全球雲端邊界
rectangle "AWS 雲端區域" {
' 跨可用性區域的 Kubernetes 叢集邊界
rectangle "Amazon EKS 叢集" as eks {
' 可用性區域 1
rectangle "可用性區域 us-east-1a" as az1 #line.dashed {
node "EC2 工作節點 (AZ1)" as node1 {
rectangle "前端 Pod" as podWeb1 <<K8s Pod>> {
artifact "Nginx 容器" as containerWeb1
}
rectangle "後端 API Pod" as podApi1 <<K8s Pod>> {
artifact "Go 應用程式容器" as containerApi1
}
}
}
' 可用性區域 2
rectangle "可用性區域 us-east-1b" as az2 #line.dashed {
node "EC2 工作節點 (AZ2)" as node2 {
rectangle "前端 Pod" as podWeb2 <<K8s Pod>> {
artifact "Nginx 容器" as containerWeb2
}
rectangle "後端 API Pod" as podApi2 <<K8s Pod>> {
artifact "Go 應用程式容器" as containerApi2
}
}
}
}
' 共享資料庫層
rectangle "Amazon Aurora 儲存引擎" as storage {
database "Aurora 主節點 (寫入者)" as dbMaster
database "Aurora 副本 (讀取者)" as dbReplica
}
}
' 路由與流量矩陣
alb --> podWeb1 : HTTP/S (連接埠 80/443)
alb --> podWeb2 : HTTP/S (連接埠 80/443)
podWeb1 --> podApi1 : gRPC (連接埠 50051)
podWeb2 --> podApi2 : gRPC (連接埠 50051)
podApi1 --> dbMaster : TCP (連接埠 5432)
podApi2 --> dbMaster : TCP (連接埠 5432)
dbMaster .right.> dbReplica : 儲存空間自動複寫
@enduml
範例:跨 AWS 可用性區域的雲原生 Kubernetes 部署,包含負載平衡器路由、Pod 巢狀結構,以及共享資料庫叢集。 [[1]]
-
PlantUML 時序圖語法指南:沿線性時間軸可視化精確的狀態持續時間與時間約束。學習
強健/簡潔參與者樣式,@timepoint狀態指派,時鐘波形生成,以及<->嵌入式系統與通訊協定規格的約束註解。[[30]]

@startuml
skinparam handwritten false
skinparam shadowing false
skinparam defaultFontName "Arial"
' 時序圖標題
title 資料匯流排暫存器同步時間軸
' 定義週期性時鐘波形(週期 10 單位,高電平 5 單位)
clock "系統時鐘" as CLK with period 10 pulse 5
' 定義資料匯流排強健參與者
robust "資料匯流排暫存器" as BUS
' 時間 0:暫存器的初始狀態
@0
BUS is Empty
' 時間 10:資料匯流排切換至讀取狀態
@10
BUS is Reading
' 時間 20:資料匯流排切換至寫入狀態
@20
BUS is Writing
' 時間 22:在時間軸上顯示自訂文字標籤
@22
note top of BUS : T_WRITE
' 時間 30:資料匯流排變為鎖定狀態
@30
BUS is Locked
' 時間 35:在時間軸上顯示自訂文字標籤
@35
note top of BUS : T_LOCK
' 時間 40:資料匯流排返回空狀態
@40
BUS is Empty
' 使用明確數值點添加時間約束註解
@22 <-> @35 : {13 TU 持續時間}
@enduml
範例:簡潔的時間軸,顯示資料匯流排暫存器狀態(空 → 讀取 → 寫入 → 鎖定)與週期性系統時鐘波形同步。 [[12]]

@startuml
skinparam shadowing false
skinparam defaultFontName "Arial"
' 多執行緒時序圖標題
title Web 客戶端與驗證工作執行緒同步
' 使用強健參與者樣式宣告時間軸
robust "Web 客戶端執行緒" as CLIENT
robust "驗證工作執行緒" as AUTH
' 時間 0ms:初始空閒狀態
@0
CLIENT is Idle
AUTH is Idle
' 時間 10ms:客戶端觸發驗證請求
@10
CLIENT is "等待驗證"
AUTH is "驗證憑證"
' 時間 25ms:客戶端傳送額外資料 / 驗證開始產生權杖
@25
AUTH is "產生 JWT 權杖"
' 時間 40ms:驗證完成權杖產生並回應客戶端
@40
AUTH is Idle
CLIENT is "已驗證"
' 時間 55ms:客戶端返回預設狀態
@55
CLIENT is Idle
' 30ms 時間約束視窗註解(從 @10 到 @40)
@10 <-> @40 : {30ms 產生視窗}
@enduml
範例:強健的多執行緒時間軸,映射 Web 客戶端與驗證工作執行緒狀態,並標註 30ms 產生視窗的約束。 [[12]]
-
PlantUML ERD 語法指南:設計實體關係圖以用於資料庫結構文件。掌握實體宣告、屬性類型、主鍵/外鍵符號,以及基數關係(
1|o--o{)以進行資料模型設計與 SQL 迁移規劃。 -
PlantUML ArchiMate 圖形語法指南:使用 ArchiMate 標準建模企業架構層級。學習業務/應用/技術層級元件、動機概念與關係類型,以進行戰略性 IT 規劃與治理文件編製。
-
PlantUML C4 模型語法指南:實作 C4 模型以在四個抽象層級(情境、容器、組件、程式碼)上進行軟體架構可視化。掌握
人員,系統,容器,以及組件具有邊界容器和關係樣式之型別,用於利益相關者對齊的架構溝通。
內嵌圖示說明:VPASCode 文件中的所有 PlantUML 程式碼範例均會在瀏覽器中直接呈現為可互動、可編輯的圖示。上方的 PNG 圖示連結顯示範例圖示的靜態預覽;如需完整互動功能,包括即時編輯、語法驗證以及匯出為 PNG/SVG 格式,請直接造訪各文章的網址:vpascode.com/docs. [[54]]
VPasCode 編輯器功能:每篇文件都包含「在 VPasCode 中編輯 PlantUML」按鈕,可將程式碼範例啟動至 VPasCode 免費的瀏覽器編輯器中——無需登入或安裝。變更會立即以即時渲染方式預覽。[[54]]
參考資料來自 VPASCode 文件。VPasCode 是一個免費的線上瀏覽器編輯器,可用於 PlantUML、Mermaid 和 Graphviz 圖示,無需登入或安裝。 [[54]]











