uml

uml

热门

使用 PlantUML 语法创建 UML 图。最适合软件建模——类图、时序图、活动图、状态机图、组件图、用例图和部署图,采用简洁的文本符号和自动布局。

3091Star
178Fork
更新于 2026/5/26
SKILL.md
readonly只读
name
uml
description

使用 PlantUML 语法创建 UML 图。最适合软件建模——类图、时序图、活动图、状态机图、组件图、用例图和部署图,采用简洁的文本符号和自动布局。

UML 图生成器

快速开始: 选择图表类型 → 编写 PlantUML 文本 → 定义元素和关系 → 包裹在 ```plantuml 代码块中。

⚠️ 重要: 始终使用 ```plantuml```puml 代码块。切勿使用 ```text——否则不会渲染为图表。

关键规则

  • 每个图表以 @startuml 开头,以 @enduml 结尾
  • 使用标准 PlantUML 关键字:classinterfaceabstractenumactorparticipantcomponentnodedatabasepackage
  • 关系使用箭头语法:--><|--*--o--..>..|>
  • 使用 skinparam 进行全局样式和颜色设置
  • 对单个元素使用 #color 指定特定颜色
  • 注释使用 note left ofnote right ofnote over 或独立 note "text" as N

UML 图表类型

类型 用途 关键语法 示例
类图 类结构和关系 classinterface<|-- class-diagram.md
时序图 随时间变化的消息交互 participant->--> sequence-diagram.md
活动图 工作流和流程 start:action;if/else activity-diagram.md
泳道活动图 多角色活动带泳道 |Lane|:action; swimlane-activity-diagram.md
状态机图 对象生命周期状态 state[*] --> state-machine-diagram.md
组件图 系统组件组织 component[name]interface component-diagram.md
用例图 用户-系统交互 actorusecase(name) use-case-diagram.md
部署图 物理部署架构 nodeartifactdatabase deployment-diagram.md
对象图 运行时对象快照 object "name" as id object-diagram.md
包图 模块组织 package "name" package-diagram.md
通信图 对象协作 带序号的消息,使用时序语法 communication-diagram.md
组合结构图 内部类结构 component 嵌套 port composite-structure-diagram.md
交互概览图 活动图+时序图组合 groupref over interaction-overview-diagram.md
轮廓图 UML 扩展机制 <<stereotype>> 标签 profile-diagram.md

Mxgraph 模板图标

draw-uml 支持 9500+ 个 mxgraph 模板图标(AWS、Azure、Cisco、Kubernetes 等),通过 mxgraph.* 语法使用。默认颜色自动应用——您无需指定 fillColorstrokeColor

完整模板参考: 参见 stencils/README.md

语法

mxgraph.<namespace>.<icon> "Label" as <alias>
mxgraph.<namespace>.<icon> "Label" as <alias> #color
mxgraph.<namespace>.<icon> <alias>
  • mxgraph.<namespace>.<icon> — 模板形状键(例如 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 与模板图标
node "Cloud" {
  mxgraph.aws4.ec2 "EC2" as ec2
  mxgraph.aws4.rds "RDS" as rds
}
database "Legacy DB" as legacy

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