UML通信图建模技术及应用例

新书速览|《UML 2.5基础、建模与设计实践》

在对系统的动态行为进行建模时,通信图常被用于按组织结构对控制流进行建模。与顺序图一样,一个单独的通信图只能显示一个控制流。

使用通信图建模时可以遵循如下策略:

(1)确定交互过程的上下文。

(2)确定参与交互过程的活动者与对象。

(3)如果需要,为每个对象设置初始特性。

(4)确定活动者、对象之间的链接。一般先确定关联的链接,因为这是最主要的,它代表了结构的链接。然后确定其他链接,用合适的路径构造型修饰,这表达了对象间是如何互相联系的。

(5)从引发该交互过程的初始消息开始,将每个消息附到相应的链接上,可以用带小数点的编号来表达嵌套。

(6)细化消息内容。比如需要说明时间或空间的约束,可以用适当的时间或空间约束来修饰每个消息。

【例6.4】在例6.1中有一个汽车与汽车钥匙的例子,本例根据它的场景描述绘制通信图。

UML顺序图的建模技术及应用示例-CSDN博客 (<===汽车与汽车钥匙的例子)

首先,确定属于通信图的元素,即对象CarKey、CarOwner、Car。

其次,建模这些元素之间的关系,着手建模早期阶段的通信图,在类元之间添加链接和关联角色。例如,CarOwner按下CarKey的按钮表示了CarOwner的请求;CarKey发送消息给Car,通知Car实现其pressKeyMessage(b)操作。

最后建模实例层的通信图,需要把类角色修改为对象实例,并且制定执行用例的消息序列。汽车和车钥匙通信图如图6.33所示。

图6.33  汽车和车钥匙通信图

在开发工具中,顺序图和通信图是可以相互转换的。

【例6.5】在例6.2中有一个ATM取款的例子,本例根据它的场景描述绘制通信图,如图6.34所示。

图6.34  ATM取款成功通信图

【例6.6】在例6.3中对图书管理系统的顺序图进行了建模,本例将顺序图转换成对应的通信图。

1)图书管理员处理借书通信图

图书管理员处理借书通信图如图6.35所示,它与对应的图6.20的顺序图表述相似,可以相互转换。

图6.35  图书管理员处理借书通信图

2)图书管理员处理还书通信图

图书管理员处理还书通信图如图6.36所示,它与对应的图6.21的顺序图表述相似,可以相互转换。

图6.36  图书管理员处理还书通信图

3)借阅者查询书目通信图

借阅者查询书目通信图如图6.37所示,它与对应的图6.22的顺序图表述相似,可以相互转换。

图6.37  借阅者查询书目通信图

4)系统管理员添加图书通信图

系统管理员添加图书通信图如图6.38所示,它与对应的图6.23的顺序图表述相似,可以相互转换。

图6.38  系统管理员添加图书通信图

5)系统管理员删除书目通信图

系统管理员删除书目通信图如图6.39所示,它与对应的图6.24的顺序图表述相似,可以相互转换。

图6.39  系统管理员删除书目通信图

6)系统管理员添加借阅者账户通信图

系统管理员添加借阅者账户通信图如图6.40所示,它与对应的图6.25的顺序图表述相似,可以相互转换。

图6.40  系统管理员添加借阅者账户通信图

其中,消息编号用来表示一个消息的时间顺序,通过消息的顺序编号可以更清楚地看出各消息之间的时间顺序,以及相互之间的关系。

《UML 2.5基础、建模与设计实践》(李波,姚丽丽,朱慧)【摘要 书评 试读】- 京东图书 (jd.com)

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

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

相关文章

WinDbg用户模式调试基础

WinDbg用户模式调试基础 在前面的文章中&#xff0c;介绍了如何使用WinDbg分析蓝屏原因https://www.cnblogs.com/zhaotianff/p/15150244.html 不过那会都是在网上找的资料&#xff0c;东拼西凑出来&#xff0c;并没有系统的去学习WinDbg。 最近在学习内核开发这一块的内容&…

Arrays.asList()创建的集合不能使用remove函数

Arrays.asList() 创建的集合确实不能直接使用 remove 方法&#xff0c;这是因为该方法返回的集合是一个固定大小的列表&#xff0c;背后由一个数组支持。由于数组的长度是固定的&#xff0c;所以这个列表也不能增加或减少元素。 以下是详细解释和解决方案&#xff1a; 原因 …

顺序表的实现和操作

目录 一.前言 二. 顺序表的优缺点 三. 顺序表的定义和初始化 四.顺序表的相关操作 一.前言 首先介绍下线性表的定义&#xff0c;线性表是具有相同特性的数据元素的一个有限序列。而我们的顺序表就是线性表的一种&#xff0c;是线性表的顺序存储结构。所谓顺序存储就是把逻辑…

Photos框架 - 自定义媒体选择器(UI列表)

引言Photos框架 - 自定义媒体资源选择器&#xff08;数据部分&#xff09;-CSDN博客 关于自定义媒体选择器上一篇博客我们已经介绍了使用Photos获取媒体资源数据和处理媒体资源数据&#xff0c;有了数据&#xff0c;UI的实现就比较灵活了&#xff0c;我就以上面的设计样式为例…

LabVIEW操作系列1

系列文章目录 我的记录&#xff1a; LabVIEW操作系列 文章目录 系列文章目录前言五、特殊用法5.1 取值范围表示5.2 对输入值取值范围进行限定5.3 控制多个While循环停止运行。5.4 获取按钮上的文本5.5 获取按钮上的文本【进阶】 六、使用步骤1.引入库2.读入数据 七、其余功能7.…

