【UML用户指南】-25-对高级行为建模-时间和空间

目录

1、概念

2、时间

3、位置

4、常用建模技术

4.1、对定时约束建模

4.2、对对象的分布建模


分布式系统是这样一个系统,它的构件可以物理地分布在各个结点上。

为了表达对实时系统和分布式系统建模的需要,UML 提供了定时标记、时间表达式、定时约束和位置的图形化表示。

1、概念

  1. 定时标记 (timing mark)是表示事件发生时刻的符号。在图形上,定时标记由位于顺序图边缘的一根小小的水平线表示。
  2. 时间表达式 (time expression)是用来计算绝对或相对时间值的表达式。时间表达式也可以由消息名和对其处理阶段的表示来形成,如request.sendTime或者request.receiveTime。
  3. 定时约束 (timingconstraint)是关于绝对或相对时间值的语义陈述。从图形上看,时间约束的表示同所有约束一样,即由用一对括号括起来的串来表示,并一般通过一个依赖关系连接到一个元素
  4. 位置 (location)是指构件在结点上的放置。位置是对象的一个属性

2、时间

对一个事件的响应必须在可预料的绝对时间或者相对于事件本身可预料的时间发生。

发送时间(sendTime)、接收时间(receiveTime)和传送时间(transmissionTime)。

对于同步调用,也可以引用执行时间(executionTime)来表示往返消息的时间。

可以把这些时间表达式放进一个定时约束中,来说明系统的定时行为。至于约束,可以把它们放在合适的消息的附近,或者用依赖关系显式地连接到消息上来进行表示。

用命名的常量来书写表达式要比显式地写时间好。这样,就可以在模型的一个地方定义这些常量,然后在多个地方引用它们。

3、位置

分布式系统的本质是包含物理上分散于系统各结点上的构件。

在UML中,用部署图来对一个系统的部署视图建模。部署图代表系统在其上执行的处理器和设备的拓扑结构。

制品(例如可执行程序、库、表等)存在于这些结点上。一个结点的每个实例将拥有某些制品的实例,而一个制品的每个实例肯定属于一个结点的一个实例(尽管同一种制品的实例可能散布到不同的结点上)。

可以把构件和类表现为制品。

上图类LoadAgent由类型为Router的结点上的制品initializer.exe来表现。

在UML中可以用两种方式对一个制品的位置建模:

  • 第一种方法如Router所示,将元素(文本或图形)物理地嵌套在包含它的那个结点的附加栏中
  • 第二种方法用带关键词«deploy»的依赖关系将制品和包含它的结点相连。

4、常用建模技术

4.1、对定时约束建模

上图最左边的约束说明了调用事件“刷新”refresh的重复的开始时间。类似地,右边的定时约束说明调用getImage的最大时间段。通常为消息选择简短的名称,使之不与操作的名称相混淆。
 

4.2、对对象的分布建模

1、考虑相关对象集合之间的交互模式

2、考虑系统职责的分布

3、考虑安全、易变性和服务质量问题

4、把对象分配到制品,使得紧密耦合的对象分布在同一个制品上。

5、把制品分配到结点上

上图提供了一个对象图,它对一个零售系统中的一些对象的分布进行建模。这张图的价值在于,它让你可视化某些关键对象的物理分布。

如图所示,两个对象(Order 和 Sales)位于 Workstation 上,两个对象(ObserverAgent 和 Product)位于 Server 上,一个对象(ProductTable)位于DataWarehouse上。
 

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

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

相关文章

抛弃 Neofetch?众多优秀替代方案等你体验!

目录 抛弃 Neofetch?众多优秀替代方案等你体验Neofetch 的替代品FastfetchscreenFetchmacchina 抛弃 Neofetch?众多优秀替代方案等你体验 NeoFetch 是用 Bash 3.2 编写的命令行系统信息工具,该项目的主要开发人员已将 GitHub 存储库存档&…

【PythonWeb开发】Flask连接数据库以及执行数据迁移

一、连接数据库 在Flask中可以使用 Flask-SQLAlchemy 扩展来连接数据库。如果你选择不同的数据库或 ORM,初始化和配置的方式可能会有所不同。下面给出三种常见数据库的连接示例: (1)连接MySQL数据库 使用Flask-SQLAlchemy即可实现…

民生银行收大额罚单:信用卡中心一同被罚,管理层如何施救?

民生银行的2024年,再添变故。 近日,国家金融监管总局宁波分局公布了数则行政处罚信息公开表。内容显示,民生银行(SH:600016、HK:01988)宁波分行、民生银行信用卡中心宁波分中心因多项违法违规事实,共计被处…

企业何时部署冗余链路预防网络故障

部署冗余链路保障企业网络的稳定性和可用性,是确保业务连续性的关键。然而,部署冗余链路(备线)确实会带来额外的成本。因此,企业必须在冗余链路的成本和潜在的业务中断损失之间做出权衡。 部署冗余链路的必要性 1. 当…

rust嵌入式,从svd到代码

在不使用embassy库的情况下, 这个嵌入式教学 讲的比较好. 大概思路就是 安装必要工具 probe-rs-tools , svd2rust下载svd 对于stm32 在这里: 官方svd根据工具生成自己的库自己再拉个库用上面的库. 问题是什么,坑太多,反正我跟着走了一遍,没通. 其实,2024年这套不用看了,图简…

JVM原理(八):JVM虚拟机工具之基础故障工具

