系统时序图

简介: 时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图,横轴为对象,纵轴为时间。它用于展示交互流程、强调时序、体现并发过程,核心元素包括角色、对象、生命线、控制焦点和消息等,广泛应用于系统动态行为建模。

.什么是时序图?
时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
2.时序图的作用是什么?
1、展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互;
2、相对于其他UML图,时序图更强调交互的时间顺序;
3、可以直观的描述并发进程。
3.组成元素有哪些?

  1. 角色(Actor)
    系统角色,可以是人、机器、其他系统、子系统;在时序图中用表示。
  2. 对象(Object)
    (1)对象的三种命名方式
    第一种方式包括对象名和类名,例如:直播课时:课时,在时序图中,用“对象:类”表示;
    第二种方式只显示类名,即表示它是一个匿名对象,例如: :课程;在时序图中,用“:类”表示;
    第三种方式只显示对象名不显示类名,例如:讲师;在时序图中,用“对象”表示。
    (2)命名方式的选择
    三种命名方式均可,哪种最容易让阅读该时序图的人理解,就选择哪种。
    (3)对象的排列顺序
    对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:
    ①. 把交互频繁的对象尽可能的靠拢;
    ②. 把初始化整个交互活动的对象放置在最左端。
  3. 生命线(Lifeline)
    在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。
  4. 控制焦点(Focus of Control)
    又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操作。它可以被理解成C语言语义中一对花括号{ }中的内容;用小矩形表示。
  5. 消息(Message)
    消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。
    消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义;
    消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
    返回消息表示从过程调用返回。
  6. 自关联消息
    表示方法的自身调用或者一个对象内的一个方法调用另外一个方法
    4.时序图示例
相关文章
|
4天前
|
Java API
用链表实现队列/栈
本文介绍如何用链表实现栈和队列,利用双链表头尾操作均为O(1)的特性,通过调用LinkedList API高效实现。栈可选头部或尾部作栈顶,队列同理,只需调整增删位置。文末引出数组实现队列的性能问题,启发优化思考。
|
4天前
|
存储 API 索引
队列/栈基本原理 ❗前置知识
本文介绍队列和栈两种“操作受限”的数据结构:队列遵循先进先出(FIFO),只能队尾入、队头出;栈遵循先进后出(FILO),仅在栈顶进行增删操作。二者底层多由数组或链表实现,核心API包括push、pop、peek和size,是后续复杂数据结构的基础。
|
4天前
|
Java 索引 容器
单/双链表代码实现
本文详解双链表与单链表的 MyLinkedList 实现,重点介绍三个关键优化:1)同时持有头尾节点引用,提升尾部操作效率;2)使用虚拟头尾节点简化边界处理;3)解析链表删除中的内存泄露误区,并强调指针置空的良好编程习惯。
|
3天前
|
算法 Java 索引
双指针技巧秒杀七道数组题目
本文介绍双指针技巧在数组和链表中的应用,重点解析快慢指针如何实现原地修改。通过LeetCode经典题如删除有序数组/链表重复项,展示如何用慢指针记录结果、快指针遍历数据,高效完成去重,时间复杂度O(N),避免频繁数据搬移。
|
3天前
|
算法
双指针技巧秒杀七道链表题目
本文总结单链表七大技巧:合并有序链表、链表分解、合并K个有序链表、找倒数第k个节点、找中点、判断环及起点、判断相交及交点,均基于双指针思想,涵盖LeetCode多道经典题目,助你系统掌握链表算法核心。
|
3天前
|
存储 Java Maven
服务端(DevBox)-项目创建
使用Sealos创建SpringBoot工程zxyf-management,配置Java语言、3.3.2版本,2核CPU、4G内存,通过Devbox在云端搭建开发环境。利用Cursor智能工具打开项目,自动识别Maven结构,一键启动运行,实现高效云端开发。
|
3天前
|
Java
多叉树的递归/层序遍历
多叉树是二叉树的扩展,节点可有多个子节点。遍历方式与二叉树类似,DFS无中序位置,BFS通过队列实现,支持按层遍历并记录深度,代码结构清晰,易于扩展。
|
3天前
|
算法
二叉树的递归/层序遍历
递归遍历(DFS)按固定顺序访问节点,前/中/后序取决于代码位置。层序遍历(BFS)借助队列实现,可逐层访问,常见写法能记录层数,适用于求深度、分层处理等场景。
|
3天前
|
存储 算法 Java
二叉树基础及常见类型
二叉树是数据结构的核心,不仅是红黑树、堆、图等的基础,更体现了递归思维。掌握二叉树,等于掌握算法与数据结构的关键。本文详解满二叉树、完全二叉树、二叉搜索树及其实现方式,助你彻底理解其原理与应用,为后续算法学习打下坚实基础。
|
3天前
|
存储 数据可视化 Java
用拉链法实现哈希表
本文详解哈希表中拉链法的实现原理,通过简化版到完整版代码,介绍如何用链表解决哈希冲突。支持泛型、动态扩容缩容、键值增删查改及遍历所有key,结合Java内置LinkedList优化实现,直观展示哈希表核心机制。