架构设计必备:时序图说明及画法

article/2025/9/1 14:14:25

用途

        时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。

  1. 梳理业务流程
  2. 梳理代码逻辑

元素类型

1.角色(Actor)

用法:系统角色,可以是人或者其他系统,子系统。

画法:以一个小人图标表示。

2.对象(Object)

用法:对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表类角色。

画法:对象位于时序图的顶部,以一个矩形表示。

3.生命线(LifeLine)

用法:生命线代表时序图中的对象在一段时期内的存在。

画法:时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间的消息存在于两条虚线间。

4.控制焦点(Activation)

用法:控制焦点代表时序图中的对象执行一项操作的时期。

画法:在时序图中每条生命线上的窄的矩形代表活动期。

5.消息(Message)

消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。

类型消息

  1. 同步消息:就是指消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。实线和实心箭头组成。
  2. 异步消息:就是指消息发送者通过消息把信号传递给消息的接收者,然后自己继续活动,不等待接收者返回消息或者控制。异步消息的接收者和发送者是并发工作的。实线和大于号箭头组成。
  3. 返回消息:指消息从过程调用返回。小于号箭头和虚线组成。
  4. 自关联消息:表示方法的自身调用以及一个对象内的一个方法调用另外一个方法,

6.组合片段(Combined Fragment)

13总类型:

  1. ref:引用其他地方定义的组合片段;
  2. alt:在一组行为中根据特定的条件选择某个交互;表示条件选择的意思,类似if else。alt需填写参数。
  3. opt:表示一个可选的行为;
  4. break:提供了和编程语言中的break类拟的机制;
  5. par:支持交互片段的并发执行;
  6. seq:强迫交互按照特定的顺序执行;
  7. strict:明确定义了一组交互片段的执行顺序;
  8. neg:用来标志不应该发生的交互;
  9. region:标志在组合片段中先于其他交互片断发生的交互;
  10. ignore:明确定义了交互片段不应该响应的消息;
  11. consider:明确标志了应该被处理的消息
  12. assert:标志了在交互片段中作为事件唯一的合法继续者的操作数;
  13. loop:说明交互片段会被重复执行

画法 :

这里以opt为例,表示未注册用户需要执行注册流程。

其他画法单独列出:(待写)


http://chatgpt.dhexx.cn/article/uxD0L8Tm.shtml

相关文章

使用EA工具画(时序图)

选择放置序列图的位置 放置序列图的位置跟一般的图形不大一样,并不是放置在特定的"包(package)"中。通常,序列图的表达对象如何合作,进而来完成某一个用例的任务的,因此,序列图似乎要放在用例当中才合理。 …

时序图和流程图的区别

时序图是交互图的一种。 时序图和交互图都描述了软件的动态特征,是软件处理业务逻辑能力的体现。 流程图面向业务逻辑,不涉及软件内部的组件和结构,不涉及业务逻辑处理的参与者,只考虑业务处理的步骤及流程。 时序图&#xff0…

【资料】如何看懂时序图?

我们都知道在学校是通过铃声来控制所有班级的上下课时间,那个单片机是通过什么样的办法进行取指令,执行指令和其它操作的呢?在这里引入了一个时序的概念: 一、时钟电路 单片机时钟电路有三种方式: 1、单片机内部有一个…

[UML工具]分享一个WEB在线画时序图的工具

(1)在线时序图工具websequencediagrams,效果图如下,支持多种样式,如手绘效果等。 地址:http://www.websequencediagrams.com/ (2) StarUml 添加时序等图(开源免费&#…

《软件工具》分享2款好用的时序图工具

在分享工具之前,需要说明下什么是时序图,时序图是指MCU等执行指令时发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是时序图,也就是时序图是一系列具有时间顺序的脉冲信号图。 值得注意的是,网上很多资料都将UML序…

什么是时序图

什么是时序图 时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。 让我们来看一看visio2016对时序图的的解释。 时序图的元素 我们在画时序图时会涉及7种元素&#xff1a…

软件推荐:画时序图的小工具Timegen

很多芯片手册里面都有介绍操作的时序,画个时序图之类的虽然东西不是很多,但是如果没有合适的软件还真是挺麻烦,今天推荐一个只有几兆大小的小软件TimeGen,操作也很简单,我用的是3.1的版本,需要的童鞋自己百…

【超好用】时序图画图工具TimeGen 3.2安装和使用教程

环 境:windows 10 64位 文章目录 一、安装(1)安装timegen-pro-3.2文件(2)替换TimeGen3.exe文件二、使用教程(1)tg_draw操作(2)tg_setup操作(3)tg_…

常用的画流程图/时序图工具简介

流程图部分。 一、Graphviz 先下载并安装Graphviz。 然后在sublime下安装插件。 这样,就支持Graphviz的dot语言语法了。 在subime下,添加一个dot语言的编译系统dotCompile.sublime-build { "cmd": ["D:\\Graphviz2.38\\bin\\d…

时序图在线工具

在线工具:在线时序图 PS 开源的各类流程图 https://app.diagrams.net/

分享一款绘制时序图的实用小工具

转自 | 果果小师弟 今天分享一款实用小工具:WaveDrom,它是一个免费开源的在线数字时序图渲染引擎。它可以使用JavaScript, HTML5和SVG来将时序图的WaveJSON描述转成SVG矢量图形,从而进行显示。WaveDrom可以嵌入到任何网页中。WaveDrom编辑器可…

快速学习时序图:时序图简介、画法及实例

一、 什么是时序图? 时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。 时序图是一个二维图,横轴表示对象&a…

PlantUML:一款让你爽到起飞的高效代码绘制时序图工具

背景 对于工作中遇到一些复杂的业务逻辑场景,需要借助图形工具去准确的表达,会更高效的理解和梳理复杂的逻辑,同时在跟领导和同事汇报时也更能清晰、准确、快速的表达想法以及方案。比如梳理源码常用的时序图以及流程图等,之前在…

java时序图工具_开发必备的小工具,你用过几个?

今天就简单介绍一下平时用到的一些小工具.首先我平时是用IDEA开发的,所以下面的介绍都是和IDEA相关的.本文主要介绍我平时在哪些场景使用,使用了哪些功能,至于IDEA怎么安装插件和插件有哪些额外的功能,这些你把插件名字对着搜索引擎一搜就很多了. 1.SequenceDiagram 这个工具是…

信号波形时序图常用工具推荐

Refer: 下载:画时序图的四大神器_可编程器件-面包板社区 (eet-china.com) 软件工程师,习惯使用StarUML画Timing Diagram, 硬件工程师建议使用一下软件。 1、AndyTiming 免费的,这个有一个知乎的博文可以参考 https://zhuanlan.zhihu.com/p…

Java 静态代码块详解

文章目录 一、普通初始化块:二、静态代码块:三、多种代码块间的执行顺序 首先得知道什么是初始化块:就是类中得一段用大括号 {} 括起来得独立的代码空间。 而初始化块分成了 普通初始化块和 静态的初始化块(也称为 静态代码块&…

java 代码块:静态代码块和非静态代码块

main方法是程序的入口,加入没有main方法程序无法启动,但是main方法不是第一个执行的。 我认为:在这个类加载时,编译器会找到main方法,从这里开始运行,但是当你把这个类加载的时候,静态代码块就…

java中代码块之静态代码块和非静态代码块

一、代码块: 语法:使用{}包裹的,可以在{}中写代码。 修饰符:static 或者不修饰。 static修饰的为静态代码代码块。 格式: //静态代码块,随着类的加载児执行static{System.out.println("这是静态代码块…

Java~~静态代码块

1. 可以使用static关键字来定义“静态代码块”: (1)语法格式: static{ java语句; } (2)静态代码块在类加载时执行,并且只执行一次。 (3)静态代码块在一个类…

java非静态代码块和静态代码块介绍

代码块 SE.10.0…02.28 非静态普通代码块:定义在方法内部的代码块,不用任何关键字修饰,又名构造代码块、实例代码块 静态代码块:用static修饰的代码块 非静态代码块 public class Test {public static void main(String[] args…