当前位置: 首页 > news >正文

UML建模图文详解教程06——顺序图


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著

在这里插入图片描述

顺序图概述

顺序图(sequence diagram,也被称为为序列图或时序图)是按时间顺序显示对象交互的图。具体来说,它显示了参与交互的对象和所交换信息的先后顺序,用来表示用例中的行为并将这些行为建模成信息交换。

顺序图主要包括四个元素:对象(object)、生命线(lifeline)、激活(activation)和消息(message)。在 UML中,顺序图将交互关系表示为一张二维图。其中纵向代表时间维度时间向下延伸,按时间依次列出各个对象所发出和接收的消息。横向代表对象的维度,排列着参与交互的各个独立的对象。

核心知识点

请务必熟悉并掌握以下核心知识点。

顺序图是将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。

对象与生命线

顺序图中的对象与对象图中的概念一样,都是类的实例。顺序图中的对象可以是系统的参与者或者任何有效的系统对象。对象的创建由头符号来表示,即在对象创建点的生命线顶部使用显示对象名和类名的矩形框来标记,二者用冒号隔开,即为“对象名:类名”这种格式。

在顺序图中,生命线位于每个对象的底部中心位置,显示为一条垂直的虚线,与时间轴平行,带有一个显示对象的头符号。顺序图中的大部分对象是存在于整个交互过程的,即对象创建于顺序图顶部,其生命线一直延伸至底部。

在这里插入图片描述

激活

激活又称为控制焦点,表示一个对象执行一个动作所经历的时间段,既可以直接执行也可以通过安排下级过程来执行。同时,激活也可以表示对应对象在这段时间内不是空闲的,它正在完成某个任务或正被占用。通常来说,一个激活结束的时候应该伴有一个消息的发出。

激活在 UML 中用一个细长的矩形表示,显示在生命线上。矩形的顶部表示对象所执行动作的开始,底部表示动作的结束。

在这里插入图片描述

消息

消息是从一个对象(发送者)向另一个对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。

在UML中,有以下几种主要动作。

  • 调用(call):调用某个对象的一个操作。可以是对象之间的调用也可以是对对象本身的调用,即自身调用或递归调用。调用属于同步机制,例如,当对象 A 发送消息调用对象 B时,A 会等待 B执行完所调用的方法后再继续执行。在 UML 中使用一个头部为实心三角的箭头来表示调用。

  • 返回(return):返回消息不是主动发出的,而是一个对象接收到其他对象的消息后返回的消息。很多情况下一个消息的接收会要求一个返回,如果把所有对源消息的返回全部绘制在顺序图中,图将变得过于复杂而难以阅读。所以仅仅需要绘制重要的返回消息。在UML中使用虚线箭头表示返回。

  • 创建(create):创建一个对象时发送的消息,在 UML中使用具有<< create >>构造型的消息表示。

  • 销毁(destroy):销毁一个对象(也允许对象销毁自身)。UML中使用具有<< destroy >>构造型的消息表示。

在这里插入图片描述

航空购票系统顺序图

在此,以航空购票系统的登录用例为例绘制顺序图。

确定交互对象

创建顺序图的第一步就是要明确参与该交互的对象。我们注意到该用例由用户发起,因此用户作为参与者是这个交互过程的发起者。此外,假设系统采用 MVC(即模型-视图-控制器)设计;因此参与这个交互的对象还包括用户界面、程序逻辑层以及程序数据库。

与创建用例图类似,请在Model中创顺序图;图示如下:
在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
选中顺序图,右键单击选择添加图,再选择UML Behavioral和Sequence;图示如下:

在这里插入图片描述
单击确定后,图示如下:

在这里插入图片描述
首先,将工具箱中的Actor拖拽至绘图区添加参与者;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述

将工具箱中的Boundary拖拽至绘图区添加登录界面作为边界;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
将工具箱中的Control拖拽至绘图区添加程序逻辑层作为控制器;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
将工具箱中的Entity拖拽至绘图区添加程序数据库;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
至此,我们确定了登录用例的交互对象。

添加消息

