UML九种图之交互图

article/2025/10/19 11:09:18

    序列图又叫顺序图,是交互图的一种,交互图包括顺序图和合作图。那么什么是交互图呢?

  Ø  交互图

   u  定义

    交互图是用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。

交互主要用于描述协作的动态行为方面。

    当对交互进行建模时,通常既包括对象(每一个对象都扮演某一特定的角色),又包括消息(每个消息都代表对象之间的通信活动,并导致一定的顺序发生)

   u  分类

    ²  描述方式

      ——强调消息的时间顺序

      ——强调发送和接受消息的对象的结构组织

    ²  两类

     顺序图:强调消息的事件顺序。

     合作图:强调对象之间的交互关系。

    下面先来介绍序列图也就是顺序图

  Ø  什么是时序图(顺序图)?

    时序图也是顺序图(SequenceDiagram),亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

   u  (时序图)顺序图的构成

    ——对象

    ——消息:对象之间的通信,可以是信号或者操作调用。

    ——生命线(激活):表示在某段时间内对象是存在的。

   ²  对象

   1.序列图中的对象可以是系统的参与者或者任何有效的系统对象。

   2.对象的表示形式也和对象图中的对象的表示方式一样,使用包围名称的矩形框来标记,所显示的对象及其类的      名称带有下划线,二者用冒号隔开,使用“对象名:类名”的形式,对象的下部有一条被成为“生命线”的垂直虚线。

    举例:


   ²  消息

    1.消息(Messages)是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。

    2.它可以有不同的实现方式,比如过程调用、活动线程间的内部通讯、事件的发生等。

    举例

   ²  生命线(激活)

    l  生命线

    生命线(Lifeline)是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。

每个对象的底部中心的位置都带有生命线。生命线是一个时间线,从序列图的顶部一直延伸到底部,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时段。

    举例

   l  激活

    1.激活(Activation)是对象操作的执行,它表示一个对象直接地或通过从属操作完成操作的过程。

    2.它对执行的持续时间和执行与其调用者之间的控制关系进行建模。

    3.激活在序列图中用一个细长的矩形框表示。

    举例

   ²  消息的形式

      ——Call

      ——Return

      ——Send

      ——Create

      ——Destroy

   ²  消息的分类

    a)简单消息:表示简单的控制流。

    b)同步消息:表示嵌套的控制流。

    c)异步消息:表示异步控制流。

     同步:直接等待一件事情的发生,并且等待这件事情的消息返回

     异步:可以同时进行不同的事情,可以接受不同的消息的返回

     可以将一个简单消息和一个同步消息合并成为一个消息。

 

    符号表示:

    ²  举例


  Ø  序列图举例

  Ø  合作图

    合作图强调对象之间的交互关系。

  Ø  两者画图比较

    两者的区别与联系

    联系:两者都是交互图,语义上是等价的,并且可以相互转化。

    不同点:

      1、时序图强调的是时间,而合作图强调的是空间。

      2、顺序图是强调消息时间顺序,有对象生命线和控制焦点。

         协作图是强调接收和发送消息的对象的结构组织,有路径和顺序号。

      3、协作图(collaborationdiagram)用数字表示之间的交互关系,及交互的顺序。

         顺序图:先发生的事件在上面,进而知道其过程

      4、一般情况下选择顺序图,







http://chatgpt.dhexx.cn/article/ZYfdNWfj.shtml

相关文章

UML---交互图(顺序图和协作图)

交互图 交互图用来描述对象之间的交互关系,包括顺序图和协作图 交互图用来描述系统中的对象是如何进行相互作用的。即一组对象是如何进行消息传递的。 顺序图 1.概念:描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序&#xff0…

【UML】——交互图

一、交互图 1、什么是交互图 交互图用来描述系统中的对象是如何进行相互作用的,即一组对象是如何进行消息传递的 交互图主要用于描述协作的动态行为方面 2、两种方式描述 强调消息的时间顺序 强调发送和接受消息的对象的结构组织 3、交互图包括 时序图&…

【环境搭建】gflags和glog的安装

【环境搭建】gflags和glog的安装 在Ubuntu16.04上安装gflags什么是gflags安装gflags 在Ubuntu16.04上安装glog什么是glog安装glog使用glog 结语 在Ubuntu16.04上安装gflags 什么是gflags gflags用于处理命令行参数 安装gflags 用apt下载git和cmake sudo apt-get install g…

Windbg的gflags.exe -- Attach调试利器

有没有碰到过程序启动就因为异常直接crash?有没有碰到程序启动之后什么反应也没有?有没有碰到过程序启动之后去触发另一个进程失败?有没有碰到别人的程序调用了你的代码,出现问题以后,让你来调查,而你只有你…

gflags的交叉编译

gflags版本:gflags 2.2.2 目录 编译 动态库的编译 cmake 设置交叉编译器是重点。 lbwDESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACEgflags -DCMAKE_CXX_FLAGS-fPIC -DBUILD_SHARED_LIBSON -DCMAKE_C_COMPILERaarch64-linux-gnu-…

