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

02UML图(D2_行为图)

目录

学习前言

----------------------------------

讲解一:活动图

----------------------------------

讲解二:用例图

----------------------------------

讲解三:状态机图

----------------------------------

讲解四:序列图(交互图)(时序图)

一、什么是时序图?

二、时序图的组成元素

1. 对象

2. 生命线

3. 消息

三、如何绘制时序图?

1. 协作图

2. 交互概览图


学习前言

作者坚定认为,在绘制任何图形之前,都应该先弄清楚图形的概念、组成元素以及绘制规范

这有助于提升我们的绘图效率。

----------------------------------

讲解一:活动图

【概念】描述了具体业务用例的实现流程。

图中简单描述了,从开始到登录到查看订单列表,或者登录失败直接结束。

----------------------------------

讲解二:用例图

【概念】用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。

用例图中包含以下三种关系:

  • 包含关系使用符号《 include 》,想要查看订单列表,前提是需要先登录。
  • 扩展关系使用符号《 extend 》,基于查询订单列表的功能,可以增加一个导出数据的功能
  • 泛化关系,子用例继承父用例所有结构、行为和关系。

----------------------------------

讲解三:状态机图

【概念】状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件

时,执行相关事件的顺序。

图中描述了,门在其生命周期内所经历的状态。

----------------------------------

讲解四:序列图(交互图)(时序图)

一、什么是时序图?

时序图是UML交互图中的一类,又名序列图、顺序图。

用于描述对象之间的传递消息的时间顺序(包括发送消息、接收消息、处理消息、返回消息等)。

二、时序图的组成元素

1. 对象

对象代表时序图中的对象在交互中所扮演的角色,一般使用矩形表示。

如果对象位于时序图的顶部,说明在交互开始时对象就已经存在了。如果对象的位置在中间部分,

说明对象是在交互的过程中被创建的。

当一个对象被删除或自我删除时,在其生命线(生命线详见下方)终止点处放置 “ X”标识。

2. 生命线

生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象底部中心都有一条垂直的虚

线,这就是对象的生命线。

对象间的消息存在于两条虚线间。

3. 消息

两个对象之间的单路通信,从发送方指向接收方。

消息的传递一般有以下几种方式:

同步消息:消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者

返回控制。

注意:发送人需要等待消息的响应。带实心箭头的实线表示

异步消息:消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者

返回消息或者控制。

注意:发送人不需要等待消息的响应。带线型箭头的实线表示

返回消息:返回消息表示从过程调用返回

带线型箭头的虚线表示。

自关联消息: 自身调用自身的方法,即自我调用的同步消息

三、如何绘制时序图?

时序图绘制具体分为以下5步:

  • 确定交互过程的上下文;
  • 识别参与过程的交互对象
  • 为每个对象设置生命线
  • 从初始消息开始,依次画出随后消息;
  • 考虑消息的嵌套,标示消息发生时的时间点。

1. 协作图

【概念】描述了收发消息的对象的组织关系,强调对象之间的合作关系而不是时间顺序。

图中展示了一个线上书店的通讯图,方框和小人表示生命线,不同生命线之间可以传递消息,消息

前面的数字可以表达序列顺序。

2. 交互概览图

【概念】交互概览图与活动图类似,但是它的节点是交互图。

图中表示一个调度系统的交互概览图,跟活动图很像。其中 sd 的框代表具体的交互流程, ref 框

代表使用交互。

相关文章:

02UML图(D2_行为图)

目录 学习前言 ---------------------------------- 讲解一:活动图 ---------------------------------- 讲解二:用例图 ---------------------------------- 讲解三:状态机图 ---------------------------------- 讲解四&#xff1a…...

Kali环境变量技巧(The Environment Variable Technique Used by Kali

Kali环境变量技巧 朋友们好,我们今天继续更新《黑客视角下的Kali Linux的基础与网络管理》中的管理用户环境变量。为了充分利用我们的黑客操作系统Kali Linux,我们需要理解和善于使用环境变量,这样会使我们的工具更具便利,甚至具…...

【C++】如何从源代码编译红色警戒2地图编辑器

【C】如何从源代码编译红色警戒2地图编辑器 操作视频视频中的代码不需要下载三方库,已经包含三方库。 一、运行效果:二、源代码来源及编程语言:三、环境搭建:安装红警2安装VS2022下载代码,源代码其实不太多&#xff0c…...

安路FPGA开发工具TD:问题解决办法 及 Tips 总结

安路科技(Anlogic)是一家专注于高性能、低功耗可编程逻辑器件(FPGA)设计和生产的公司。其提供的开发工具TD(TangDynasty)是专门为安路FPGA系列产品设计的集成开发环境(IDE)。以下是对…...

【Django开发】django美多商城项目完整开发4.0第12篇:商品部分,表结构【附代码文档】

本教程的知识点为: 项目准备 项目准备 配置 1. 修改settings/dev.py 文件中的路径信息 2. INSTALLED_APPS 3. 数据库 用户部分 图片 1. 后端接口设计: 视图原型 2. 具体视图实现 用户部分 使用Celery完成发送 判断帐号是否存在 1. 判断用户名是否存在 后…...

IDEA2023版中TODO的使用

介绍:TODO其实本质上还是注释,只不过加上了TODO这几个字符,可以让使用者快速找到。 注意:在类、接口等文件中,注释是使用// 即:// TODO 注释内容 在配置文件中,注释是使用# 即:# TO…...

windows 搭建flutter环境,开发windows程序

环境安装配置: 下载flutter sdk https://docs.flutter.dev/get-started/install/windows 下载到本地后,随便找个地方解压,然后配置下系统环境变量 编译windows程序本地需要安装vs2019或更新的开发环境 主要就这2步安装后就可以了&#xff0…...

支持向量机算法(三):非线性支持向量原理层层拆解,精读公式每一处细节

支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘-CSDN博客 支持向量机算法(二):层层拆解,精读公式每一处细节-CSDN博客 支持向量机算法(一)、算法&#xff0…...

一文读懂iOS中的Crash捕获、分析以及防治

Crash系统性总结 Crash捕获与分析Crash收集符号化分析 Crash类别以及解法分析子线程访问UI而导致的崩溃unrecognized selector send to instance xxxKVO crashKVC造成的crashNSTimer导致的Crash野指针Watch Dog超时造成的crash其他crash待补充 参考文章: 对于iOS端开…...

代码随想录刷题day11|(链表篇)206.翻转链表

目录 一、链表理论基础 二、翻转链表思路 双指针解法 递归解法 三、相关算法题目 四、总结 一、链表理论基础 代码随想录 (programmercarl.com) 二、翻转链表思路 两种方法:双指针解法和递归解法 双指针解法 首先定义一个指针curr,初始化为原…...

【STM32-学习笔记-8-】I2C通信

文章目录 I2C通信Ⅰ、硬件电路Ⅱ、IIC时序基本单元① 起始条件② 终止条件③ 发送一个字节④ 接收一个字节⑤ 发送应答⑥ 接收应答 Ⅲ、IIC时序① 指定地址写② 当前地址读③ 指定地址读 Ⅳ、MPU6050---6轴姿态传感器(软件I2C)1、模块内部电路2、寄存器地…...

2025年1月17日(点亮三色LED)

系统信息: Raspberry Pi Zero 2W 系统版本: 2024-10-22-raspios-bullseye-armhf Python 版本:Python 3.9.2 已安装 pip3 支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480) 已安装 vim 已安装 git 学习目标:…...

ASP .NET Core 学习 (.NET 9)- 创建 API项目,并配置Swagger及API 分组或版本

本系列为个人学习 ASP .NET Core学习全过程记录,基于.NET 9 和 VS2022 ,实现前后端分离项目基础框架搭建和部署,以简单、易理解为主,注重页面美观度和后台代码简洁明了,可能不会使用过多的高级语法和扩展,后…...

mysql-5.7.18保姆级详细安装教程

本文主要讲解如何安装mysql-5.7.18数据库: 将绿色版安装包mysql-5.7.18-winx64解压后目录中内容如下图,该例是安装在D盘根目录。 在mysql安装目录中新建my.ini文件,文件内容及各配置项内容如下图,需要先将配置项【skip-grant-tab…...

RK3588平台开发系列讲解(NPU篇)NPU 驱动的组成

文章目录 一、NPU 驱动组成二、查询 NPU 驱动版本三、查询 rknn_server 版本四、查询 librknn_runtime 版本沉淀、分享、成长,让自己和他人都能有所收获!😄 一、NPU 驱动组成 NPU 驱动版本、rknn_server 版本、librknn_runtime 版本以及 RKNN Toolkit 版本的对应关系尤为重…...

ESP32学习笔记_FreeRTOS(6)——Event and Notification

摘要(From AI): 这篇博客详细介绍了 FreeRTOS 中的事件组和任务通知机制,讲解了事件组如何通过位操作实现任务间的同步与通信,以及任务如何通过通知机制进行阻塞解除和数据传递。博客提供了多个代码示例,展示了如何使用事件组和任务通知在多任…...

力扣-数组-350 两个数组的交集Ⅱ

解析 与刚刚的《两个数组的交集》一样&#xff0c;只是这道题允许重复&#xff0c;将上一题的set去除即可。 代码 class Solution { public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {vector<int> res;int index1 …...

云原生第二次练习

1.判断192.168.1.0/24网络中&#xff0c;当前在线的ip有哪些&#xff0c;并编写脚本打印出来。 #!/bin/bash for ip in $(seq 1 254); doping -c 1 -W 1 "192.168.1.$ip" > /dev/null 2>&1if [ $? -eq 0 ]; thenecho "192.168.1.$ip is online&qu…...

SpringMVC复习笔记

文章目录 SpringMVC 概念和基本使用SpringMVC 简介SpringMVC 核心组件和调用流程SpringMVC 基本使用第一步&#xff1a;导入依赖第二步&#xff1a;Controller 层开发第三步&#xff1a;SpringMVC 配置类配置核心组件第四步&#xff1a;SpringMVC 环境搭建第五步&#xff1a;部…...

前端小案例——网页井字棋

前言&#xff1a;我们在学习完了HTML、CSS和JavaScript之后&#xff0c;就会想着使用这三个东西去做一些小案例&#xff0c;不过又没有什么好的案例让我们去练手&#xff0c;本篇文章就提供里一个案例——网页井字棋。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可…...

ROS 2 Composition简明教程

在传统的ROS 2开发中&#xff0c;每个节点作为单独的OS进程运行。启动五个节点意味着五个独立的进程&#xff0c;每个进程都有自己的内存空间——它们之间的每条消息都要跨越进程边界。这种方式安全且相互隔离&#xff0c;但代价也不小&#xff1a;序列化、反序列化和进程间通信…...

宜搭高级认证考了3次才过?这份我踩过的坑和避坑指南请收好(含JS动作、集成自动化高频错题)

宜搭高级认证3次血泪史&#xff1a;JS动作与集成自动化高频错题深度拆解 第一次看到成绩单上"未通过"三个字时&#xff0c;我盯着屏幕发了十分钟呆——这已经是第二次失败了。作为有三年低代码开发经验的工程师&#xff0c;我原以为这种"拖拉拽"的认证考试…...

魔兽争霸3优化完全指南:让你的经典游戏在现代电脑上焕发新生

魔兽争霸3优化完全指南&#xff1a;让你的经典游戏在现代电脑上焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸3》这款经典…...

Windows 查看占用端口的进程,并关闭进程

Windows 查看占用端口的进程&#xff0c;并关闭进程 AI 回答 在 Windows 系统中&#xff0c;当遇到“端口被占用”&#xff08;Address already in use&#xff09;的报错时&#xff0c;通常是因为之前的程序没有正常关闭&#xff0c;或者后台有其他服务正在使用该端口。 你可以…...

使用Spring AI Alibaba构建智能体Agent耸

背景 在软件开发的漫长旅途中&#xff0c;"构建"这个词往往让人又爱又恨。爱的是&#xff0c;一键点击&#xff0c;代码变成产品&#xff0c;那是程序员最迷人的时刻&#xff1b;恨的是&#xff0c;维护那一堆乱糟糟的构建脚本&#xff0c;简直是噩梦。 在很多项目中…...

【ZYNQ】从PL到PS:解锁ZYNQ中DDR3存储器的双核协同访问策略

1. ZYNQ架构中的DDR3存储器基础认知 ZYNQ系列器件最吸引人的特点就是它把FPGA&#xff08;PL&#xff09;和ARM处理器&#xff08;PS&#xff09;集成在同一个芯片上。这种架构让开发者既能享受FPGA的并行计算能力&#xff0c;又能利用ARM处理器的灵活编程特性。但真正让两者协…...

基于CVaR的微网虚拟电厂多场景随机优化调度代码功能说明

基于条件风险价值CVaR的微网/虚拟电厂多场景随机规划 摘要&#xff1a;构建了含风、光、燃、储的微网/虚拟电厂优化调度模型&#xff0c;在此基础上&#xff0c;考虑多个风光出力场景&#xff0c;构建了微网随机优化调度模型&#xff0c;并在此基础上&#xff0c;基于条件风险价…...

Mysql的行级锁到底是怎么加的?站

1. 架构背景与演进动力 1.1 从单体到碎片化&#xff1a;.NET 的开源征程 在.NET Framework 时代&#xff0c;构建系统主要围绕 Windows 操作系统紧密集成&#xff0c;采用传统的封闭式开发模式。然而&#xff0c;随着.NET Core 的推出&#xff0c;微软开启了彻底的开源与跨平台…...

Mac终端玩转OpenSSL:3分钟搞定RSA密钥对生成(附PKCS8格式转换技巧)

Mac终端玩转OpenSSL&#xff1a;3分钟搞定RSA密钥对生成&#xff08;附PKCS8格式转换技巧&#xff09; 在数字安全领域&#xff0c;RSA算法一直是加密通信的基石。对于Mac用户而言&#xff0c;系统自带的OpenSSL工具链让密钥管理变得异常简单。本文将带你用终端快速生成RSA密钥…...

ResMLP、gMLP怎么选?深入对比三大纯MLP视觉模型的优缺点与落地场景

ResMLP、gMLP与MLP-Mixer技术选型指南&#xff1a;三大纯MLP视觉模型实战对比 当计算机视觉领域还在为Transformer和CNN争论不休时&#xff0c;一匹黑马正悄然改变游戏规则——纯MLP架构。不同于传统认知&#xff0c;MLP-Mixer、ResMLP和gMLP这些仅由多层感知机构建的模型&…...