数学建模基础:数据的分析与模型构建

引言 在当今数据驱动的世界中&#xff0c;数学建模已成为解决复杂问题的关键工具。本篇文章将探讨数学建模的基础知识&#xff0c;特别是数据处理与拟合模型的重要性和方法。 第一部分&#xff1a;数据的重要性 数据是数学建模的基石。在开始任何建模工作之前&#xff0c;我…

Spring源码(六)--Bean生命周期相关的接口

Bean生命周期相关的接口 Bean生命周期接口相关的这些类和接口&#xff0c;都可以多看看。 Bean工厂实现应该尽可能支持标准的Bean生命周期接口。 整套初始化方法及其标准顺序为: * * <li>BeanNameAwares {code setBeanName}* <li>BeanClassLoaderAwares {code se…

2.5 openCv -- 使用 OpenCV 合并(混合)两张图片

目标 在本教程中,您将学习: 什么是线性混合及其用途;如何使用 addWeighted() 函数合并两张图片。理论 注释 下面的解释来自 Richard Szeliski 的书籍《计算机视觉:算法与应用》。 从我们之前的教程中,我们已经了解了一些像素运算符。一个有趣的二元(双输入)运算符是线…

【Python selenium过极验五子棋】自动化过五子棋人机验证,享受丝滑的落子,秒了

文章日期&#xff1a;2024.07.25 使用工具&#xff1a;Python 文章类型&#xff1a;自动化过极验五子棋 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法…

Spring Boot(八十二):SpringBoot通过rsa实现API加密

项目中使用RSA加密方式对API接口返回的数据加密,让API数据更加安全。别人无法对提供的数据进行破解。Spring Boot接口加密,可以对返回值、参数值通过注解的方式自动加解密 。 下面开始代码演示 1 接口加密 1.1 新建一个springboot项目 1.2 添加依赖 <dependency>&l…

如何做校园圈子小程序,需要哪些功能?可打包APP小程序H5,源码交付,支持二开!

独立学校首页 支持每个学校独立首页!每个学校都可以拥有专属首页&#xff0c;打造不同风格的学校首页展示效果 多业务覆盖 可实现校园内外卖、跑腿、超市、药店水果、快餐店等业务全覆盖!所有配送业务平台都可开展 多站点运营 支持多学校多站点运营&#xff0c;各分站管理员可独…

【Docker】CentOS7环境下的安装

环境展示 安装 配置仓库 sudo yum install -y yum-utils # docker官方key文件下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 建议使用阿里云key文件下载 sudo yum-config-manager --add-repo https://mirrors.aliyun.…

Python小工具——监听某网站的数据变化并进行邮件通知

目录 一、需求描述 二、解析 三、实例代码 一、需求描述 监听自考网2024年广东省6月份的毕业生学历注册进度&#xff0c;这是网址&#xff1a;https://www.chsi.com.cn/xlcx/count_zk.jsp&#xff0c; 如上图所示&#xff0c;我们想知道这个红色的空格啥时候被填满&#xf…

【yolov8】|小目标优化|:增加CA机制 运行成功

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀 你好,我是@努力的小巴掌 之前用baseline跑了yolov8。 为了提升性能,我们需要对yolov8进行优化。 本次的优化,我们从增加注意力机制开始…

无人机组装与操作实训课程详解

一、课程名称与目标 课程名称&#xff1a;无人机组装与操作实训课程 课程目标&#xff1a;本课程旨在培养学员对无人机组装技术的深入理解和实际操作能力&#xff0c;使学员能够独立完成无人机的组装、调试和日常维护工作&#xff0c;并具备一定的无人机操作能力和安全意识。…

Web开发:使用数据库工具Navicat技巧合集

1.EXCEL批量导入数据 打开Navicat准备导入数据&#xff0c;点击导入 选择excel 字段名行应该写0&#xff08;下图错误&#xff09; 下一步&#xff0c;表已经用语法建好了&#xff0c;因此不用打勾 配置好字段&#xff0c;下一步&#xff0c;点击开始即可。 2.数据表从一个服…

【HarmonyOS】HarmonyOS NEXT学习日记:七、页面与组件的生命周期

【HarmonyOS】HarmonyOS NEXT学习日记&#xff1a;七、页面与组件的生命周期 页面和组件 组件&#xff1a;用Component装饰的代码称为自定义组件页面&#xff1a;Entry装饰的组件即页面的根节点 组件生命周期 aboutToAppear&#xff1a;在创建自定义组件的新实例后&#xf…

WPF---Prism视图传参

Prism视图传参方式。 实际应用场景 点击tabitem中的列表数据&#xff0c;同步更新到ListStatic Region对应的界面。目前用两种方式实现了传参数据同步。 第一&#xff0c;事件聚合器&#xff08;EventAggregator&#xff09; 1. 定义事件 创建一个事件类&#xff0c;用于传…

手持式气象检测设备:便携科技,气象探测

一、手持式气象检测设备&#xff1a;小巧身躯&#xff0c;大能量 手持式气象检测设备&#xff0c;顾名思义&#xff0c;是一种可以手持操作的气象监测工具。它集成了温度、湿度、气压、风速风向等多种传感器&#xff0c;能够实时获取气象数据&#xff0c;并通过显示屏或手机APP…

springboot 使用jSerialComm 读取串口数据

依赖&#xff1a; <dependency> <groupId>com.fazecast</groupId> <artifactId>jSerialComm</artifactId> <version>${jSerialComm}</version> </dependency> 代码&#xff1a; private ByteArrayOutputStream byteArrayOutp…