在确定了参与交互的对象之后,就要在对象之间添加消息的传递了。我们可以很容易地分析出整个交互过程:用户首先在界面填写表单并确认,用户界面将用户填写的表单数据发送给程序逻辑层,逻辑层向程序数据库发送请求来检查用户数据的合法性,接收到合法的返回消息后程序逻辑层再向界面发送消息显示出登录结果。

请利用Interaction Relationships中的Message添加用户向登录界面传递的消息;图示如下:

在这里插入图片描述
双击箭头,添加消息;图示如下:

在这里插入图片描述

点击确定后,图示如下:

在这里插入图片描述
类似地,添加登录界面,程序逻辑层,程序数据之间的消息;图示如下:
在这里插入图片描述
接下来添加程序数据向程序逻辑层的返回消息;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
类似地,我们添加其它的返回消息;图示如下:

在这里插入图片描述
至此,我们完成了航空购票系统的登录用例的顺序图。

相关文章:

UML建模图文详解教程06——顺序图

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;《UML面向对象分析、建模与设计&#xff08;第2版&#xff09;》吕云翔&#xff0c;赵天宇 著 顺序图概述 顺序图(sequence diagram&#xff0c;也…...

睡前随笔记录

一个人从出生到长大&#xff0c;就像一部手机从新用到旧。手机里面积累了太多的缓存&#xff0c;积累了太多的照片&#xff0c;各种app的数据&#xff0c;安装了各式各样的程序。 所以大概这就是年纪越大&#xff0c;记性越差的原因吗&#xff1f;就像一个屋子&#xff0c;堆满…...

微服务学习|Feign:快速入门、自定义配置、性能优化、最佳实践

RestTemplate方式调用存在的问题 先来看我们以前利用RestTemplate发起远程调用的代码 存在下面的问题 代码可读性差&#xff0c;编程体验不统一 参数复杂URL难以维护 Feign的介绍 Feign是一个声明式的http客户端&#xff0c;官方地址: https://github.com/OpenFeign/feign …...

使用【画图】软件修改图片像素、比例和大小

打开电脑画图软件&#xff0c;点击开始 windows附件 画图 在画图软件里选择需要调整的照片&#xff0c;点击文件 打开 在弹出窗口中选择照片后点击打开 照片在画图软件中打开后&#xff0c;对照片进行调整。按图中顺序进行 确定后照片会根据设定的值自动调整 保存…...

DevOps 事后分析

众所周知&#xff0c;系统的变化会带来不稳定&#xff0c;进而引发事故。迁移到 DevOps 使世界各地的组织能够以更小的增量和更高的频率进行发布。这降低了特定版本中失败的风险。另一方面&#xff0c;增加发布数量并不一定会减少待命团队需要响应的事件数量。 事件响应团队的…...

fastdfs-client-java-1.30 maven 打包安装

1. 进入源代码目录&#xff0c;打开cmd mvn clean install 或者 mvn package 问题不大的话会在同级目录target目录下生成打包后文件 2. 当前目录下cmd进行maven安装 mvn install:install-file -DgroupIdorg.csource -DartifactIdfastdfs-client-java -Dversion${version} -D…...

【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵

专栏系列文章如下&#xff1a; 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 本章将介绍视觉SLAM的基本问题之一&#xff1a;如何描述刚体在三维空间中的运动&#xff1f; 旋转矩阵 点、向量和坐标系 三维空间由3个轴组成&…...

Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/134533533 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…...

C/C++ 实现Windows注册表操作

Windows注册表&#xff08;Registry&#xff09;是Windows操作系统中用于存储系统配置信息、用户设置和应用程序数据的一个集中式数据库。它是一个层次结构的数据库&#xff0c;由键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;组成&#xff0c;这些键和值被…...

nginx 模块相关配置及结构理解

文章目录 模块配置结构模块配置指令先看一下 ngx_command_t 结构一个模块配置的demo简单模块配置的案例演示 模块上下文结构模块的定义 模块配置结构 Nginx中每个模块都会提供一些指令&#xff0c;以便于用户通过配置去控制该模块的行为。 Nginx的配置信息分成了几个作用域(sc…...

同时创建多个websoket(初始化多个连接、断开的重连、每个连接定时发消息、每个连接存储接收的数据(vuex或者pinia))

