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

news2024/11/13 9:03:30

新书速览|《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.coloradmin.cn/o/1947644.html

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

相关文章

操作系统杂项(九)

目录 一、简述sleep和wait的区别 1、sleep 2、wait 3、区别 二、简述线程池的设计思路&#xff0c;线程池中线程数量的决定因素 1、设计思路 2、线程池中线程数量 三、进程和线程相比&#xff0c;为何更慢 四、简述Linux零拷贝的原理 1、概念 2、优点 3、原理 五、…

MySQL第一阶段:多表查询、事务

继续我的MySQL之旅&#xff0c;继续上篇的DDL、DML、DQL、以及一些约束&#xff0c;该到了多表查询和事务的学习总结&#xff0c;以及相关的案例实现&#xff0c;为未来的复习以及深入的理解做好知识储备。 目录 多表查询 连接查询 内连接 外连接 子查询 事务 事务简介…

加油卡APP系统开发,线上发展优势分析

在当下社会中&#xff0c;汽车加油已经必不可少了&#xff0c;不管有什么出行计划&#xff0c;都需要提前给汽车加油或者中途加油。随着技术的发展&#xff0c;加油卡APP受到了有车一族的欢迎&#xff0c;大众可以在手机上给汽车加油&#xff0c;还能够享受诸多的优惠活动&…

python-阶乘和(赛氪OJ)

题目描述 求Sn​1!2!3!4!5!⋯n!的值&#xff0c;其中 &#x1d45b;n 是一个数字。输入格式&#xff1a; 输入一个整数 n。输出格式&#xff1a; 输出对应的 Sn​。 样例输入输出样例输入 5样例输出 153数据范围 对于 100% 的数据&#xff0c;保证1≤n≤20。来源/分类&#xff…

如何使用Python和Selenium解决reCAPTCHA

CAPTCHA已成为我们日常在线活动中重要的防御线。无论是登录账户、提交表单还是进行在线支付,CAPTCHA都在幕后保护我们的安全。然而,CAPTCHA有时可能会成为自动化的绊脚石,阻碍自动化测试、数据收集和效率提升。那么,如何以合法合理的方式绕过这些复杂的CAPTCHA挑战呢?在本文中…

导航不是GPS吗,有人用北斗吗?

在现代生活中&#xff0c;提到导航&#xff0c;人们脑海中最先浮现的往往是GPS。然而&#xff0c;近年来&#xff0c;中国自主研发的北斗导航系统&#xff08;BeiDou Navigation Satellite System, BDS&#xff09;正在迅速崛起&#xff0c;逐步占据全球导航市场的一席之地&…

2023年全国赛C题《 电容电感测量装置》设计报告

测量原理 参考下面网站的方案 bookmark 参考LCR测试仪&#xff0c;基本工作原理为给DUT加上正弦激励信号&#xff0c;然后测得该DUT两端的电压和流过DUT的电流&#xff0c;即可通过计算得到DUT的性质和参数。 对于一个理想电容&#xff0c;电流相位应该超前电容两端电压90。…

Java结合uniapp实现验证码(附Demo)

目录 前言1. Java2. uniapp 前言 对于Java的知识点推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 本次的Demo主要以图片验证码的方式输入和接…

抖音矩阵管理系统功能说明:一站式掌握

在当下这个信息爆炸的时代&#xff0c;抖音作为短视频领域的佼佼者&#xff0c;其用户规模持续扩大&#xff0c;影响力日益增强。对于内容创作者和营销人员来说&#xff0c;如何高效管理抖音账号&#xff0c;实现内容的多平台分发和精准触达&#xff0c;成为了亟待解决的问题。…

【JAVA多线程】线程的状态控制

目录 1.JDK中的线程状态 2.基础操作 2.1关闭 2.2中断 2.3.等待、唤醒 2.4.阻塞、唤醒 1.JDK中的线程状态 在JDK的线程体系中线程一共6种状态&#xff1a; NEW&#xff08;新建&#xff09;: 当线程对象创建后&#xff0c;但尚未启动时&#xff0c;线程处于新建状态。RUN…

