工具使用系列之 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标签来格式化文本
相关推荐
小湘西3 小时前
UML 用例图图中包含和扩展区别
uml·设计规范·设计语言
明洞日记3 小时前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计
奋斗的小方4 天前
01 一文读懂UML类图:核心概念与关系详解
java·uml
钝挫力PROGRAMER5 天前
UML构造块中的关系梳理
软件工程·uml
未来之窗软件服务5 天前
计算机等级考试—UML 核心图分类与图标对照表—东方仙盟练气期
uml·计算机软考·仙盟创梦ide·东方仙盟
rolt8 天前
质量需求当成愿景、伪创新的基本盘《软件方法》第2章
产品经理·uml·软件方法
rolt16 天前
利用AI识别损毁程度是愿景吗《软件方法》第2章
产品经理·需求分析·uml
rolt16 天前
[pdf]《软件方法》全流程引领AI-电子书共435页202601更新
产品经理·ddd·架构师·uml·领域驱动设计
:mnong16 天前
跟着《软件需求分析和设计实践指南》成长
学习·需求分析·uml·软件需求