UML-顺序图

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

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.rhkb.cn/news/238135.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis数据结构源码分析——跳表zset

文章目录 跳表的基本思想特点节点与结构跳跃表节点zskiplistNode属性 跳跃表链表属性 跳表的设计思想和优势API解析zslCreate(创建跳跃表)zslCreateNode(创建节点)zslGetRank(查找排位)zslDelete&#xff0…

css3 2D与3D转换

css3 2D与3D转换 前言2D变形旋转变形 rotate()transform-origin属性 缩放变形 scale()斜切变形 skew()位移变形 translate() 3D变形3D旋转 rotateX() | rotateY()perspective属性 空间移动 制作一个正方体结语 前言 网页设计不再局限于平面,而是充满了立体感和动态…

人工智能主流技术详解

人工智能(Artificial Intelligence,简称AI)是当今科技领域发展最迅速、最令人振奋的分支之一。本文将带您深入了解人工智能的主流技术,探索AI如何影响我们的生活、工作以及未来的发展。 一、什么是人工智能? 人工智能&…

烟火检测AI边缘计算智能分析网关V4在安防项目中的应用及特点

一、行业背景 随着社会和经济的发展,公共安全和私人安全的需求都在不断增长。人们需要更高效、更准确的安防手段来保障生命财产安全,而人工智能技术正好可以提供这种可能性,通过智能监控、人脸识别、行为分析等手段,大大提高了安防…

非线性方程求根迭代法(C++)

文章目录 问题描述算法描述不动点迭代法一维情形多维情形 牛顿迭代法单根情形重根情形 割线法抛物线法逆二次插值法 算法实现准备工作一般迭代法割线法抛物线法逆二次插值法 实例分析例1例2 迭代法是一种求解非线性方程根的方法, 它通过构造一个迭代过程, 将一个非线性方程转化…

ssm基于web办事大厅政务预约系统+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本办事大厅政务预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

【MySQL】聚合函数

文章目录 聚合函数是什么?一、AVG和SUM函数二、MIN和MAX函数三、COUNT函数四、GROUP BY1. 基本使用2. 使用多个列分组3. GROUP BY中使用WITH ROLLUP 五、HAVING1. 基本使用2. HAVING 与 WHERE 的区别 六、SELECT的执行过程1. 查询结构2. SELECT执行顺序 综合练习 聚…

关于浏览器下载的时候出现失败,网络错误

我试过所有浏览器,谷歌,firefox,qq浏览器,还是edge都不好使, 1.看网上说是http debugger的问题,但是我没有找到这个服务项 2.也有说可以通过修改或设置下载路径解决 -------- 我通过下载一个叫xdm的软件&#xff…

web前端算法简介之字典与哈希表

回顾 栈、队列 : 进、出 栈(Stack): 栈的操作主要包括: 队列(Queue): 队列的操作主要包括: 链表、数组 : 多个元素存储组成的 简述链表:数组&…

【Java】IDEA中的JFormDesigner使用教程

目录 1 安装 JFormDesigner 插件2 JFormDesigner 使用教程2.1 新建JFormDesigner Form时的选项2.2 JFormDesigner Form界面布局2.3 JFormDesigner 常用组件 JFormDesigner 是一款用于设计和创建图形用户界面(GUI)的插件,它允许开发者使用可视…

ZZULIOJ 1112: 进制转换(函数专题)

题目描述 输入一个十进制整数n,输出对应的二进制整数。常用的转换方法为“除2取余,倒序排列”。将一个十进制数除以2,得到余数和商,将得到的商再除以2,依次类推,直到商等于0为止,倒取除得的余数…

ZZULIOJ 1110: 最近共同祖先(函数专题)

题目描述 如上图所示,由正整数1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结 点(编号是1 的结点)都有一条唯一的路径,比如从10 到根结点的路径是(10, 5, 2, 1), 从4 到根结点的路径是(4, 2, 1)&#xff0…

xtu oj 1340 wave

题目描述 一个n列的网格,从(0,0)网格点出发,波形存在平波(从(x,y)到(x1,y)),上升波(从(x,y)到(x1,y1)),下降波(从(x,y)到(x1,y−1))三种波形,请问从(0,0)出发,最终到达(n,0)的不同波形有多少种&#xff1f…

关于 setData 同步异步的问题

小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步,…

本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生,报错是说没有访问权限(跨域问题)。本地开发项目请求服务器接口的时候,因为客户端的同源策略,导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况: 可以看到&…

Android可换行的RadioGroup

Android可换行的RadioGroup,有时候需要换行显示的单选列表,当然可以有多种实现方式,比如recycleview或者listview实现,本文采用的是RadioGrouprediobutton方式实现。由于RadioGroup仅支持水平布局与垂直布局,故需要自定义控件实现…

jenkins-cl参数化构建

pipeline片段(对应jenkins-cli -p参数的BRANCHdevelop) parameters {string(name: BRANCH, defaultValue: master, description: Enter the branch name)}stages {stage(Get Code) {steps {script {def branch params.BRANCHcheckout scmGit(branches: …

2024/1/14周报

文章目录 摘要Abstract文献阅读题目问题与创新方法A.CEMDAN方法B.LSTM网络C. CEEMDAN-LSTM模型 实验过程数据集与数据预处理参数设置评价指标和参数 实验结果 深度学习GRUGRU前向传播GRU的训练过程 总结 摘要 本周阅读了一篇基于CEEMDAN-LSTM的金融时间序列预测模型的文章&…

性能分析与调优: Linux 实现 缺页剖析与火焰图

目录 一、实验 1.环境 2.缺页(RSS增长)剖析与火焰图 一、实验 1.环境 (1)主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测GUIgrafana192.168.204.19agent 监测 主机 node_exporter…

redis夯实之路-集群详解

Redis有单机模式和集群模式。 集群是 Redis 提供的分布式数据库方案,集群通过分片( sharding )来实现数据共享,并提供复制和故障转移。集群模式可以有多个 master 。使用集群模式可以进一步提升 Redis 性能,分布式部署实现高可用性&#xff…