uml

uml

熱門

使用 PlantUML 語法繪製 UML 圖表。最適合軟體建模——透過簡潔的文字語法與自動排版,輕鬆建立類別圖(Class)、時序圖(Sequence)、活動圖(Activity)、狀態機圖(State Machine)、元件圖(Component)、用例圖(Use Case)及部署圖(Deployment)。

3091星標
178分支
更新於 2026/5/26
SKILL.md
唯讀
名稱
uml
描述

使用 PlantUML 語法繪製 UML 圖表。最適合軟體建模——透過簡潔的文字語法與自動排版,輕鬆建立類別圖(Class)、時序圖(Sequence)、活動圖(Activity)、狀態機圖(State Machine)、元件圖(Component)、用例圖(Use Case)及部署圖(Deployment)。

UML 圖表產生器

快速上手: 選擇圖表類型 → 撰寫 PlantUML 文字 → 定義元素與關係 → 包裹在 ```plantuml 程式碼區塊中。

⚠️ 重要: 請務必使用 ```plantuml```puml 程式碼區塊。切勿使用 ```text——否則無法渲染為圖表。

關鍵規則

  • 每張圖表皆以 @startuml 開頭並以 @enduml 結尾
  • 使用標準 PlantUML 關鍵字:classinterfaceabstractenumactorparticipantcomponentnodedatabasepackage
  • 關係使用箭頭語法:--><|--*--o--..>..|>
  • 使用 skinparam 設定全域樣式與顏色
  • 在個別元素上使用 #color 指定特定顏色
  • 註記使用 note left ofnote right ofnote over,或獨立的 note "text" as N

UML 圖表類型

類型 用途 核心語法 範例
類別圖 (Class) 類別結構與關係 class, interface, <|-- class-diagram.md
時序圖 (Sequence) 時間軸上的訊息互動 participant, ->, --> sequence-diagram.md
活動圖 (Activity) 工作流程與程序流向 start, :action;, if/else activity-diagram.md
泳道活動圖 (Swimlane Activity) 具備泳道分工的多角色活動 |Lane|, :action; swimlane-activity-diagram.md
狀態機圖 (State Machine) 物件生命週期狀態 state, [*] --> state-machine-diagram.md
元件圖 (Component) 系統元件組織結構 component, [name], interface component-diagram.md
用例圖 (Use Case) 使用者與系統的互動 actor, usecase, (name) use-case-diagram.md
部署圖 (Deployment) 實體部署架構 node, artifact, database deployment-diagram.md
物件圖 (Object) 執行時期的物件快照 object "name" as id object-diagram.md
套件圖 (Package) 模組組織 package "name" package-diagram.md
通訊圖 (Communication) 物件間的協同合作 搭配時序語法的編號訊息 communication-diagram.md
複合結構圖 (Composite Structure) 內部類別結構 包含巢狀 portcomponent composite-structure-diagram.md
互動概覽圖 (Interaction Overview) 活動圖與時序圖的結合 group, ref over interaction-overview-diagram.md
輪廓圖 (Profile) UML 擴充機制 <<stereotype>> 標籤 profile-diagram.md

Mxgraph Stencil 圖示

draw-uml 支援超過 9500 個 mxgraph stencil 圖示(含 AWS、Azure、Cisco、Kubernetes 等),可透過 mxgraph.* 語法直接引用。系統會自動套用預設顏色——您不需要手動指定 fillColorstrokeColor

完整 Stencil 參考資料: 請參閱 stencils/README.md

語法

mxgraph.<namespace>.<icon> "Label" as <alias>
mxgraph.<namespace>.<icon> "Label" as <alias> #color
mxgraph.<namespace>.<icon> <alias>
  • mxgraph.<namespace>.<icon> — stencil 圖形鍵值(例如 mxgraph.aws4.lambdamxgraph.kubernetes.pod
  • "Label" — 顯示文字(若包含空格請加上雙引號,單字可不加)
  • as <alias> — 用於建立關係的別名識別碼
  • #color — 自訂覆蓋顏色(例如 #FF6600#LightBlue

範例

@startuml
' 簡單圖示宣告
mxgraph.aws4.lambda "Lambda\nFunction" as fn
mxgraph.aws4.api_gateway "API GW" as gw
mxgraph.aws4.dynamodb "DynamoDB" as db

gw --> fn
fn --> db
@enduml
@startuml
' 搭配圖示的 Kubernetes 架構圖
mxgraph.kubernetes.ing "Ingress" as ing
mxgraph.kubernetes.svc "Service" as svc
mxgraph.kubernetes.pod "Pod" as pod
mxgraph.kubernetes.deploy "Deployment" as deploy

ing --> svc
svc --> pod
deploy --> pod
@enduml
@startuml
' 混合標準 UML 與 stencil 圖示
node "Cloud" {
  mxgraph.aws4.ec2 "EC2" as ec2
  mxgraph.aws4.rds "RDS" as rds
}
database "Legacy DB" as legacy

ec2 --> rds
rds --> legacy
@enduml