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

article/2025/10/7 3:32:05

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

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

元素类型

1.角色(Actor)

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

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

2.对象(Object)

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

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

 

3.生命线(LifeLine)

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

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

4.控制焦点(Activation)

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

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

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

类型消息

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

6.组合片段(Combined Fragment)
总类型:(13)

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

画法 :

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

 

 


http://chatgpt.dhexx.cn/article/1ZDfdDnX.shtml

相关文章

记录一次帮公司搭建一次linux正式环境

安装JDK centos7 用yum安装java81.查看yum源中是否有相关套件yum -y list java*2.上图中可以看到有两个自己想用的套件,经过试验发现用yum install java-1.8.0-openjdk 时最后 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_6目录下只用一个jre文件&a…

Linux7启动MySQL失败_解决Linux-Centos7启动Mysql服务失败丢失mysql.sock问题

在新安装mysql后进行启动发现报错 mysql启动服务命令 Starting mysqld (via systemctl):? Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld3306.service" and "journalctl -xe" for de…

Centos离线安装Mysql

一、tar.gz文件安装Mysql 5.7 官方参考文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html 1.下载tar.gz文件 官网:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 根据需要选择64位or32位文件,下载完…

公司网站搭建的架构

目录 简介拓扑图需求首先先搭建好MHA集群跟新主机时间修改主机名配置所有主机之间SSH无密码验证将私钥发送到所有主机(包括本机)将下载好的软件包上传到主机配置本地yum源解压软件包在manager主机和各个node节点安装软件依赖包安装MHA manager依赖的perl…

Docker 部署 web 项目

本篇文章主要介绍将一个完整的 Web 项目(包括数据库、后端、前端)部署到 Docker 中的详细步骤 项目是前后端分离的,后端使用 SpringBoot JKD17 MySQL 8;前端使用 Vue webpack。服务器是跑在 WSL2 上的 Ubuntu 20.04.5 &#x1…

阿里巴巴 JAVA 开发手册

阿里巴巴 JAVA 开发手册 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开 一、 编程规约(一) 命名规约1. 【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例: _name / __name / $Object / name_ / …

2016阿里巴巴73款开源产品全向图

阿里巴巴集团已经开源 115 个项目,加入 FSF 基金会、Apache 基金会、Linux 基金会和 Xen 的顾问团队,并在云栖大会北京峰会宣布 AliSQL 开源。 为了让大家能更好,更全面的了解和应用上阿里开源项目, 云栖社区特别制作了一张“201…

mysql8.0 启动不了mysql_8.0.11版本Mysql遇到MySQL 服务无法启动的解决方法

转:https://blog.csdn.net/iyayaqiqi/article/details/80536110 系统环境:win10(1803),64位 MySQL版本:8.0.11免安装版 MySQL下载地址:https://dev.mysql.com/downloads/mysql,在下载页面往下拉,选择自己的…

CentOS下postgres怎么恢复数据库.bak文件_数据架构选型必读:4月数据库产品技术解析...

本期要点 DB-Engines数据库排行榜 一、RDBMS MySQL发布8.0.20版本,5.6版本于2021年2月停止更新DB2发布11.5.2版本,且看容器化是否可为DB2注入新活力PostgreSQL所有版本的小版本更新到最新版,停止维护9.4OceanBase发布2.2.5版本 二、NoSQL Red…

小麦苗的常用代码--常用命令(仅限自己使用)

小麦苗的常用代码--常用命令(仅限自己使用) 囗 ■ ☑ ● •◆ ※ ☆ ★ ⊙ √ → innobackupex --help -? -h helpy systeminfo | find "系统类型" ----- editplus 替换空行: ^[ \t]*\n EDIT -> DELETE->DELETE BLANK LINES ----- ed…

Spring+SpringMVC+Mybatis分布式敏捷开发系统架构(附源码)

前言 zheng项目不仅仅是一个开发架构,而是努力打造一套从 前端模板 - 基础框架 - 分布式架构 - 开源项目 - 持续集成 - 自动化部署 - 系统监测 - 无缝升级 的全方位J2EE企业级开发解决方案。 项目介绍 基于SpringSpringMVCMybatis分布式敏捷开发系统架构&#xff0c…

2022年最新版 | Flink经典线上问题小盘点

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 本文已经加入「大数据成神之路PDF版」中提供下载。你可以关注公众号,后台回复:「PDF」 即可获取。 2020年和2021年分别写了很多篇类似的文章,这篇文章是关于Flink生产…

Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 我在之前的文章中已经详细的介绍过Flink CDC的原理和实践了。 如果你对Flink CDC 还没有什么概念,可以参考这里:Flink CDC 原理及生产实践。 在实际生产中相信已经有很多小伙伴尝…

MySql的Binlog日志工具分析:Canal、Maxwell、Databus、DTS

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! Canal 定位:基于数据库增量日志解析&#…

[架构设计]--让你的数据库流动起来 – 利用MySQL Binlog实现流式实时分析架构

感谢原文作者:https://aws.amazon.com/cn/blogs/china/mysql-binlog-architecture/ 数据分析特别是实时数据分析,已经越来越多的成为各行各业的分析要求与标准 – 例如,(新)零售行业可能希望通过线下POS数据与实时门店…

Flink实战 - Binlog日志并对接Kafka实战

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好玩! 对于 Flink 数据流的处理,一般都是去直…

mysql 无bin_Mysql无Binlog数据恢复

无全量备份、未开启binlog日志,利用percona工具恢复 delete的数据 今天,利用Percona Data Recovery Tool for InnoDB工具(仅支持InnoDB,MyISAM不支持),可以找回被删除的数据。 原理:在InnoDB引擎,delete删除…

nodejs安装和环境配置

1、node下载 官方下载地址: Node.js 下载node-v16.16.0-x64 2、安装测试 安装一直cmd即可 在主目录下打开cmd node -v 查看node的版本 npm -v 查看npm的版本(新版的node安装自带安装npm) 3、配置全局安装的模块路径和缓存路径 在nodejs文件夹,创建 node_global 和 node_…

Nodejs安装及常见问题

一、安装环境 简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。…

nodejs安装的坑后坑

npm改默认位置后报错权限不足 由于不想将npm的模块下载到c盘,虽然某人一直说node才十几兆,但是C盘是真的小,绝对不能放里面了。 本来我的node就是安装在d盘,今天看到了npm改路径的方法,正好就想改一下,没想…