UML交互图-序列图

概述

序列图又称为时序图、活动序列图,它是一种详细表示对象之间及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)及它们之间可发送的消息组成,它强调消息之间的时间顺序。

序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。序列图的主要用途之一是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。

一、序列图的基本模型

序列图由对象生命线、激活和消息组成。在一个序列图中,垂直的虚线叫做生命线,它代表个对象存在的时间,每一个箭头代表一个调用,这个箭头从调用者对象连接到接收者对象的激活条上,每一个激活条代表所持续的时间,如图7-1所示。

从图中可以看出序列图是二维的,其中:

  • 垂直方向表示时间,时间维由上到下(根据需要,也可以由下到上),但在实时应用中时间轴是能度量的。
  • 水平方向表示不同的对象或参与者,相应地,生命线之间的顺序可以是任意的通常只有时间顺序是重要的,对象的水平顺序并不重要。

在这里插入图片描述

二、对象生命线的表示法

对象表示不同的主体,多个对象之间才能够进行交互。把对象表示成称为“生命线”的垂直虚线,生命线代表一个对象在特定时间内的存在。

在生命线的顶部是一个方框,并写入对象的名称,使用下画线表示,如图7-2所示。

这里的对象就是前文中所讲解的对象图,因此我们可以设置它所属于的类类型,采用冒号表示类,如图 7-3 所示。
在这里插入图片描述
如果类的类型是角色类型,则对象不再使用方框表示,而是使用一个角色的人形标志表示,对象名及类名写在人形标志的下方,如图7-4所示。

在这里插入图片描述

三、激活的表示法

激活表示一个对象执行一个行为的时期,它既表示了行为执行的持续时间,也表示了活动和它的调用者之间的控制关系。

激活用一个窄长的矩形表示,矩形顶端和它的开始时刻对齐,末端和它的结束时刻对齐。可以用文本标注被执行的动作,依赖于整体风格,或者把标注放在激活符号的旁边,或者放在图左边的空白处。在程序的控制流中,激活符号的顶端画在进入的箭头的尖端(开始该动作的那个箭头),底端画在返回的箭头的尾部,如图7-5所示。

在这里插入图片描述
当一个对象处于激活期时,该对象能够响应或发送消息,执行对象或活动。当一个对象不处于激活期时,该对象不做什么事情,但它是存在的,等待新的消息激活它。

四、消息的表示法

消息是对象之间的通信的规格说明,这样的通信用于传输将发生的活动所需要的信息。它即包含了控制信息(如调用)也包含了所使用的数据的规格说明。一个消息会调用另一个对象的操作,调用本对象的操作,向另一个对象发送一个信号,创建或者撤销一个对象(可以自己销毁自己),还可能向调用者返回一个结果。

消息表示为从一个对象生命线到另一个对象生命线的一个水平实线箭头,即从源对象指向目标对象,以触发目标对象中的特定操作。对于对象到自身的消息,箭头就从同一个对象符号开始和结束。用消息(操作或信号)的名字及其参数值或者参数表达式标示箭头,消息名称放置在带箭头的线上面,正在被传递给接收对象的消息表示接收对象的类实现的一个方法,如图7-6所示。
在这里插入图片描述
为了可读性,序列图的第一个消息总是从顶端开始的,并且一般位于图的左边。然后继发的消息加入图中,稍微比前面的消息低些。

根据箭头种类的不同,消息可以分为3类。

  • 同步消息:在箭头的末尾画一个叉,表示消息的调用是同步的。
  • 异步消息:箭头采用单边表示,表示消息的调用是异步的。
  • 定时消息:消息名后画一个圈,表示该消息是定时调用的。

3 类消息如图 7-7所示。

在这里插入图片描述

五、自调用消息的表示法

以上的消息调用处于两个不同的对象之间,除此之外,消息还可以进行自调用,就好比类调用了自身的方法一样。在 UML图中,只需要画一个折回的箭头即可,如图 7-8所示。

在这里插入图片描述

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

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

相关文章

【Java】static 修饰变量

static 一种java内置关键字,静态关键字,可以修饰成员变量、成员方法。 static 成员变量 1.static 成员变量2.类变量图解3.类变量的访问4.类变量的内存原理5.类变量的应用 1.static 成员变量 成员变量按照有无static修饰,可以分为 类变量…

体验SmartEDA:颠覆传统,设计流程更流畅,超越Multisim与Proteus!

在电子设计自动化(EDA)领域,传统软件如Multisim和Proteus一直是工程师们的得力助手。然而,随着科技的飞速发展和用户需求的不断升级,一个全新的EDA平台——SmartEDA正崭露头角,凭借其更为流畅的设计流程&am…

使python技能飙升的5个实用F-String技巧

