UML—时序图是什么
目录
前言:
什么是时序图:
时序图的组成元素:
1. 角色(Actor)
2. 对象(Object)
3. 生命线(LifeLine)
4. 激活期(Activation)
5. 消息类型(Message)
6.组合片段(Combined fragment)
时序图的绘制规则:
绘制时序图的3步:
1.划清边界,识别交互语境
2.梳理角色和对象
3.添加消息
单点登录时序图:
总结:
前言:
时序图作为常用的UML交互图,可以直观传达系统内外之间的交互过程,经常用在详细设计文档中。
经常有人玩笑说,想判断一个产品经理的逻辑能力,让他画一个流程图或时序图就知道了,原因是你必须在对业务了解的基础上,抽象出业务各个环节的交互,区分业务涉及的各个对象的边界,才能画出一张完整的流程图或时序图,所以时序图是产品经理,也是程序员的必备技能之一。
它的使用场景非常广泛,几乎各行各业都可以使用,用于梳理业务流程,使业务看起来非常清晰,也可以梳理开源软件,梳理各个组件之间的关系,层次非常清楚,便于记忆,也可以使用在更多场景。
什么是时序图:
时序图(Sequence Diagram)是一种UML(Unified Modeling Language)图表,用于描述系统中对象之间的交互行为。时序图可以显示对象之间的消息传递顺序,以及对象之间的协作和通信方式。时序图通常用于描述系统的动态行为,例如,用户与系统之间的交互、对象之间的交互等。
时序图的组成元素:
1. 角色(Actor)
系统角色,可以是人或者其他系统和子系统,以一个小人图标表示。

2. 对象(Object)

2.1对象的三种命名方式:

1.对象名和类名。例如:吃
(汉堡):
(汉堡):。在时序图中,用"对象:类"表示:
2.只显示对象,不显示类名。例如::吃
(汉堡),在时序图中,用“对象”表示。
3.只显示类名,不显示对象名。例如:
(汉堡):,在时序图中,用“类名:”表示。
2.2命名方式的选择:
三种命名方式都可以,选择最容易让阅读该时序图的人理解的命名方式。
2.3对象的排序顺序
时序图中对象的左右顺序并不重要,但为了使时序图清晰简洁,应遵循以下两个原则:
-
将交互频繁的对象尽可能靠拢。
-
将初始化整个交互活动的对象放置在最左端。
3. 生命线(LifeLine)
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线),以一条垂直的虚线表示。对象间的消息存在于两条虚线间。

4. 激活期(Activation)
表示一个对象执行一个动作所经历的时间段,一般情况下,当一个对象收到其它对象发送的消息称时时会被激活,在激活期内处理消息,激活结束时应发送一个消息

5. 消息类型(Message)

1.简单消息
简单消息可以泛指对象之间的任何消息的调用或发送,而不用关系是异步还是同步
2.同步消息
是指在发送消息时,程序必须等待接受者的相应,才可以执行。同步消息通常使用返回值或异常来表示相应的消息。
3.异步消息
是指发送消息之后,程序可以执行,不需要等待接收者的相应。异步消息通常使用回函数或事件来处理相应结果
4.自反消息
是简单消息的一种,只能是对象像自己发送消息,而不能给其它对象发送消息
6.组合片段(Combined fragment)
片段类型
名称
说明
Opt
选项
包含一个可能发生的序列。可以在临界中指定序列发生的条件
Alt
抉择
包含一个片段列表,这些片段包含消息序列,在任何情况下只发生一个序列
可以在每个片段中设置一个临界来指示该片段可以运行的条件,else的临界指示其他任何临界都不为True时运行的片段,如果所有临界都为False并且没有else,则不执行任何片段
LOOP
循环
片段重复一定次数,可以在临界中指示片段重复的条件
Loop组合片段具有"Min"和"Max"属性,它们指示片段可以重复的最小和最大次默认值是无限制的
Break
中断
如果执行此片段,则放弃序列的其余部分,可以使用临界来指示发生中断的条件
Par
并行
并行处理。片段中的时间可以交错
Critical
关键
用在Par或Sep片段中。指示片段中的消息不得与其他消息交错
Sep
弱顺序
有两个或更多操作数片段,设计用一生命线的消息必须以片段的顺序发生,如果消息设计的生命线不同,来自不同片段的消息可能并行交错
Strict
强顺序
有两个或更多操作数片段,这些片段必须按给定顺序发生
Consider
考虑
指定片段描述的消息列表,其他消息可发生在运行的系统中,但对此描述来说意义不大
在"Messages"属性来键入该列表
Ignorre
忽略
此片段未描述的消息列表,这些消息可能发生在运行的系统中,但对此描述来说意义不大
在"Messages"属性中不能键入该列表
Assert
断言
操作数片段指定唯一有效的序列,通常在Consider或Ignore片段中
Neg
否定
此片段:中显示的序列不得发生。通常用来Consider或Ignore片段中
时序图的绘制规则:

