UML-顺序图

news2024/11/18 11:29:19

提示:用例图从参与者的角度出发,描述了系统的需求(用例图);静态图定义系统中的类和对象间的静态关系(类图、对象图和包图);状态机模型描述系统元素的行为和状态变化流程(状态图和活动图);而交互图描述整体系统各元素间的交互(顺序图、时间图、通信图和交互概览图)。

UML-顺序图

  • 一、顺序图简介
    • 1.对象
      • (1)初始时已存在的对象
      • (2)在执行中新建的对象
    • 2.生命线
    • 3.激活期
    • 4.消息
      • (1)序号
      • (2)参数
    • 5.组合片段
      • (1)选项组合片段
      • (2)备选组合片段
      • (3)循环组合片段
      • (4)引用组合片段


  • 交互图主要描述系统中各个对象之间的交互,包含顺序图、时间图、交互概览图和通信图等。
  • 在交互图中,使用最为广泛的是顺序图和通信图,顺序图主要突出系统对象之间交互的顺序通信图主要突出系统对象之间的协作关系和交互的详细内容

一、顺序图简介

  • 顺序图描述了系统各成员之间的交互,这里的系统成员包括参与者、系统中的各个对象等。
  • 顺序图通过时间轴的方式将这些交互联系起来,同时以时间轴的方式描述各个对象交互的先后次序
  • 顺序图从上往下表示时间的进行,每一步行为可以使用序号表达执行顺序。
  • 顺序图的构成元素有四个:对象生命线消息激活期

1.对象

  • 顺序图中的对象并不是系统类的对象,而是系统中存在交互的元素,可以是类、参与者或组件。
  • 顺序图中的对象分为两种,一种是在程序运行初始就已经存在的。另一种是在程序的运行过程中创建的。

(1)初始时已存在的对象

  • 对象在顺序图中由拖着生命线的矩形表示。对象名放在头部矩形内部。
  • 顺序图中的对象代表参与交互的一类元素,并不特指一个对象。
    在这里插入图片描述

(2)在执行中新建的对象

  • 在顺序图中,由于生命线由上向下延续,初始对象在一开始就存在,因此初始对象放在顺序图中的顶部。但执行中创建的对象是在被创建之后才开始它的生存期,因此执行中创建的对象可以放在顺序图时间轴方向的中间。
    在这里插入图片描述

2.生命线

  • 生命线有两种状态:休眠状态激活状态。处在激活状态下的生命线时段又称为激活期。
  • 休眠状态下的对象没有进行交互,只要有交互存在,对象就处在激活状态。
    • 休眠状态下生命线由一条虚线表示,代表对象在该时间段是没有信息交互的。
    • 激活状态就是激活期,用矩形长条表示,代表对象在该段时间段内有信息交互,交互由信息表示。
  • 每一种对象的生命线默认初始状态为休眠状态,在发生交互时变为激活状态。无论是休眠状态还是激活状态,都标识在对象下方的垂直线上。
    在这里插入图片描述

3.激活期

  • 当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说该对象被激活了。在生命线上,激活期使用矩形长条表示。矩形长条本身被称为对象的控制期,控制期说明对象正在执行某个动作。
  • 激活期本身从一条信息的发出或接收开始,到最后一条信息的发出或接收结束;激活期的垂直长度表示信息交互持续的时间(粗略的时间)
  • 在顺序图中,一个激活期只包含一个事件。因此需要将激活期分开来表示。
    在这里插入图片描述

4.消息

  • 对象、生命线和激活描述了对象的交互状态,而消息是对交互的解释说明。每两个对象的交互中都会有消息存在。
  • 消息的高度决定了消息产生的时间顺序,在顺序图中,消息使用带箭头的直线来表示,由一个对象的生命线指向另一个对象的生命线。
  • UML 中的四种类型的消息:
    • 同步消息: 是同步进行、需要返回消息的消息,通常成对出现。
    • 异步消息: 是不需要返回消息的消息,通常单独出现。
    • 简单消息: 是不区分同步、异步的消息,用于概括消息的传递。
    • 返回消息: 是对象间返回的信息消息,用于信息的传递。
  • 注意: 有时消息并不用分清是同步还是异步,或者不确定是同步还是异步,此时使用简单消息代替同步消息和异步消息既能表达意思,又能很好地被接受。
    在这里插入图片描述

