工具使用系列之 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标签来格式化文本
相关推荐
a里啊里啊4 小时前
软考-软件评测师:知识点整理(七)——软件工程
设计模式·软件工程·软考·uml·结构化开发·软件评测师·软件模型
Warren2Lynch1 天前
[特殊字符]️ 综合指南:结合使用 C4 模型与 UML
uml·c4
Ting.~1 天前
软件设计师备考笔记【day2】-UML 图解 | 面向对象 | 设计模式
笔记·设计模式·uml
清钟沁桐4 天前
编程设计之三 -- UML
uml
choke2334 天前
深度分析系统建模:从UML基础到类图和对象图的实际应用
大数据·软件工程·uml
黄昏回响6 天前
UML与SysML深度解析:从软件工程到系统工程的建模语言进化之路
程序人生·软件工程·uml·改行学it
雪碧聊技术7 天前
UML相关知识点精讲
uml
Warren2Lynch8 天前
Visual Paradigm UML 平台 6 个月深度使用的真实评测
uml
Jump 不二11 天前
AI 绘图 Skill|Markdown 一键出架构图、UML、数据可视化
人工智能·信息可视化·语言模型·uml
Rsun0455113 天前
Java UML类图从入门到实战
uml