【UML用户指南】-17-对基本行为建模-交互

news2025/1/16 21:19:03

目录

1、消息的可视化表示

2、对象与角色

3、链和连接件

4、消息

5、序列

6、创建、修改和撤销

7、表示法

8、常用建模技术

8.1、对控制流建模

8.1.1、基于时间的控制流

8.1.2、基于结构的控制流


在任何有意义的系统中,对象都不是孤立存在的,它们相互之间通过传递消息进行交互。

交互是一种行为,这种行为由语境中的一组对象为达到某一目的而交换的一组消息构成。

这些角色表示类、接口、构件、结点和用况的原型实例。

可以用两种方式来对一个交互建模:

一种方式着眼于消息是如何按照时间顺序调度的;

另一种方式则着眼于交互中对象间的结构关系,并考虑消息是如何在这个结构的语境中被传递的。

交互图分为

1、顺序图:强调消息的时间顺序

2、通信图/协作图:侧重于发送和接收消息的对象之间的组织结构

1、消息的可视化表示

UML提供了对消息的图形化表示,如图所示。这种可视化的消息表示法强调了消息的最

重要的部分:名称、参数(若有的话)和顺序。在图形上,把消息表示为一条有向直线,

并且通常还包含相应的操作名。

85baadaf34db4c4abb6f834838e7d98f.png

2、对象与角色

参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对

象代表现实世界中的某个东西,例如,p作为类Person的一个实例,代表一个特定的人;而

作为原型化的事物,p可以代表类Person的任何实例【角色】。

可以把对象图看作是对交互的静态方面的表示,它通过说明所有一起工作的对象来设置交

互的场所。交互则通过引入可以沿着连接这些对象的链传递的消息的动态序列来进一步展

示交互。

对象图 + 消息传递 = 交互图

3、链和连接件

链是对象之间的语义连接。一般来说,链是关联的实例。如下图所示,在一个类与另一

个类之间有关联的情况下,这两个类的实例之间就可能有链;在两个对象之间有链存在的

情况下,一个对象就能向另一个对象发送消息。

e359ba09ffbd4b4dba30370066282f45.png

1)图的顶部是一个类图,其中声明了类Person和Company以及这两个类之间的多对多关联 employee-employer。

2)图的中部展示了协作 WorkAssignment的内容:

为某个员工分配某个工作。这个协作包括两个角色以及二者之间的一个连接件。

3)图的底部是该协作的一个实例,其中有分别绑定到角色和连接件的对象和链。底部的一个具体消息表示在该协作中的原型消息的声明。
 

链指明了一个对象向另一个对象(或自身)发送消息的路径。多数时候,指明存在着这样

一个路径就足够了。如果需要更精细地表示路径是如何存在的,可以用下面任意一种约束

来修饰链的有关端点。

 关联(association)  

说明对应的对象对关联是可见的。

 自身(self)     

说明对应的对象因为是本操作的调遣者,所以是可见的。

 全局(global)    

说明对应的对象在全局范围内可见。

 局部(local)     说明对应的对象在局部范围内可见。

 参数(parameter)   说明对应的对象因为是一个参数,所以是可见的。

4、消息

在传送一个消息时,对消息的接收通常会产生一个动作。这个动作可能引发目标对象以及

该对象可以访问的其他对象的状态改变。

动作分类:

  • 调用(call)调用某个对象的一个操作。对象也可以给自己发送消息,引起本地的操作调用。【实心箭头】过程控制
  • 返回(return)给调用者返回一个值。【虚线箭头】
  • 发送(send)向对象发送一个信号。【普通箭头】 单调异步
  • 创建(create)创建一个对象
  • 撤销(destroy)撤销一个对象。对象也可以撤销自身。

ef43497eb51e4cab88a1bc5e1dad4a1c.png

创建和撤销是用衍型显示的

5、序列

当一个对象向另一个对象发送消息(实际上是将某个动作委派给了消息的接收者)时,接

收对象可能接着会向另一个对象发送消息,这个对象又可能发送消息给下一个不同的对象

,如此一直传下去。这个消息流形成了一个序列。任何序列都有开始,每个消息序列都是

从某个进程或线程开始的。而且只要进程或线程还在活动,消息序列也就会继续。一个不

间断的系统(如实时的设备控制),只要它在其上运行的结点没关闭,它就会一直执行。

系统中的每个进程和线程都定义了一个清晰的控制流。

在每一个流中,消息是按时间顺序排列的。为了在图形上更好地可视化一个消息的序列,可以显式地对消息在序列开始后的次序建模,

每个消息的前面加上一个用冒号隔开的序号作为前缀。

通信图展示一个协作中角色之间的消息流。如下图所示,消息沿着协作中的连接流动。

通常可以用带填充箭头的实线来表示过程式的或嵌套的控制流,

其中消息findAt的序号为2.1,表示它是嵌套在第2个消息里的第1个消息。

1)过程式序列:【调用方式】
 

4e7cfdc9acc04b458a4507aaf4c459cb.png

可以用枝杈形箭头表示的单调控制流来描述非过程式控制的每一步。

在下图中,消息assertCall的序号为2,表明它是序列中第二个消息。