前言 python中存在着一些奇奇怪怪的语法,了解这些语法可以使我们在编写程序时事半功倍,不了解的则会使我们产生疑惑。今天,我们来了解一下python中关于f-string的5个实用的小技巧。 技巧一:数字分隔 num 1000000000 print(-*20)print(f{n…

性能测试中如何设计真实的负载呢?

引言: 性能测试是一项关键的软件开发活动,它可以帮助我们评估系统在不同负载下的响应能力,并找出系统的瓶颈。然而,要确保我们的性能测试结果真实可靠,我们需要设计一个真实的负载。本文将从零开始,详细介…

基于System-Verilog实现DE2-115开发板驱动HC_SR04超声波测距

目录 前言 一、SystemVerilog——下一代硬件设计语言 与Verilog关系 与SystemC关系 二、实验原理 2.1 传感器概述: 2.2 传感器引脚 2.3 传感器工作原理 2.4 整体测距原理及编写思路 三、System-Verilog文件 3.1 时钟分频 3.2 超声波测距 3.3 数码管驱动…

共享购模式:数据驱动的消费增值新体验

共享购模式是一种创新的消费增值系统,它通过整合商家资源,实现商家让利和消费者增值的双重目标。以下是该模式的详细收益分析: 商家让利机制:商家入驻平台需持有价值500元的共享积分作为保证金,确保交易的诚信与质量。…

LabVIEW液压伺服压力机控制系统与控制频率选择

液压伺服压力机的控制频率是一个重要的参数,它直接影响系统的响应速度、稳定性和控制精度。具体选择的控制频率取决于多种因素,包括系统的动态特性、控制目标、硬件性能以及应用场景。以下是一些常见的指导原则和考量因素: 常见的控制频率范…

【介绍下Spark MLlib机器学习】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Java实现经纬度坐标转换

一、坐标系统简介 坐标系统,是描述物质存在的空间位置(坐标)的参照系,通过定义特定基准及其参数形式来实现。 坐标是描述位置的一组数值,按坐标的维度一般分为一维坐标(公路里程碑)和二维坐标…

SpringFramework总结

一.SpringFramework介绍 (一)Spring 广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。 Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Frame…

【机器学习系列】“购物篮分析入门:使用Apyori库进行关联规则挖掘”

目录 一、关联分析介绍 关键概念: 1. 支持度(Support) 2. 置信度(Confidence) 3. 提升度(Lift) 4. 频繁项集 5. 关联规则 应用场景: 实现方法 二、导入数据集 额外介绍一…

实用商务口语:“企业文化”用英语怎么说?柯桥学英语去银泰

企业文化是指企业员工共有的一套观念、信念、价值和价值行为准则,以及由此导致的行为模式。 英文可以说:enterprise / company / corporate culture。 情景对话练习01 A:Your company made a lot of achievements last year; how do you make it? 你们…

开源Mamba-2性能狂飙8倍!多个Mamba超强进化体拿下顶会

MambaOut的热度刚过去没多久,Mamba-2就带着它狂飙8倍的性能炸场了。 Mamba-2的核心层是对Mamba的选择性SSM的改进,同等性能下,模型更小,消耗更低,速度更快。与Mamba不同,新一代的Mamba-2再战顶会&#xff…

【AI大模型】Transformers大模型库(二):AutoModelForCausalLM

目录​​​​​​​ 一、引言 二、AutoModelForCausalLM 2.1 概述 2.2 主要功能 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。 🤗 Transfo…

【Python机器学习】预处理对监督学习的作用

还是用cancer数据集,观察使用MinMaxScaler对学习SVC的作用。 首先,在原始数据上拟合SVC: cancerload_breast_cancer() X_train,X_test,y_train,y_testtrain_test_split(cancer.data,cancer.target,random_state0 ) svmSVC(C100) svm.fit(X_t…

推荐个 Edge/Chrome/Firefox 都支持的 IP 定位查询扩展

作为一个博客站长,对 IP 地址应该都不陌生,可以说是跟站长的工作是息息相关的,反正明月几乎每天都会面临 IP 查询、定位的需要,今天让明月给找到了一个叫”IP 定位查询“的浏览器扩展,在 Edge 和 Firefox 下体验后感觉…

多卡聚合智能融合通信设备在无人机无线视频传输应用

无人驾驶飞机简称“无人机”,是利用(无线电)遥控设备和自备的程序控制装置操纵的不载人飞行器,现今无人机在航拍、农业、快递运输、测绘、新闻报道多个领域中都有深度的应用。 无人机无线视频传输保证地面人员利用承载的高灵敏度照相机可以进行不间断的画…

【蓝桥杯2025备赛】分巧克力

【蓝桥杯2025备赛】分巧克力 [蓝桥杯 2017 省 AB] 分巧克力 题目描述 儿童节那天有 K K K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N N N 块巧克力,其中第 i i i 块是 H i W i H_i \times W_i Hi​Wi​ 的方格组成的长方形…

自动化执行任务的脚本代码分享!

在当今信息化社会,自动化执行任务的脚本代码已经成为提高工作效率、减少人工错误的重要工具。 无论是数据处理、文件操作,还是网络请求、系统监控,脚本代码都能帮助我们实现自动化操作,从而释放人力,让我们有更多时间…

LeetCode-103. 二叉树的锯齿形层序遍历【树 广度优先搜索 二叉树】

LeetCode-103. 二叉树的锯齿形层序遍历【树 广度优先搜索 二叉树】 题目描述:解题思路一:层序遍历,唯一区别就是ans.append(level[::-1] if len(ans) % 2 else level)背诵版:解题思路三:0 题目描述: 给你二…