【Ubuntu 20.04】 安装使用 Gflags、Glog、JSON、yaml 教程

Gflags 谷歌命令行解析工具gflags详解 https://zhuanlan.zhihu.com/p/95889124Glog //安装 sudo apt-get install libgoogle-glog-dev //卸载 sudo apt-get remove libgoogle-glog-devGoogle开源库之Glog库详解 https://zhuanlan.zhihu.com/p/26025722JSON Linux C/C下使用…

Ubuntu20.04安装g3log、glog和gflags

建议最好先安装最新版本的cmake,在进行以下安装 cmake安装教程 1.安装gflags 方法一、首先打开终端 ||git clone https://github.com/gflags/gflags.git ||cd gflags ||mkdir build && cd build ||cmake .. -DGFLAGS_NAMESPACEgoogle -DCMAKE_CXX_FLAGS-f…

Gflags learning notes

简介 gflags是谷歌开发的一个命令行标记库,区别于其他命令行标记库,它允许标记定义出现在源文件各处,而不是限定在一个源文件(如main())中。这意味着一个源代码文件定义和使用对该文件有意义的标志,任何链接…

(02)Cartographer源码无死角解析-(09) gflags与glog简介、及其main函数讲解

本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885 …

glog和gflags的使用

glog&#xff1a;日志输出 支持debug功能 glog提供特定的宏只在debug模式下生效。以下分别对应LOG、LOG_IF、DLOG_EVERY_N操作的专用宏。 DLOG(INFO) << "Found cookies"; DLOG_IF(INFO, num_cookies > 10) << "Got lots of cookies"; DLO…

【gflags】gflags 命令行参数配置库

gflag介绍 google开源的gflags是一套命令行参数解析工具 主要就是用来解析命令行参数&#xff0c;并且支持从文件或者从环境变量中读入参数&#xff0c;功能十分强大 gflag的使用 我们以使用为目标进行讲解&#xff0c;不会进行深入了解&#xff08;其实并不是很难&#xff0c;…

js判断文件类型详解

js判断文件类型详解 通过file的type属性判断 <input type"file" onchange"onchangecb(this)" /> <script> function onchangecb(e) {const file e.files[0];console.log(file.type); } </script>像html中input标签&#xff0c;就是根…

JS——判断变量类型方法汇总

判断变量类型 一、使用typeof判断变量类型二、使用instanceof判断变量的类型三、使用constructor判断变量的类型四、使用Object.prototype.toString.call判断变量的类型五、使用jquery中$.type判断变量的类型。六、总结 在JS中&#xff0c;有 5 种基本数据类型和 1 种复杂数据类…

JavaScript中的类型判断

js中的类型判断 1、使用typeof进行类型判断2、使用 instanceof 判断对象3、使用Array.isArray()判断数组 1、使用typeof进行类型判断 function fun() { }; console.log("数字的类型为&#xff1a;" typeof (1)); console.log("字符串的类型为&#xff1a;&quo…

js:判断数据类型的几种方法

参考文章&#xff1a;JavaScript中判断对象类型的几种方法总结 根据要判断的数据对象&#xff0c;来选用合适的方法 1、原始数据类型 6种&#xff1a;number、string、boolean、undefined、null、symbol 一、typeof let str hello; console.log(typeof str); // string【特…

JS判断数据类型的几种方式

JS中常见的几种数据类型 基本类型&#xff1a;string、boolean、number特殊类型&#xff1a;undefined和null3、引用类型&#xff1a;Array、Date、RegExp… typeof typeof检测基本数据类型时没有问题&#xff0c;但是当其对引用类型进行检测时&#xff0c;会返回object&…

js 精确判断对象的类型

在 JavaScript 里使用 typeof 来判断数据类型&#xff0c;只能区分基本类型&#xff0c;即 “number”&#xff0c;”string”&#xff0c;”undefined”&#xff0c;”boolean”&#xff0c;”object” 五种。 对于数组、函数、对象来说&#xff0c;其关系错综复杂&#xff0c…

JavaScript——判断js数据类型(类型检测)

判断js数据类型&#xff0c;也就是我们说的类型检测&#xff0c;本文提供五种方法&#xff0c;分别是typeof运算符、instanceof操作符、Object.prototype.toString方法、constructor属性、duck type。 1、typeof运算符 typeof算是最常见的了&#xff0c;使用它会返回一个字符…

js判断数据类型常用的6种方法

js判断数据类型常用的方法,不论在开发中开始在面试中,都是经常遇到的问题,尤其是在面试时,当面试官问及js判断数据类型的方法时,回答的越多,说明掌握的广度跟深度越多,感觉自己逼格也越高.废话不多说了,进入正题 常见的判断js数据类型的方法有如下几种 1.最常见的判断方法&am…

js判断数据类型的几种方法

第一种&#xff1a;Object.prototype.toString()方法&#xff1a; 注意这里是Object原型对象上的toString方法才能判断&#xff0c;其他原型对象上的不能判断&#xff0c;如 Array原型对象上的toString方法是判断不了的&#xff0c;因为它重写了toString方法。 要使用Object…