2)单调序列:【发送方式】


3cc601c4256b4c9b8308b39c653f0289.png

1)对包含多重控制流的交互建模时,指明发送某一特定消息的进程或线程是很重要的。在UML

中,可以把位于该序列根部的进程或线程的名称加到消息的序号之前,以此区分不同的控

制流。例如,表达式:

D5 : ejectHach(3)

表明作为序列中第五个消息的操作ejectHatch(具有实参3)以进程或线程D为根。

2)下面的表达式所示,具有实参“Rachelle”的操作find的返回值是p。这是一个嵌套的

序列,表明第二个消息嵌套于第三个消息中,而第三个消息又嵌套于第一个消息中。在同

一张图中,p还可以在其他的消息中作为实际参数使用。

1.3.2 : p := find (“Rachelle”)

6、创建、修改和撤销

        在某些交互中对象可以被创建(由create消息来说明)和撤销(由destroy消息来说明)。

链也是一样:对象之间的关系可以建立(come)和消失(go)。

为了指明一个对象或链在一个交互过程中是否出现和/或消失,可以在通信图中为它的角色附加一个注解。

在交互过程中,对象的属性值、状态和角色是经常改变的。可以通过在顺序图的生命线上

显示对象的状态或者值来反映对象的改变。

        在顺序图中,对象或角色的生命期、创建与撤销都通过其生命线的垂直延伸而显式地表示

出来。在通信图中,必须使用注解表示创建和撤销。如果展示对象的生命期是重要的,就

使用顺序图。

7、表示法

        在为交互建模时,通常既包括角色(每个角色代表交互实例中的对象),又包括消息(每

个消息都代表对象之间的通信活动,并导致某些动作发生)。

        可以采用两种方式来可视化地表示交互中所涉及的角色和消息:一种方式是强调消息的时

间顺序,另一种方式是强调发送和接收消息的角色的结构组织。在UML中,第一种表示法称

