时序图,程序员的保命技能

article/2025/9/17 9:48:42

最近,各个大厂都在开猿节流,程序员们在公司里,靠什么技能来“保命”?

一方面,大家要有过硬的编程基础,另一方面,对UML图的掌握也很重要。今天,我们就来说一说其中一种重要的UML图:时序图

时序图的使用场景非常广泛,几乎各行各业都可以使用,可以用于梳理业务流程,使业务看起来非常清晰,也可以梳理开源软件,梳理各个组件之间的关系,层次非常清楚,便于记忆,也可以使用在更多场景。

一、什么是时序图?

时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作,包括发送消息、接收消息、处理消息、返回消息等。

时序图重在展示对象之间的交互顺序,尤其强调交互的时间顺序,它可以直观的描述并发进程。

二、时序图的组成元素

时序图的组成元素主要有5种:

1. 角色(Actor)

系统角色,可以是人或者其他系统和子系统,以一个小人图标表示。

2. 对象(Object)

对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:

1)对象名和类名。例如:华为手机:手机。

2)只显示类名,不显示对象,即为一个匿名对象。例如::手机,在时序图中,用“:类”表示。

3)只显示对象名,不显示类名。例如:华为手机:,在时序图中,用“对象:”表示。

3. 生命线(LifeLine)

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

4. 激活期(Activation)

又叫控制焦点,它代表时序图中在对象时间线上某段时期执行的操作,以一个很窄的矩形表示。

5. 消息(Message)

表示对象之间发送的信息。消息分为三种类型。

1)同步消息(Synchronous Message)。消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义,以一条实线和实心箭头表示。

2)异步消息(Asynchronous Message)。消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的,以一条实线和大于号表示。

3)返回消息(Return Message)。返回消息表示从过程调用返回,以小于号和虚线表示。

三、时序图优质模板

为了方便大家学习和绘制时序图,小编为大家准备了几张不同场景下的时序图绘制案例供大家研究和学习,希望大家能快速掌握时序图的使用技巧。

1、微信支付时序图

30e3f282400b2423b3c31e8b75ab535d.png

2、时序图-登录

fedd5858682b9e6d68b7c0a5a3e052d7.png

3、验证码注册时序图

9936e60ac8271bf3166c14f7a0c4d66b.png

4、店员-时序图

3658b9bf0072ef35279457cc28934863.png

5、sso登录时序图

87fbe787597b9ef62455ba9b4d9d9ef7.png

6、打印电子发票时序图

4bc7e2cc1a05bae4e8eb1bb897636ac1.png

以上是在不同场景下程序员绘制时序图的案例,以上模板可以直接克隆使用,但授之以鱼不如授之以渔,接下来就为你分享时序图的绘制方法和绘制工具。

四、时序图的画法

时序图的绘制方法简单总结为以下3步:

1、划清边界,识别交互语境

即界定好自己所要画的时序图的范围,了解所要画的时序图的前提和背景。

比如“学生信息管理”就是所要绘制的时序图的交互内容,就不需要往上延伸到学生注册并认证身份,不需要用户登录,也不需要往下延伸到查询课表、资料下载等无关的内容上。

889ec8b05a608b1daa5b6dcac470029b.png

2、梳理角色和对象

在“学生信息管理时序图”中,角色有学生/教务用户,对象有教务主界面、学生信息界面、管理学生信息界面、数据库。

注意:角色和对象都是名词,动词不可以作为角色和对象。

3、添加消息

从触发整个交互的某个消息开始,在生命线之间从上到下依次画出所有消息,并注明每个消息的特性,如参数等。

  • 如何绘制时序图?

推荐大家使用ProcessOn——一款专业在线作图工具和知识分享社区,支持流程图、思维导图、原型图、网络拓扑图、UML等专业图形的绘制,无需下载安装,即可免费使用。

以下是使用ProcessOn绘制时序图的操作方法:

Step1:注册登录ProcessOn(https://www.processon.com)

fe4704c5f7fc1572fbfa9c5b509b1cbc.gif

Step2:进入个人文件页,新建流程图,添加UML图形到图形区

248d65abd51c9134240426ebc6a2497b.gif

Step3:拖拽使用UML相关图形到编辑区

c4813db37bdc730791c17e3d48745f35.gif

Step4:标注内容,添加消息即可

如果你想让自己的时序图更美观一些,可以把标题、矩形框等填充不同颜色、相同的图标尽可能大小相同(复用功能很好用哦)、上下图形保持对齐等哦。

时序图的绘制方法和使用场景,小编已经分享完了,你学会了吗?没学会也没关系,模板库中还有更多时序图模板可以学习哦。同时,小编也为大家准备了ProcessOn的福利,识别下方海报二维码即可领取哦。

76c54d9711ed37031c380b4dde0740de.png

 ProcessOn产品介绍 

1.支持思维导图、流程图、原型图、时序图、架构图等十多种图形绘制。

2.无需下载安装,多端免费使用。

3.支持多人在线协作、修改文件。

4.有个人和团队两个版本,团队版可轻松实现资源共享和团队管理。

5.网站有海量各行各业的优质模板可供使用。

6.模板发布,可以获得收益,知识变现。

最后,祝愿程序员小伙伴们工作顺利,留住头发!


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

相关文章

Spring Boot异步任务、异步消息

目录 1.异步任务 1.1.概述 1.2.使用 2.异步消息 2.1.概述 2.2.使用 1.异步任务 1.1.概述 举一个例子,我现在有一个网上商城,客户在界面点击下单后,后台需要完成两步: 1.创建客户订单 2.发短信通知客户订单号 这里面第2…

python_异步

深入理解 Python 异步编程 前言 很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现各种古怪的问题难以解决。而且使用了异步框架…

httpx 与 异步

前言 HTTPX 是新一代的 python 解析库,它是一个功能齐全的 HTTP 客户端,用于Python 3,较requests(只能发送同步请求)和 aiohttp(只能发送异步请求)不同的是,它同时提供同步和异步 AP…

一文了解异步编程基础

什么是异步编程? 异步编程是指并发编程的范式,其中除了单个主应用程序线程之外,工作可以委托给一个或多个并行工作线程。这被称为非阻塞系统,其中整体系统速度不受订单执行的影响,并且多个进程可以同时发生。 函数从 …

异步函数async

什么是同步异步 在最新的ES7(ES2017)中提出的前端异步特性:async、await。 在了解async和await之前得先明白什么是同步函数,什么是异步函数。 同步函数:当一个函数是同步执行时,那么当该函数被调用时不会…

异步(async、await)

同步与异步 同步:如果一个程序调用某个方法,等待其执行所有处理后才继续执行,我们就称这样的方法是同步的,这是默认的形式异步:异步的方法在处理完成之前就返回到调用方法,C#的async/await特性可以创建并使…

async/awiat和promise之间的区别

今天看到了一段代码 async function async1() {console.log(async1 start);await async2();console.log(async1 end); } async function async2() {console.log(async2); } console.log(script start); setTimeout(function() {console.log(setTimeout); }, 0) async1(); new …

什么是异步

文章目录 前言一、异步是什么?二、举个例子来理解异步 1.异步最典型的例子就是“回调函数”总结 前言 在vue的过程中,我们一定会遇到诸如: function(参数).then(res>{}) 形式的代码。到底怎么编译执行的呢 &#x…

Spring Boot 基础学习之(五)页面通过自定义LocaleResolver组件实现网页页面的的中英文转换

本次项目所有能够使用的静态资源可以免费进行下载 静态资源 在前端网页,是不是看见过这样的功能 基础网页:中文表示 点击下面的English 按钮网页显示文字开始切换 通过功能性按钮实现中英文切换,在浏览器中,都带着一个功能叫翻…

网页中文转英文(国际化)

背景: 我的项目是已经完成的项目,因为要拓展海外市场,需要支持英文。 采用的方式是添加配置文件,见下文详细步骤。 本文基本转自:http://blog.csdn.net/wuhawang/article/details/52228589 在他的基础上给大家一点提示…

英语数字转换器

英语数字转换器 STL中map,stack和string的运用 描述: 在这个问题中,将用英语给你一个或多个整数。你的任务是将这些数字转换成整型表示。数字范围从-999,999,999到999,999,999.下面是你的程序必须考虑的详尽的英语单词表: neg…

Unity 中英文转换

在Resources下创建文件夹LanguageTxt,再其创建“Chinese.txt”及“English.txt”(记得保存文本时选择UTF-8) Chinese.txt Btn:这是一个按钮 English.txt Btn:This is a button 在Scripts下创建“LanguageManager.cs”及“UIText.cs” L…

SAP中英文转换--中文转英文

中文转英文-函数:CONVERSION_EXIT_CUNIT_INPUT CALL FUNCTION ‘CONVERSION_EXIT_CUNIT_INPUT’ EXPORTING input “输入的中文单位 IMPORTING output “输出的英文单位 效果图:

SAP 中英文转换-英转中

英文转中文-函数:CONVERSION_EXIT_CUNIT_OUTPUT CALL FUNCTION ‘CONVERSION_EXIT_CUNIT_OUTPUT’ EXPORTING input “输入的英文单位 IMPORTING output “输出的中文单位

将数字转换为中文

功能需求 做公司项目遇到一个有关交易金额(合同签订书)的内容,需要将查询出来的交易金额转化为中文数字,例如:壹拾捌万伍仟元整(185000.00) 需求分析 因为合同书中的数据都是动态的&#xff0c…

Java 16进制报文转换中英文报文(通过字节转换)

最近在搞这个16进制报文,网上找了很多地方,解出来的结果不是乱码就是报错,干脆自己写了。 大概是这样的,16进制的报文大家都知道是什么样子 例如: 3C E4 BA A4 E6 98 93 E6 88 90 E5 8A 9F EF BC 81 3E 20 3C 42 61 6B 31 2F 3E 因为其中包…

通过C#进行中英文转换

通过C#进行中英文转换 编写相应语言的XML文件&#xff0c;添加xml文件 ChineseSimplified.xml文件内容 <?xml version"1.0" encoding"GB2312" ?> <Softimite Language"12"><Form><Name>LoginForm</Name><…

【Adobe After Effects中英文转换2019——2023版】

** Adobe After Effects中英文转换2019——2023版 ** 如果是默认安装的软件&#xff0c;在桌面右击AE图标&#xff0c;点击打开文件所在位置&#xff0c;来到软件安装目录 C:\Program Files\Adobe\Adobe After Effects 2023\Support Files 找到AMT文件夹 点击进入&#xf…

在线中英文符号转换工具

在线中英文符号转换工具 在线中英文符号转换工具 将中文符号转换成英文符号或将英文符号转换成中文符号&#xff0c; 将单引号‘’都转换成’&#xff0c; 将双引号“”都转换成" 将中括号【】转换成[]&#xff0c; 将大括号&#xff5b;&#xff5d;转换成{} 将逗号&…

英文表格如何快速转换为中文?

今天跟大家分享一下英文表格如何快速转换为中文&#xff1f; 1.首先打开Excel文件&#xff0c;选中要翻译的单元格&#xff0c;点击【DIY工具箱】 ​ 2.点击【翻译】 3.选择【有道翻译】 4.将翻译语言设置为中文&#xff0c;然后点击【确定】 5.鼠标点击一个合适的单元格作为翻…