绘制时序图的3步:
1.划清边界,识别交互语境
即界定好自己所要画的时序图的范围,了解所要画的时序图的前提和背景。
比如“学生信息管理”就是所要绘制的时序图的交互内容,就不需要往上延伸到学生注册并认证身份,不需要用户登录,也不需要往下延伸到查询课表、资料下载等无关的内容上。
2.梳理角色和对象
在”学生信息管理的时序图”中校色有学生/教务用户,对象有教务界面,学生信息界面、管理学生信息界面、数据库.
注意的是:角色和对象都是名词,动词不可以作为角色和对象
3.添加消息
从触发整个交互的某个消息开始,在生命线之间,从上到下一次画出所有消息,并注明每个消息的特性,如参数等
单点登录时序图:

总结:
时序图可以帮助我们更好地理解系统中各个对象之间的交互关系和消息传递顺序,以及对象之间的协作和通信方式。时序图可以用于描述系统中的动态行为,例如,用户与系统之间的交互、对象之间的交互等。在软件开发过程中,时序图通常用于设计和验证系统的交互行为,以及检查系统中的潜在错误和问题。
参考资料:产品经理&程序员技能提升之「时序图」,附9张实操案例! (qq.com)
参考资料:快速学习时序图:时序图简介、画法及实例 | 人人都是产品经理 (woshipm.com)
相关文章:
UML—时序图是什么
目录 前言: 什么是时序图: 时序图的组成元素: 1. 角色(Actor) 2. 对象(Object) 3. 生命线(LifeLine) 4. 激活期(Activation) 5. 消息类型(Message) 6.组合片段(Combined fragment) 时序图的绘制规则: 绘制时序图的3步: 1.划清边界…...
【每日一题Day364】LC2003每棵子树内缺失的最小基因值 | dfs
每棵子树内缺失的最小基因值【LC2003】 有一棵根节点为 0 的 家族树 ,总共包含 n 个节点,节点编号为 0 到 n - 1 。给你一个下标从 0 开始的整数数组 parents ,其中 parents[i] 是节点 i 的父节点。由于节点 0 是 根 ,所以 parent…...
调试记录 单片机GD32F103C8T6(兆易创新) 程序烧写完成但是没有现象 (自己做的板子)
1. 单片机GD32F103C8T6 的资料 CPU内核:ARM Cortex-M3 CPU最大主频:108MHz 工作电压范围:2.6V~3.6V 程序存储容量:64KB 程序存储器类型:FLASH RAM, 总容量:20KB GPIO端口数量:37 最…...
Leetcode刷题笔记--Hot91--100
1--汉明距离(461) 主要思路: 按位异或,统计1的个数; #include <iostream> #include <vector>class Solution { public:int hammingDistance(int x, int y) {int z x ^ y; // 按位异或int res 0;while(…...
算法训练一——链表
文章目录 已做...
【JAVA】类与对象的重点解析
个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言类与对象的关系JAVA源文件有关类的重要事项static关键字 前言 Java是一种面向对象编程语言,OOP是Java最重要的概念之一。学习OOP时,学生必须理解面向…...
ES6对象扩展
ES6对象扩展是指在ES6中新增的一些对象属性和方法,包括对象属性的简写、计算属性名、对象方法的简写、对象的可迭代性、拓展运算符等。 下面是一些常用的ES6对象扩展: 对象属性的简写 ES6中,当对象的属性名和赋值变量名相同时,…...
docker应用部署---Tomcat的部署配置
1. 搜索tomcat镜像 docker search tomcat2. 拉取tomcat镜像 docker pull tomcat3. 创建容器,设置端口映射、目录映射 # 在/root目录下创建tomcat目录用于存储tomcat数据信息 mkdir ~/tomcat cd ~/tomcatdocker run -id --namec_tomcat \ -p 8080:8080 \ -v $PWD:…...
TestCenter测试管理工具
estCenter(简称TC)一款广受好评的测试管理工具,让测试工作更规范、更有效率,实现测试流程无纸化,测试数据资产化。 产品概述 TC流程图 产品功能 一、案例库 案例库集中化管理,支持对测试用例集中管理&…...
索引切片复习
# loc方法 data2.loc[:4,[ymd, bWendu]]# iloc方法 —— 连续取字段 data2.iloc[:4,1:3]# iloc方法 —— 非连续取字段 data2.iloc[:4,[1,4]]# 直接选取单个字段 —— Series data2[ymd]# 直接选取单个字段 —— DataFrame data2[[ymd]]# 直接选取多个字段 —— DataFrame data…...
想入门网络安全,这些前置准备要做好!
网上有很多关于网络安全如何学习、如何入门的内容,但是仍然有很多小白不懂网络安全要怎么去学习。这是由于网络安全包含的范围确实比较广,学习的内容也比较多,所以在刚开始了解的时候确实会有点搞不清楚状况。 这里有一个方法,不要…...
Spark新特性与核心概念
一、Sparkshuffle (1)Map和Reduce 在shuffle过程中,提供数据的称之为Map端(Shuffle Write),接受数据的称之为Redeuce端(Shuffle Read),在Spark的两个阶段中,总…...
设计模式_状态模式
状态模式 介绍 设计模式定义案例问题堆积在哪里解决办法状态模式一个对象 状态可以发生改变 不同的状态又有不同的行为逻辑游戏角色 加载不同的技能 每个技能有不同的:攻击逻辑 攻击范围 动作等等1 状态很多 2 每个状态有自己的属性和逻辑每种状态单独写一个类 角色…...
css 某个元素被挤的显示不完整,如何显示完整
加一行 flex-shrink: 0;解决...
pve lxc debian 11安装docker遇到bash: sudo: command not解决办法
pve创建LXC容器,使用debian 11模版,安装完成后正常换源、安装依赖 然后添加Docker 的官方 GPG 密钥时出错: $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add - 提示 bash: sudo: command not …...
springboot的缓存和redis缓存,入门级别教程
一、springboot(如果没有配置)默认使用的是jvm缓存 1、Spring框架支持向应用程序透明地添加缓存。抽象的核心是将缓存应用于方法,从而根据缓存中可用的信息减少执行次数。缓存逻辑是透明地应用的,对调用者没有任何干扰。只要使用…...
语雀P0级时间爆发,留给运维的时间不多了?
事件背景 打工人的焦虑,已经延伸到在线文档了。近日,语雀P0级故障想必大家都有所体会,宕机近8小时,笔记、离线同步完全不可用。作为用户尤其担心我的文档资料是否会因此消失。 这泼天的8小时,放眼互联网界也是相当炸裂…...
LeetCode 2401.最长优雅子数组 ----双指针+位运算
数据范围1e5 考虑nlog 或者n的解法,考虑双指针 因为这里要求的是一段连续的数组 想起我们的最长不重复连续子序列 然后结合一下位运算就好了 是一道双指针不错的题目 class Solution { public:int longestNiceSubarray(vector<int>& nums) {int n nums…...
NOIP2023模拟6联测27 无穷括号序列
题目大意 小 C C C有一个括号序列 A A A,其长度为 m m m,且序列元素只包含左右括号。他想生成一个无限长的括号序列 B B B,由于 B B B的长度为正无穷,所以其下标可以为任意整数(可以为负)。为了由 A A A生…...
java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…...
2026年小程序多少钱:8款高口碑产品排行榜解锁最优选择
导读:2026年,小程序开发已成为企业数字化运营的核心工具,其成本结构受功能复杂度、平台选择及服务商专业度等多因素影响。市场调研显示,基础展示型小程序报价集中在5000-15000元,而定制化多功能方案可达5万元以上。行业…...
高维光谱数据分析研究与光谱型纳米流式检测系统数据采集处理软件的开发与化学生物学应用【附代码】
✨ 长期致力于光谱型纳米流式检测技术、光谱解耦算法、降维算法、免疫分型、细菌自发荧光研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于泊松回归…...
LabVIEW 32位版如何调用Halcon 17.12的.NET库?一个图像处理小白的踩坑实录
LabVIEW 32位版调用Halcon 17.12 .NET库的实战指南 在工业视觉和自动化测试领域,LabVIEW与Halcon的结合堪称黄金搭档。LabVIEW以其直观的图形化编程界面著称,而Halcon则凭借强大的图像处理算法库在机器视觉领域占据重要地位。然而,当32位Lab…...
日期时间数据在数据分析中的实际应用
下面的内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文6364字)。 2篇2章16节:R 语言中日期时间数据的关键处理要点_r语言从数字转为日期-CSDN博客 一、日期时间数据的概念 二、获取当前日期和时间 三、日期时间数据的转换与处理…...
3分钟上手Mermaid Live Editor:零代码绘制专业图表的终极解决方案
3分钟上手Mermaid Live Editor:零代码绘制专业图表的终极解决方案 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-…...
量子计算中SIMD编译优化与离子阱架构实践
1. 量子计算中的SIMD编译优化概述量子计算正逐步从理论走向实践,而离子阱架构因其长相干时间和高保真度操作成为当前最有前景的物理实现方案之一。在传统量子编译器中,指令调度往往采用串行执行模式,导致离子传输和量子门操作存在大量等待时间…...
从Prompt到生产力:收藏这5个Agent工程要素,让大模型成为你的得力助手!
本文深入探讨了Agent在大模型应用中的工程要素,指出许多团队仅将Agent视为高级Prompt,导致工具调用脱节、状态丢失等问题。文章详细解析了函数/工具调用、工作流编排、RAG、记忆与状态管理、权限与安全边界这五个关键方面,强调了从Demo到产品…...
基于MCP协议为Gemini模型构建安全可控的外部工具链
1. 项目概述:当MCP遇上Gemini,一个AI代理的“瑞士军刀”诞生了如果你最近在折腾AI Agent(智能体)或者RAG(检索增强生成)应用,大概率听说过“Model Context Protocol”,也就是MCP。简…...
免疫细胞,原来真的这么神奇!
免疫系统是覆盖全身的保护自身免受病原体入侵的防卫网络,具有免疫防御、免疫自稳、免疫监视的功能,它能识别并清除病原微生物、病变细胞、衰老细胞等,维持身体内环境的稳定。现代医学研究发现,免疫功能减退是衰老的最重要原因之一…...
Spring AI 技术架构深度解析:聊天模型、工具调用与 MCP 协议
摘要:本文从分层架构切入,精简拆解 SpringAI 核心设计思想,详解聊天模型统一抽象、注解式工具调用实战逻辑,同时解析主流模型上下文协议 MCP 在 SpringAI 中的落地价值,助力 Java 开发者快速搭建企业级生成式 AI 应用。…...