(1)序号

  • 序号不是顺序图的构成元素是对消息的一个补充。将顺序图中所有的消息使用连续的序号进行修饰,使读者能够根据消息的序号看出消息发出的顺序。
  • 消息中的序号并不只是根据消息的发生顺序从 1 向后排序,对于同步消息来说,同步消息和异步消息的传递是不可分割的,是同一个过程,因此需要放在同一个步骤中。
  • 需要作为同一个步骤的不只是同步消息和返回消息,有时一个步骤需要多个消息的交互,需要将消息的序号分级表示。
    在这里插入图片描述

(2)参数

  • 对象间传送的消息可以是信息或事件,与类中的方法等效。一些事件是有参数和返回值的,顺序图中的消息同样可以使用参数和返回值。
    在这里插入图片描述

5.组合片段

  • 组合片段是顺序图中的一个片段,以组合的形式描述顺序图中的一个特殊工作流。
  • 组合片段用于解决顺序图中的控制流分支、循环或中断。
    在这里插入图片描述

(1)选项组合片段

  • 用于描述特殊情况下的对象交互。选项组合片段类似于程序中的 if 语句,而没有 else 选项。
    在这里插入图片描述

(2)备选组合片段

  • 用于指出某时刻不同情况下的所有可能的控制流,类似于程序中的 switch 语句。备选组合片段在区域内部使用虚线,分割成不同区域,每个区域代表一种条件下的控制流。
    在这里插入图片描述

(3)循环组合片段

  • 该组合片段区域内的交互需要执行多次。循环组合片段可以定义循环执行的条件,并具有 Min 和 Max 属性,分别定义交互重复的最小和最大循环次数,默认是“无限制”。
    在这里插入图片描述

(4)引用组合片段

  • 引用组合片段用来实现交互序列的可重用性。
  • 引用组合片段首先定义用于重用的交互序列,之后将该交互序列引入到顺序图中的其他位置。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1384945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速入门Java NIO(New I/O)的网络通信框架--Netty

Netty 入门 了解netty前需要对nio有一定认识,该笔记基础来自bilinbili黑马,在此基础上自己学习的笔记,添加了一些自己的理解 了解java 非阻塞io编程 1. 概述 1.1 Netty 是什么? Netty is an asynchronous event-driven network application framework for rapid …

关于AMC8模拟考试延长到1月19日14点,以及常见的几个新问题

相信过去的周末两天,很多参加今年AMC8美国数学思维竞赛活动的孩子们都参加了AMC8模拟考试。昨天有家长问六分成长,周末两天因故没能参加要不要紧?如果还想参加怎么办? 不用担心!官方已经把AMC8模拟考试的时间延长到1月…

【Redis】AOF 源码

在上篇, 我们已经从使用 / 机制 / AOF 过程中涉及的辅助功能等方面简单了解了 Redis AOF。 这篇将从源码的形式, 进行深入的了解。 1 Redis 整个 AOF 主要功能 Redis 的 AOF 功能概括起来就 2 个功能 AOF 同步: 将客户端发送的变更命令, 保存到 AOF 文件中AOF 重写: 随着 Red…

Python 潮流周刊#35:Python JIT 编译器和 Numpy2 即将推出

△△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,…

【Java SE语法篇】9.抽象类和接口

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 文章目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象…

VScode设置自动添加自定义注释及修改字体