可复制现成代码直接使用&#xff01;&#xff01; 1.下边的例子演示了创建10个WebSocket 实例&#xff0c;当其中某一个连接失败时&#xff0c;会自动进行重连 <template><div></div> </template><script setup> import { ref, reactive, onMo…...

C语言——指针(一)

&#x1f4dd;前言 这篇文章主要带大家初步认识一下指针&#xff0c;供大家理解参考。 主要归纳与讲解&#xff1a; 1&#xff0c;指针与指针变量 2&#xff0c;指针的基本使用&#xff08;如何定义&#xff0c;初始化&#xff0c;引用&#xff09; &#x1f3ac;个人简介&…...

学习量化交易如何入门?

Python 量化入门很简单&#xff0c;只需 3 步就能快速上手! 题主在程序方向没有相关经验&#xff0c;今天就从量化行业的通用语言-Python 着手&#xff0c;教大家如何快速入门。 一、准备工作 在开始 Python 编程之前&#xff0c;首先需要确保你的计算机上安装了合适的 Pytho…...

CSS3动画

在CSS3中新增了一个很有意思的东西&#xff0c;那就是动画&#xff0c;有了动画我们可以做很多的事情&#xff0c;让我为大家介绍一下动画吧&#xff01; 本篇文章关于介绍动画&#xff0c;利用小球移动为你们介绍一下动画 默认样式&#xff1a; <!DOCTYPE html> <ht…...

黑马点评-10实现用户点赞和点赞排行榜功能

用户点赞功能 如果用户只要点赞一次就对数据库中blog表中的liked字段的值加1就会导致一个用户无限点赞 PutMapping("/like/{id}") public Result likeBlog(PathVariable("id") Long id) {// 修改点赞数量,update tb_blog set liked liked 1 where id …...

Spring配置其他注解Spring注解的解析原理

Spring配置其他注解 Primary注解用于标注相同类型的Bean优先被使用权&#xff0c;Primary是Spring 3.0引入的&#xff0c;与Component和Bean一起使用&#xff0c;标注该Bean的优先级更高&#xff0c;则在通过类型获取Bean或通过Autowired根据类型进行注入时&#xff0c;会选用优…...

TypeScript 学习笔记 第一部分 语法基础

【视频链接】尚硅谷TypeScript教程&#xff08;李立超老师TS新课&#xff09; TypeScript 1. 类型1.1 | 联合类型1.2 字面量类型1.3 any 任意类型1.4 unkown 类型1.5 as 类型断言1.6 object 对象类型1.7 { } 对象类型1.8 &#xff1f; 对象中的可选属性1.9 对象中的任意属性1.1…...

【element优化经验】怎么让element-ui中表单多语言切换排版不乱

目录 前言&#xff1a; 痛点&#xff1a; 1.左对齐&#xff0c;右对齐在中文和外语情况下字数不同&#xff0c;固定宽度会使名称换行&#xff0c;不在整行对齐&#xff0c;影响美观。 2.如果名称和输入框不在一行&#xff0c;会使页面越来越长 3.label-width值给变量&#…...

软件设计中如何画各类图之一实体关系图(ER图):数据库设计与分析的核心工具

目录 1 前言2 符号及作用&#xff1a;3 绘制清晰的ER图步骤4 实体关系图的用途5 使用场景6 实际应用场景举例7 结语 1 前言 当谈到数据库设计与分析的核心工具时&#xff0c;实体关系图&#xff08;ER图&#xff09;无疑是其中最重要的一环。在软件开发、信息管理以及数据库设…...

【神印王座】龙皓晨美妆胜过月夜,魔神皇识破无视,撮合月夜阿宝

Hello,小伙伴们&#xff0c;我是拾荒君。 《神印王座》国漫第82集已更新&#xff0c;拾荒君和大多数人一样&#xff0c;更新就去看了。魔神皇枫秀&#xff0c;威严凛然&#xff0c;突然空降月魔宫&#xff0c;整个宫殿都在这股无与伦比的强大气息中颤栗。为了顺利躲避魔神皇的…...

如何用NVIDIA Profile Inspector解决游戏性能与画质难题

如何用NVIDIA Profile Inspector解决游戏性能与画质难题 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾遇到过这样的困扰&#xff1a;明明显卡性能足够&#xff0c;但游戏画面总是出现撕裂&am…...

手把手拆解FusionAD:从BEV特征融合到轨迹优化,一个端到端自动驾驶模型的实战解析

手把手拆解FusionAD&#xff1a;从BEV特征融合到轨迹优化&#xff0c;一个端到端自动驾驶模型的实战解析 自动驾驶技术正在经历从模块化到端到端的范式转变&#xff0c;而FusionAD作为这一领域的代表性工作&#xff0c;通过多模态BEV特征融合和时间序列建模&#xff0c;实现了感…...

Boomi将在2026年Boomi World大会上发布数据激活和AI驱动创新的未来规划

这场全球顶级盛会将重点展示各类组织如何激活数据&#xff0c;为AI到商业智能的各类应用提供支持 数据激活公司Boomi今日宣布举办2026年Boomi World大会&#xff0c;这是该公司一年一度的顶级用户大会&#xff0c;将于2026年5月11日至14日在伊利诺伊州芝加哥举行。本次大会将汇…...

在Windows 10上用VS2019编译libtiff 4.0.8:从源码到读取16位医学影像的完整避坑指南

在Windows 10上用VS2019编译libtiff 4.0.8&#xff1a;从源码到读取16位医学影像的完整避坑指南 医学影像处理领域常面临高位深图像&#xff08;如16位灰度DICOM转换后的TIFF&#xff09;的解析难题。不同于普通8位RGB图像&#xff0c;这类专业格式对编译环境和库链接有特殊要求…...

SkeyeVSS开发常见问题FAQ:国标设备心跳与频繁掉线

试用安装包下载 | SMS | 在线演示 项目地址&#xff1a;https://github.com/openskeye/go-vss 1. 问题现象 设备在界面上一会儿在线、一会儿离线&#xff1b;或夜间批量掉线后自行恢复&#xff1b;录像、报警订阅间歇失效。 2. 心跳在国标场景中的含义 不同厂商实现差异较大…...

5分钟完成黑苹果引导:OpCore Simplify智能配置工具终极指南

5分钟完成黑苹果引导&#xff1a;OpCore Simplify智能配置工具终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 想要在普通PC上体验macOS系统&…...

2026年华为云怎么搭建Hermes Agent/OpenClaw?经验之谈

2026年华为云怎么搭建Hermes Agent/OpenClaw&#xff1f;经验之谈。OpenClaw和Hermes Agent是什么&#xff1f;OpenClaw和Hermes Agent怎么部署&#xff1f;如何部署OpenClaw/Hermes Agent&#xff1f;2026年还在为部署OpenClaw和Hermes Agent到处找教程踩坑吗&#xff1f;别再…...

C# 开发者必看:Visual Studio如何远程真机调试

为什么需要远程真机调试 在很多人的印象里&#xff0c;代码跑在开发机上是理所当然。但在以下 3 个真实现场&#xff0c;你会发现远程调试是唯一的“救命稻草”&#xff1a;特定硬件环境限制&#xff1a; 你的代码需要调用采集卡、加密狗或特定的工业传感器&#xff0c;这些硬件…...

Real Anime Z高清作品分享:1024×1024分辨率下皮肤质感与光影表现力

Real Anime Z高清作品分享&#xff1a;10241024分辨率下皮肤质感与光影表现力 1. 真实系二次元生成工具介绍 Real Anime Z是一款基于阿里云通义Z-Image底座模型开发的高精度二次元图像生成工具。通过Real Anime Z专属微调权重&#xff0c;这款工具专门针对真实系二次元风格进…...

Qwen3-4B-Thinking-2507-Gemini-2.5-Flash-Distill多语言支持实测

Qwen3-4B-Thinking-2507-Gemini-2.5-Flash-Distill多语言支持实测 1. 模型简介与背景 Qwen3-4B-Thinking-2507-Gemini-2.5-Flash-Distill是一个基于vLLM框架部署的文本生成模型&#xff0c;通过Chainlit前端提供交互式体验。该模型在约5440万个由Gemini 2.5 Flash生成的token…...