工具使用系列之 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标签来格式化文本
相关推荐
rolt3 天前
[存档]Alistair Cockburn-2003年11月UMLChina交流会
软件工程·产品经理·uml·敏捷开发·用例·cockburn
rolt4 天前
[鉴赏]摇身一变鼓吹软件工程-01-Allen Holub
ai·软件工程·uml·敏捷开发
csdn_aspnet6 天前
.NETCore EF Core 根据 mysql 数据表按顺序生成简单编号
mysql·.net core·efcore·1024程序员节·sequence·编号
csdn_aspnet6 天前
.NETCore SqlSuagr 根据 mysql 数据表按顺序生成简单编号
mysql·.netcore·sqlsugar·1024程序员节·sequence·.net8·编号
rolt17 天前
[重写]《软件方法》全流程引领AI第1章-1.3为什么要使用标准建模语言(202610更新)
软件工程·产品经理·架构师·uml·本体·fde
带金箍的至尊宝17 天前
系统架构设计师笔记 08:UML 用例图、类图、时序图
笔记·系统架构·uml
rolt18 天前
向窃·格瓦拉学习本体建模基础知识-第7赛季第22轮
软件工程·uml·面向对象·数理逻辑
抓到一只狗20 天前
系统分析师——统一建模语言
软件工程·uml·类图·用例图·系统分析师·顺序图·高级软考
rolt25 天前
智能机床-06 机械 ISO 23704-4-2026-用UML表示的行业标准
软件工程·产品经理·架构师·uml
rolt1 个月前
05 医学 ISO 13940-用UML表示的行业标准,健康信息学 — 支持照护连续性的概念体系
软件工程·架构师·uml