为顺序图;第二种表示法称为通信图。顺序图和通信图都属于交互图。(UML还有一种名为

定时图的特殊交互图,它展示角色之间交换消息的准确时间。

        顺序图允许对一个对象的生命线建模。一个对象的生命线代表该对象在某一特定时间内的存在,并可能覆盖该对象的创建和撤销。通信图允许对交互的对象之间可能存在的结构上的链建模。
 

8、常用建模技术

8.1、对控制流建模

8.1.1、基于时间的控制流

1c1d296ad95e4f54a291cda3da73f880.png

展示了在一个发行和订阅机构语境中进行交互的一组角色(观察者设计模式的一个实例)。图中包括 3个角色:p(StockQuotePublisher 的实例)、s1 和 s2(都是StockQuoteSubscriber的实例)。该图是一个顺序图,强调消息的时间顺序。

8.1.2、基于结构的控制流

ff394849efd5458381c5b09b63fd641a.png

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

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

相关文章

SQL优化选对执行计划,查询速度提升1000倍 | OceanBase 应用实践

作者:爱可生数据库高级工程师任仲禹,擅长故障分析和性能优化。 本文通过一个案例,分享使用OceanBase时,SQL走错执行计划,而导致慢SQL的排查方法论。 案例背景 在使用OceanBase 3.2.3 版本的过程中,项目组反…

Spring的SmartLifecycle可以没用过,但没听过就不好了! - 第517篇

历史文章(文章累计500) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

HTML基础结构入门

HTML&#xff08;超文本标记语言&#xff09;是构建网页的基础语言。它用于描述网页的结构和内容。让我们从最基本的HTML文档开始。 HTML基础结构 一个基本的HTML文档结构如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta …

PMP证书有何用?

PMP证书有何用&#xff1f; PMP项目管理专业人士资格认证证书对从事或希望从事项目管理工作的人员有重要意义&#xff0c;具体体现在以下几个方面&#xff1a; 1. 提供职业机会&#xff1a; PMP是项目管理领域的国际认可标准&#xff0c;拥有该证书的人在求职时具备了更强的…

python-docx-template 的 Replace docx pictures 占位图片名称从哪来?

python-docx-template 的 Replace docx pictures 占位图片名称从哪来&#xff1f; 在 Word 中看占位图片名称用代码输出输出结果找对应图片 使用 replace_pic参考资料 在 Word 中看占位图片名称 右键图片 》查看可选文字 用代码输出 from docxtpl import DocxTemplate# 初始化…

【proteus仿真】基于51单片机的电压检测系统

【proteus仿真】基于51单片机的电压检测系统 资料下载地址&#xff1a;关注公众号 小邵爱电子 获取 1.前言 使用51单片机和ADC模块设计一个数字电压表&#xff0c;将模拟信号0~5V之间的电压转换为数字量信号&#xff0c;并通过LED实时显示电压数据 、 2.仿真原理图 3.硬件…

python安装目录文件说明----Dlls文件夹

在Python的安装目录下&#xff0c;通常会有一个DLLs文件夹&#xff0c;它是Python标准库的一部分。这个文件夹包含了一些动态链接库&#xff08;Dynamic Link Libraries&#xff0c;DLL&#xff09;&#xff0c;这些库提供了Python解释器和标准库的一些关键功能。以下是对这个文…

Linux(Centos7)OpenSSH漏洞修复,升级最新openssh-9.7p1

OpenSSH更新 一、OpenSSH漏洞二、安装zlib三、安装OpenSSL四、安装OpenSSH 一、OpenSSH漏洞 服务器被扫描出了漏洞需要修复&#xff0c;准备升级为最新openssh服务 1. 使用ssh -v查看本机ssh服务版本号 ssh -V虚拟机为OpenSSH7.4p1&#xff0c;现在准备升级为OpenSSH9.7p1…

Windows 与 Java 环境下的 Redis 利用分析

1 前言 在最近的一次攻防演练中&#xff0c;遇到了两个未授权访问的 Redis 实例。起初以为可以直接利用&#xff0c;但后来发现竟然是Windows Java (Tomcat)。因为网上没有看到相关的利用文章&#xff0c;所以在经过摸索&#xff0c;成功解决之后决定简单写一写。 本文介绍了…

洗地机性价比高的是哪一款?行内人告诉你

在浏览前&#xff0c;希望您轻触屏幕上方的“关注”按钮&#xff0c;让我后续为您带来更多实用且精彩的内容&#xff0c;感谢您的支持&#xff01; 洗地机作为现在的流行清洁工具&#xff0c;它的魅力之处在于&#xff1a;性价比极高&#xff0c;大多数家庭无需花费过多就能把…

java的Filter(过滤器),Interceptor(拦截器) 和 Aspect(切面)

文章目录 前言一、过滤器 (Filter) 基本用法二、拦截器 (Interceptor) 基本用法三、Aspect(切面)的基本用法总结 前言 Filter 是servlet层面的&#xff0c;由Servlet容器(如Tomcat)支持&#xff0c;只能在web程序中使用&#xff0c;实现了javax.servlet.Filter接口 Intercept…

2024北京智源大会

北京智源大会是年度国际性人工智能高端学术交流的盛会&#xff0c;定位于内行的AI盛会。智源大会紧密围绕当前人工智能学术领域迫切需要解决的问题&#xff0c;以及产业落地过程中存在的诸多挑战&#xff0c;开展深入探讨。智源研究院是2018年11月份成立的一家人工智能领域的新…

直播美颜SDK技术指南:实现实时美颜效果的算法方案

本篇文章&#xff0c;小编将探讨直播美颜SDK的技术实现和算法方案。 一、美颜技术概述 美颜技术通过一系列图像处理算法&#xff0c;实时美颜效果可以在视频直播过程中实时呈现&#xff0c;提升用户的直播体验。为了实现这些效果&#xff0c;需要结合图像处理和计算机视觉技术…

“奇点”临近,产业应用与人工智能怎样“共同进化”

以下文章来源&#xff1a;新华日报 眼下&#xff0c;以大模型为核心的人工智能技术呈现颠覆性突破。年初&#xff0c;OpenAI公司发布旗下的文生视频大模型Sora&#xff0c;距去年ChatGPT的横空出世&#xff0c;也仅仅过去一年。 “当前&#xff0c;人工智能迈向通用智能‘奇点’…

Hue Hadoop 图形化用户界面 BYD

软件简介 Hue 是运营和开发 Hadoop 应用的图形化用户界面。Hue 程序被整合到一个类似桌面的环境&#xff0c;以 web 程序的形式发布&#xff0c;对于单独的用户来说不需要额外的安装。

綦江蜘蛛池四川官网下载

baidu搜索&#xff1a;如何联系八爪鱼SEO? baidu搜索&#xff1a;如何联系八爪鱼SEO? baidu搜索&#xff1a;如何联系八爪鱼SEO? CCSEO蜘蛛统计开发思路一般包括以下几个步骤: 定义需求:明确统计蜘蛛访问数据的目标和要求,例如需要获取哪些信息,统计的精度和频率等。 确定数…

springboot小型超市商品展销系统-计算机毕业设计源码01635

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

thinkphp5使用模型删除与复杂查询EXP

模型删除 应用软删除 表中需要有字段&#xff0c;deletetime 模型中使用下面方法 use SoftDelete;protected $deleteTime delete_time;真实删除 // 软删除 User::destroy(1); // 真实删除 User::destroy(1,true); $user User::get(1); // 软删除 $user->delete(); // 真…

Python批量保存Excel文件中的图表为图片

Excel工作簿作为一款功能强大的数据处理与分析工具&#xff0c;被广泛应用于各种领域&#xff0c;不仅能够方便地组织和计算数据&#xff0c;还支持用户创建丰富多彩的图表&#xff0c;直观展示数据背后的洞察与趋势。然而&#xff0c;在报告编制、网页内容制作或分享数据分析成…

SFTP共享配置

SFTP一般指SSH文件传输协议&#xff0c;在计算机领域&#xff0c;SSH文件传输协议&#xff08;英语&#xff1a;SSH File Transfer Protocol&#xff0c;也称Secret File Transfer Protocol&#xff0c;中文&#xff1a;安全文件传送协议&#xff0c;英文&#xff1a;Secure FT…