工具使用系列之 PlantUML画UML时序图

目录

[1. 简介](#1. 简介)

2.PlantUML简单语法及示例

3.参与者、消息、箭头的设置

[4. 消息的延迟和消息间空间](#4. 消息的延迟和消息间空间)

5.组合消息

6.消息注释

7.生命线

[8. 创建参与者,进入和发出消息](#8. 创建参与者,进入和发出消息)

9.其他样式


1. 简介

时序图是一种UML交互图,它通过描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。

  • 对象
  • 消息
  • 消息传递方向
  • 生命线、控制焦点

2.PlantUML 简单语法及示例

@startuml

:::

@enduml

  • ->绘制参与者之间传递的消息,且不必显式地声明参与者。
  • -->绘制一个虚线箭头。
  • <-和<--同样可以达到绘图目的
  • 箭头的指向就代表消息传递的方向,可读性很好。
  • '单行注释 /' '/多行注释

注:没有显示申明模块的类型,默认是participant,并且随着代码的书写顺序进行从左向右的展示。

3. 参与者、消息、箭头的设置

  • 更改参与者的顺序:采用关键字order,order后可以跟负数。
  • 参与者给自己发消息:用\n表示换行。

参与者:participant、actor、 boundary、control、entity、database

  • 参与者中使用非字母符号:要加双引号
  • 重命名参与者:使用关键字as
  • 参与者图标的背景色:在参与者名称之后加#COLOR ,可以是RGB值,可以是颜色名
  • 消息自动编号:
    • autonumber 从 1 开始对消息自动编号
    • autonumber START 从 START 开始对消息自动编号
    • autonumber START INCREMENT 从 START 开始,按 增量 INCREMENT 对消息自动编号
  • 编号格式:在自动编号语句之后的双引号内指定格式
    • 由 Java 的 DecimalFormat 类实现:主要靠 # 和 0 两种占位符号来指定数字长度
    • 可以用 HTML 标签来制定格式, 如<font color=red>
  • 暂停、继续使用自动编号
    • autonumber stop
    • autonumber resume increment format

PlantUML 画时序图- 常用的HTML 标签

    • <b> 加粗文本
    • <u> 或 <u:#AAAAAA> 或 <u:colorName> 用来加下划线
    • <i> 斜体
    • <s> 或 <s:#AAAAAA> 或 <s:colorName> 用来加删除线
    • <w> 或 <w:#AAAAAA> 或 <w:colorName> 用来加波浪线
    • <color:#AAAAAA> 或 <color:colorName> 用来设置文本颜色
    • <back:#AAAAAA> 或 <back:colorName> 用来设置背景色
    • <size:nn> 设置字体大小
    • <img src="file"> 或 <img:file> 用来添加图片,图片文件必须 是可以访问得到才行。
    • <img src="http://url"> 或 <img:http://url> 用来添加一个互联网图片
  • 表示一条丢失的消息:末尾加 x
  • 让箭头只有上半部分或者下半部分:

将 < 和 > 替换成 \ 或者 /

  • 细箭头:将箭头标记写两次 (如 >> 或 //)
  • 虚线箭头:用 -- 替代 -
  • 箭头末尾加圈:->o
  • 双向箭头:<->

4. 消息的延迟和消息间空间

  • 消息延迟
    • 用... 来表示延迟
    • 并且还可以给延迟添加注释,如...5 minutes latter...
  • 空间
    • 用|||增加空间
    • 指定增加像素的数量,||100||

5. 组合消息

组合消息

    • alt/else------多消息间互斥的选择
    • opt------包含一个可能发生或不发生的序列
    • loop------循环
    • par------并行
    • break------中断
    • critical------关键
    • group, 这个关键词后面的文字会作为组名显示在图形上
    • end用来结束分组。

6. 消息注释

  • 简单注释
    • 单行注释:在消息后加note left:, note right:
    • 多行注释:note left(right)

......

end note

  • 在节点的相对位置添加注释
    • note left(right) of :
    • note over a,b,c....:
  • 注释的个性设置
    • 在note语句后加#COLOR设置颜色。

7. 生命线

  • 生命线的激活和撤销
    • activate
    • deactivate
  • 生命线的终结
    • destroy ------表示一个参与者的生命线的终结
  • 生命线的嵌套

还可以给生命线添加颜色

返回消息,return

8. 创建参与者,进入和发出消息

9. 其他样式

    • header,title,footer
    • 分隔符
      • 用 == 关键词将图表分割多个步骤
    • 其他:newpage
    • 包裹参与者
      *
      • 使用box和end box画盒子将子将参与者包裹起来
      • 还可以在 box 关键字之后添加标题或者背景颜色
    • 移除脚注------hide footbox
    • 填充区设置
      *
      • skinparam ParticipantPadding 30
      • skinparam BoxPadding 100
    • skinparam
    • 可以使用HTML标签来格式化文本
相关推荐
小bo波1 天前
形式化方法 × UML
java·软件工程·uml·面向对象·形式化方法·tla+
lsyeei1 天前
UML 状态机图
软件工程·uml
Warren2Lynch1 天前
破局“伪敏捷”:UML诊断视角下的微服务转型与架构重构——以EcoStream为例
微服务·架构·uml
rolt1 天前
[pdf]《软件方法》全流程引领AI-电子书共560页202606更新
产品经理·架构师·uml
rolt1 天前
[pdf、epub]370道《软件方法》强化自测题业务建模需求分析共310页(202606更新)
产品经理·架构师·uml
lipengxs2 天前
PlantUML、Mermaid、SQL ER、OpenAPI 在线预览工具整理
ai·编辑器·流程图·uml
lipengxs4 天前
写 README/技术方案时被 Ai 生成的 PlantUml/Mermaid 折腾烦了,做了个 预览小工具
ai·预览·plantuml·设计图
lsyeei4 天前
UML建模在软件生命周期中的应用
软件工程·uml
艾利克斯冰6 天前
Java设计模式详解-七大设计原则(持续更新中)
设计模式·uml·开闭原则
HEADKON7 天前
尼洛替尼300mg每日两次空腹服用治慢粒,QT延长风险高,低钾低镁需纠正后用药
uml