这里主要介绍监视虚拟机运行状态和进行故障处理的工具 1. jsp:虚拟机进程状况工具 jsp命令格式: jsp [options] [hostid] jps远程查询虚拟机进程状态 2. jstat:虚拟机统计信息监视工具 jstat命令格式: jstat [option vmid [interval [s|ms] [count]…

antd vue a-select 下拉框模糊查询失效解决方法

我原以为这是一个简单的配置,写上就好了,没想到竟然无法搜索,原因是antd下拉框模糊搜索(show-search)是默认按照value字段来查询的,但是一般我们的都是需要按照label这个属性来查询的。简单点按照我下面标红…

LP-SCADA系统在智能制造中的作用是什么?

在企业思考如何提升产线自动化时,往往考虑到的都是从硬件设备下手,但其实作为“大脑”存在的软件系统更是必不可少,尤其是当产线中的自动化设备越来越多,产生的数据也越来越多,大量数据需要人工进行整理时,…

CSS全解析:从基础到实战,掌握每一个知识点

引言: CSS,全称为Cascading Style Sheets,即层叠样式表,是Web前端开发中不可或缺的一部分。它负责网页的样式设计,包括布局、颜色、字体等,使网页内容呈现出丰富多彩的视觉效果。本文将全面解析CSS的基础属…

python自动化办公之PyPDF2.errors.DeprecationError

背景:pypdf2库在不断更新换代里面的类,逐渐淘汰一些旧的类 PyPDF2.errors.DeprecationError的意思是我们代码里用到的类计划被淘汰了,系统不推荐使用,解决办法:根据提示use xxx instead使用xxx 替换之前的类 例子1 P…

论文阅读YOLO-World: Real-Time Open-Vocabulary Object Detection

核心: 开放词汇的实时的yolo检测器。重参数化的视觉语言聚合路径模块Re-parameterizable VisionLanguage Path Aggregation Network (RepVL-PAN)实时核心:轻量化的检测器离线词汇推理过程重参数化 方法 预训练方案:将实例注释重新定义为区域…

【24医学顶刊】GANDALF:主动学习 + 图注意力变换器 + 变分自编码器,改善多标签图像分类

GANDALF:主动学习 图注意力变换器 变分自编码器,改善多标签图像分类 提出背景子解法1:多标签信息样本的选择子解法2:生成信息丰富且非冗余的合成样本 例子:胸部X射线图像分析传统方法的操作和局限GaNDLF方法的优势 工…

超级会员卡积分收银系统小程序源码系统 前后端完整分离 带完整的安装代码包以及搭建教程

系统概述 超级会员卡积分收银系统小程序源码系统是专为各类商业场景设计的综合性平台。它旨在为商家提供一站式的解决方案,涵盖了会员管理、积分体系、收银操作以及数据统计等多个重要方面。 该系统的前后端分离架构确保了系统的灵活性和可扩展性。前端负责用户界…

如何用程序批量下载小红书的图片?

如何使用MediaCrawler快速下载图片 作为一名图像算法工程师,怎么能没有图片资源呢?今天,我要介绍一个能快速下载图片的方法,仅供学习使用,请勿用于其他用途。 下载项目 首先,从GitHub下载项目&#xff1…

强化学习的数学原理:贝尔曼公式

大纲 这一节课程的大纲: 重点 对于这次课,重点是两个东西: Motivating examples(为什么需要贝尔曼公式) 首先要明白,为什么 return 是重要的? 之前其实就说过,return 能够帮助我们评价一个策略是好还是坏…

uniapp使用 movable-area movable-view 实现按双指中心位置缩放及拖拽功能

原理 使用 transformOrigin: ${state.x}px ${state.y}px 0 重新设置偏移中心点 待解决问题 缩放后进行拖拽会使计算的中心点位置与双指中心位置存在偏差,如果网友有解决这个问题,请贴代码到我的评论区,谢谢。 直接贴出代码 这里有关pdf的…

LVGL实现字库的下载和使用

1 字库 字库的概念:相应文字或字符的合集。 点阵字库:按字库顺序排列的字符/汉字字模的合集。 LVGL中字库使用Unicode编码,Unicode 是全球文字统一编码。它把世界上的各种文字的每一个字符指定唯一编码,实现跨语种、跨平台的应…

深入学习 Kafka(3)- SpringBoot 整合 Kafka

1. 引入 jar <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency>2. yml 配置 spring:kafka:bootstrap-servers: localhost:9092,localhost:9093,localhost:9094 # kafka 服…

大数据开发助手:Coze平台上一款致力于高效解决大数据开发问题的智能Bot!

大数据开发助手&#xff1a;Coze平台上一款致力于高效解决大数据开发问题的智能Bot 核心技术揭秘1. **自然语言处理&#xff08;NLP&#xff09;**2. **知识图谱构建**3. **个性化推荐算法** 功能特色概览1. **即时问题解答**2. **最佳实践分享**3. **个性化学习路径**4. **社区…

哪个牌子的超声波清洗器好?精选四大超强超声波清洗机力荐

生活中戴眼镜的人群不在少数&#xff0c;然而要维持眼镜的干净却不得不每次都需要清洗&#xff0c;只是通过手洗的方式实在太慢并且容易操作不当让镜片磨损更加严重&#xff01;所以超声波清洗机就诞生了&#xff01;超声波清洗机能够轻松清洗机眼镜上面的油脂污渍&#xff0c;…