New! Render PlantUML diagrams directly inside GitHub
with our official browser extension —
No server. No tokens. No tracking. Zero permissions but clipboard. —
Try it out and let us know what you think!
活动图
活动图描述工作流或流程:各个步骤、它们的顺序,以及分支和并行路径。它适合用于业务流程、算法,以及任何从起点流向终点的过程。 在 PlantUML 中,每个活动写成一行,使用箭头和if、repeat、fork 等关键字来表达控制流。图形会自动生成。
- 文本输入,图形输出。 自上而下描述流程,包括分支和循环。
- 自上而下阅读。 文本中的顺序就是图中的顺序。
- 易于重组。 调整步骤顺序或添加分支,只需编辑文本,无需重画。
简单的行动
活动标签以: 开始,以; 结束。
文本格式可以使用克里奥尔语的维基语法。
它们的定义顺序是隐性链接的。
Other simple action (defined as a list)
Simple action list separated by -
Simple action list separated by *
With one level
With several levels
开始/停止/结束
你可以使用start 和stop 关键字来表示一个图的开始和结束
。
end 关键字。
条件
你可以使用if,then, break和else 关键词来在你的图表中放入测试。
标签可以用圆括号提供。
有3种语法可供选择。
if (...) then (...)
if (...) is (...) then
if (...) equals (...) then
几个测试(水平模式)
你可以使用elseif 关键字来拥有几个测试(默认是水平模式)。
几个测试(垂直模式)
你可以使用!pragma useVerticalIf on 命令,让测试处于垂直模式。
-P command-line[命令行]选项来指定pragma。
java -jar plantuml.jar -PuseVerticalIf=on
[参考文献:QA-3931,issue-582] 。 *[Refs. [QA-3931](https:forum.plantuml.net/3931/please-provide-elseif-structure-vertically-activity-diagrams), [GH-582](https:github.com/plantuml/plantuml/issues/582)]*
WARNING
This translation need to be updated. WARNING
Switch判断 [switch, case, endswitch]
你可以使用 switch, case 和 endswitch 关键词在图表中绘制Switch判断.
使用括号表示标注.
条件判断和终止 [kill, detach]
你可以在if判断中终止一个行为.
kill 或 detach关键字:
kill
detach
WARNING
This translation need to be updated. WARNING
重复循环
你可以使用关键字repeat和repeatwhile进行重复循环。
repeat目标, 在返回循环开始时使用backward关键字插入一个全局行为。
WARNING
This translation need to be updated. WARNING
打断循环 [break]
你可以使用 break 关键字跟在循环中的某个行为后面打断循环.
WARNING
This translation need to be updated. WARNING
Goto和标签处理 [label, goto]
⚠ 目前只是实验性的 🚧
你可以使用label 和goto 关键词来表示Goto处理,其中:
label <label_name>goto <label_name>
while循环
可以使用关键字while和end while进行while循环。
endwhile后添加标注,还有一种方式是使用关键字is。
+detach+ 来形成一个无限循环, 那么你可能需要使用 +-[hidden]->+ 来隐藏一些不完整的箭头。
WARNING
This translation need to be updated. WARNING
并行处理 [fork, fork again, end fork, end merge]
你可以使用fork,fork again和end fork 或者 end merge 等关键字表示并行处理。
fork 示例
fork 和合并示例
end fork 标注 (或 UML 连接规范):
其他示例
分割处理
分割
你可以使用split, split again 和 end split 关键字去表达分割处理
输入分割 (多个入口)
你可以使用包含hidden 指令的箭头去制造一个输入分割 (多入口):
输出分割 (多个结束点)
你可以使用kill 或 detach 去制造一个输出分割 (多个结束点):
注释
文本格式可以使用克里奥尔维基语法。
可以使用floating 关键字浮动注释。
WARNING
This translation need to be updated. WARNING
改变颜色
你可以为一些活动指定颜色
WARNING
This translation need to be updated. WARNING
无箭头连接线
您可以使用 skinparam ArrowHeadColor none 参数来表示仅使用线条连接活动,而不带箭头。
箭头
使用->标记,你可以给箭头添加文字或者修改箭头颜色。
同时,你也可以选择点状 (dotted),条状(dashed),加粗或者是隐式箭头
Simple colored arrow [link]
You can use simple colored arrow with the link keyword.
Multiple colored arrow
You can use multiple colored arrow.
连接器(Connector)
你可以使用括号定义连接器。
WARNING
This translation need to be updated. WARNING
连接器颜色
你可以在连接器上增加 颜色
WARNING
This translation need to be updated. WARNING
组合(grouping)
通过定义分组(group),你可以把多个活动分组。
分区
通过定义分区(partition),你可以把多个活动组合(group)在一起:
分组, 分区, 包, 矩形 或 卡片式
你可以分组活动通过定义:- group;
- partition;
- package;
- rectangle;
- card.
WARNING
This translation need to be updated. WARNING
泳道(Swimlanes)
你可以使用管道符|来定义泳道。
还可以改变泳道的颜色。
if 判断或 repeat 或 while 循环.
alias 语法:
|[#<color>|]<swimlane_alias>| <swimlane_title>
WARNING
This translation need to be updated. WARNING
分离(detach)
可以使用关键字detach 或 kill移除箭头。
detach
kill
Emoji as action (with icon stereotype)
You can use emoji as action, with the stereotype <<icon>>:
SDL(规范和描述语言)
SDL 形状名称表
| 名称 | 旧语法 | 定型语法 |
| 输入 |
<
|
<<input>>
|
| 输出 |
>
|
<<output>>
|
| 程序 |
|
|
<<procedure>>
|
| 加载 |
\
|
<<load>>
|
| 保存 |
/
|
<<save>>
|
| 连续 |
}
|
<<continuous>>
|
| 任务 |
]
|
<<task>>
|
SDL using final separator (Deprecated form)
通过更改最终; separator,可以为活动设置不同的渲染:
|<>/\\]}
使用正态分隔符和立体原型的 SDL(当前正式形式)
WARNING
This translation need to be updated. WARNING
UML (Unified Modeling Language) Shape (with UML stereotype)
Table of UML Shape Name
| Name | Stereotype syntax |
| ObjectNode |
<<object>>
|
|
ObjectNode typed by signal |
<<objectSignal>> or <<object-signal>>
|
|
AcceptEventAction without TimeEvent trigger |
<<acceptEvent>> or <<accept-event>>
|
|
AcceptEventAction with TimeEvent trigger |
<<timeEvent>> or <<time-event>>
|
|
SendSignalAction SendObjectAction with signal type |
<<sendSignal>> or <<send-signal>>
|
| Trigger |
<<trigger>>
|
UML Shape Example using Stereotype
一个完整的例子
判断的样式
inside 样式 (默认)
Diamond 样式
InsideDiamond (或 Foo1) 样式
判断的结束样式
Diamond 样式 (默认)
- With one branch
- 两个分支 (
B1,B2)
水平线 (hline) 样式
- 一个分
- 两个分支 (
B1,B2)
使用 sytle 定义 (全局) 样式
无样式 (默认)
有样式
你可以使用 style 节点去定义样式然后改变渲染。
Creole on Activity
You can use Creole or HTML Creole on Activity diagram: