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

02UML图(D2_行为图)

目录

学习前言

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

讲解一:活动图

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

讲解二:用例图

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

讲解三:状态机图

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

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

一、什么是时序图?

二、时序图的组成元素

1. 对象

2. 生命线

3. 消息

三、如何绘制时序图?

1. 协作图

2. 交互概览图


学习前言

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

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

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

讲解一:活动图

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

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

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

讲解二:用例图

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

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

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

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

讲解三:状态机图

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

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

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

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

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

一、什么是时序图?

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

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

二、时序图的组成元素

1. 对象

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

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

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

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

2. 生命线

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

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

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

3. 消息

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

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

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

返回控制。

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

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

返回消息或者控制。

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

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

带线型箭头的虚线表示。

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

三、如何绘制时序图?

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

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

1. 协作图

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

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

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

2. 交互概览图

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

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

代表使用交互。

http://www.lryc.cn/news/523186.html

相关文章:

  • Kali环境变量技巧(The Environment Variable Technique Used by Kali
  • 【C++】如何从源代码编译红色警戒2地图编辑器
  • 安路FPGA开发工具TD:问题解决办法 及 Tips 总结
  • 【Django开发】django美多商城项目完整开发4.0第12篇:商品部分,表结构【附代码文档】
  • IDEA2023版中TODO的使用
  • windows 搭建flutter环境,开发windows程序
  • 支持向量机算法(三):非线性支持向量原理层层拆解,精读公式每一处细节
  • 一文读懂iOS中的Crash捕获、分析以及防治
  • 代码随想录刷题day11|(链表篇)206.翻转链表
  • 【STM32-学习笔记-8-】I2C通信
  • 2025年1月17日(点亮三色LED)
  • ASP .NET Core 学习 (.NET 9)- 创建 API项目,并配置Swagger及API 分组或版本
  • mysql-5.7.18保姆级详细安装教程
  • RK3588平台开发系列讲解(NPU篇)NPU 驱动的组成
  • ESP32学习笔记_FreeRTOS(6)——Event and Notification
  • 力扣-数组-350 两个数组的交集Ⅱ
  • 云原生第二次练习
  • SpringMVC复习笔记
  • 前端小案例——网页井字棋
  • ComfyUI-PromptOptimizer:文生图提示优化节点
  • AudioGPT全新的 音频内容理解与生成系统
  • thinkphp6 + redis实现大数据导出excel超时或内存溢出问题解决方案
  • Hexo + NexT + Github搭建个人博客
  • 使用Sum计算Loss和解决梯度累积(Gradient Accumulation)的Bug
  • 基于本地消息表实现分布式事务
  • Web3与加密技术的结合:增强个人隐私保护的未来趋势
  • 广播网络实验
  • Vscode——SSH连接不上的一种解决办法
  • ChatGPT大模型极简应用开发-目录
  • EI Scopus双检索 | 2025年第四届信息与通信工程国际会议(JCICE 2025)