代码随想录算法训练营day8 | 344.反转字符串、541.反转字符串 II、卡码网:54.替换数字

文章目录 344.反转字符串思路 541.反转字符串 II思路 卡码网&#xff1a;54.替换数字思路复习&#xff1a;字符串 vs 数组 总结 今天是字符串专题的第一天&#xff0c;主要是一些基础的题目 344.反转字符串 建议&#xff1a; 本题是字符串基础题目&#xff0c;就是考察 revers…

链式法则和自动求导

向量链式法则 说明&#xff1a; 1.第一个式子&#xff0c; y是标量&#xff0c;u是标量&#xff0c;x是n维向量 2.第二个式子&#xff0c;y是标量&#xff0c;u是k维向量&#xff0c;x是n维向量&#xff0c;所以y对u求导是k维的行向量&#xff0c;u对x求导是k行n列的矩阵&…

Node 版本控制工具 NVM 的安装和使用(Windows)

遇到了一个项目&#xff0c;前端的node版本很低&#xff0c;需要我去降低node版本才能下载依赖运行&#xff0c;我当然不是傻乎乎的降版本了&#xff0c;而是使用node版本控制工具 NVM。 NVM&#xff08;Node Version Manager&#xff09; nvm 是一个命令行工具&#xff0c;用于…

【OSS对象存储】Springboot集成阿里云OSS + 私有化部署Minio

【OSS对象存储】Springboot集成阿里云OSS 私有化部署Minio 一、摘要二、POM依赖三、配置文件四、表结构设计五、代码实现5.1 代码包结构5.2 API封装5.3 增删改查 六、扩展6.1 Minio配置https访问 一、摘要 掌握阿里云OSS、私有化部署Minio两种对象存储的使用方式运用工厂策略…

STM32-寄存器ADC配置指南

目录 输入方式&#xff1a; 模拟看门狗功能&#xff1a; ADC中断 配置一个Demo 设置时钟 自校准 通道选择 采样时间选择 转换模式选择 断续模式 启动转换 软件触发 外部触发 转换结束 关于DMA 模拟看门狗 ​编辑ADC数据位置​编辑 在STM32F中&#xff0c;ADC可…

FM与AM的特点

1.是什么&#xff1f; FM&#xff08;调频&#xff09;&#xff1a;通过改变载波频率来传递信息AM&#xff08;调幅&#xff09;&#xff1a;通过改变载波的振幅来传递信息 2.分别有什么特点&#xff1f; 抗干扰能力&#xff1a; FM&#xff1a;由于FM信号的传输不依赖于载波的…

c++初阶知识——string类详解

目录 前言&#xff1a; 1.标准库中的string类 1.1 auto和范围for auto 范围for 1.2 string类常用接口说明 1.string类对象的常见构造 1.3 string类对象的访问及遍历操作 1.4. string类对象的修改操作 1.5 string类非成员函数 2.string类的模拟实现 2.1 经典的string…

【CI/CD】docker + Nginx自动化构建部署

CI/CD是什么 CI/CD 是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;或持续交付&#xff08;Continuous Delivery&#xff09;的缩写&#xff0c;它们是现代软件开发中用于自动化软件交付过程的实践。 1、…

自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍

自动驾驶系列—智能巡航辅助功能中的车道中央保持功能介绍 自动驾驶系列—智能巡航辅助功能中的车道变换功能介绍 自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍 自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍 文章目录 2. 功能定义3. 功能原理4. 传感器架构5. 实…

【Redis进阶】集群

1. 集群分片算法 1.1 集群概述 首先对于"集群"这个概念是存在不同理解的&#xff1a; 广义的"集群"&#xff1a;表示由多台主机构成的分布式系统&#xff0c;称为"集群"狭义的"集群"&#xff1a;指的是redis提供的一种集群模式&…