首先安装snippet mac可以键入commanp,输出> 选择自己所需的需要自动添加的文件类型配置文件 安装自己的需要修改 "Print to console": {"prefix": "xx", // 自己键入内容"body": [ // 注释信息"// xxx …

【NI国产替代】USB‑7846 Kintex-7 160T FPGA,500 kS/s多功能可重配置I/O设备

Kintex-7 160T FPGA,500 kS/s多功能可重配置I/O设备 USB‑7846具有用户可编程FPGA,可用于高性能板载处理和对I/O信号进行直接控制,以确保系统定时和同步的完全灵活性。 您可以使用LabVIEW FPGA模块自定义这些设备,开发需要精确定时…

canvas创建图像数据,并在画布上展示

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

Python学习从0到1 day4 python格式化输出和输入方法

其实我不是我,我是青山辽阔 ——24.1.14 一、百分号形式的格式化输出 1.普通输出 #1.定义一些变量 name 陈浩南 age 25 address 广州市天河区#2.变量的输出(普通输出) print(name) print(age) print(address)#3.Python中,还允…

【矩阵快速幂】封装类及测试用例及样例

作者推荐 视频算法专题 通俗的说&#xff0c;就是矩阵的乘方。 封装类 核心代码 class CMat { public:// 矩阵乘法static vector<vector<long long>> multiply(const vector<vector<long long>>& a, const vector<vector<long long>…

八:分布式锁

1、为什么要使用分布式锁 锁是多线程代码中的概念&#xff0c;只有多任务访问同一个互斥的共享资源时才需要锁。单机应用开发时一般使用synchronized或lock。多线程的运行都是在同一个JVM之下。应用是分布式集群&#xff0c;属于多JVM的工作环境&#xff0c;JVM之间已经无法通过…

【Golang开源项目】Golang高性能内存缓存库BigCache设计与分析

项目地址 BigCache 是一个快速&#xff0c;支持并发访问&#xff0c;自淘汰的内存型缓存&#xff0c;可以在存储大量元素时依然保持高性能。BigCache将元素保存在堆上却避免了GC的开销。 背景介绍 BigCache的作者在项目里遇到了如下的需求&#xff1a; 支持http协议支持 10…

【RT-DETR改进涨点】为什么YOLO版本的RT-DETR训练模型不收敛的问题

前言 大家好&#xff0c;我是Snu77&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 其中提到的多个版本ResNet18、ResNet34、ResNet50、ResNet101为本人根据RT-…

Linux|centos7操作系统|VMware虚拟机安装水星免驱USB网卡8188gu记录

引言&#xff1a; 最近对于嵌入式系统比较感兴趣&#xff0c;因此&#xff0c;计划先使用VMware workstation虚拟机试一试Linux系统下的网卡驱动安装 这不试不知道&#xff0c;一试吓一跳&#xff0c;发现Linux下的驱动安装还是比较麻烦的&#xff0c;下面将就本次的Linux系统…

详解SpringCloud微服务技术栈:强推!源码跟踪分析Ribbon负载均衡原理、Eureka服务部署

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;认识微服务、服务拆分与远程调用 &#x1f4da;订阅专栏&#xff1a;微服务技术全家桶…

【LangChain学习之旅】—(6) 提示工程(下):用思维链和思维树提升模型思考质量

【LangChain学习之旅】—&#xff08;6&#xff09; 提示工程&#xff08;下&#xff09;&#xff1a;用思维链和思维树提升模型思考质量 什么是 Chain of ThoughtFew-Shot CoTZero-Shot CoTChain of Thought 实战CoT 的模板设计程序的完整框架Tree of Thought总结 Reference&a…

UE5 伤害数字跳出

学习视频 大体思路&#xff1a; 1.创建一个控件蓝图。 播放动画&#xff0c;K透明度&#xff0c;文本位置。 2.创建一个控件组件。 类默认值中设置。 3.在位置处创建组件实例 自定义事件略。

NVIDIA Isaac Sim 入门教程(一)

系列文章目录 前言 一、 NVIDIA Omniverse™ Isaac Sim 是什么&#xff1f; NVIDIA Omniverse™ Isaac Sim 是一款适用于 NVIDIA Omniverse™ 平台的机器人仿真工具包。Isaac Sim 具有构建虚拟机器人世界和实验的基本功能。它为研究人员和从业人员提供了创建稳健、物理精确的仿…

无法解析服务器的名称或地址/Wsl/0x80072eff/win10 WSL2问题解决Wsl 0x800701bc/Wsl:0x80041002

无法解析服务器的名称或地址 和 Wsl/0x80072eff 1.连VPN&#xff0c;推荐的VPN如下。(如一直显示无法连接&#xff0c;则推荐使用VPN) Anycast加速器 (any4ga.com) 优点&#xff1a;无限GB 缺点&#xff1a;较贵&#xff0c;通过银行卡充值9折后的价格是每月45元左右 …

JVM:双亲委派机制类加载器

JVM&#xff1a;双亲委派机制 1. 例子2. 类加载器总结3. 类加载过程4. 双亲委派模型的执行流程&#xff1a;5. 双亲委派模型的好处 1. 例子 Java运行时环境有一个java.lang包&#xff0c;里面有一个ClassLoader类 我们自定义一个String类在java.lang包下&#xff0c;下面的…