【UML用户指南】-07-对基本结构建模-公共机制

目录

1、术语和概念

1.1、注解(note)

1.2、修饰

1.3、衍型

1.4、标记值

1.5、约束

1.6、标准元素

1.7、外廓(profile)

2、对新特性建模

3、对新语义建模


注解 (note)是附加在元素或元素集上用来表示约束或注释的图形符号。在图形上,把注解画成带有一个折叠角的矩形,在矩形中填写文字的或者图形的注释。

衍型 (stereotype)是对UML的词汇的扩展,用于创建与已有的构造块相似但针对特定问题的新种类的构造块。在图形上,把衍型表示成用双尖括号(«»)括起来的名字,放在其他的元素名之上。作为一种选择,可以用一种与衍型相关的新图标来表示被衍型化元素。

标记值 (tagged value)是衍型的一种特性,允许在带有衍型的元素中创建新的信息。在图形上,把标记值表示成形如name = value的串,放在一个附加到对象上的注解中。

约束 (constraint)是对UML元素语义的文字说明,用来增加新的规则或修改已有的规则。在图形上,把约束表示成用花括号括起来的串,并把它放在相关的元素附近,或者通过依赖关系连接到这个(或这些)元素。作为一种选择,可以在注解中表示约束。

UML由于存在着4种运用于整个语言的公共机制而得以简化,它们是:规约、修饰、公共划分和扩展机制

1、术语和概念

1.1、注解(note)

注解是一种最重要的能单独存在的修饰。
 

衍型、标记值和约束是UML提供的用以增加新的构造块、创建新的特性和说明新的语义的机制。

例如,如果对网络建模,可能需要路由器和集线器的表示符号,可以用衍型化结点来表示它们,使它们就好像原有的构造块一样;

类似地,项目发布组的成员要负责装配、测试和部署发布,可能要跟踪版本号和各个主要子系统的测试结果,对此就可以用标记值把这些信息附加到模型上;最后,如果对硬实时系统建模,可能要用时间预算和最后完成期限来修饰模型,可以使用约束捕获这些计时需求。
 

1.2、修饰

修饰是附加到元素的基本表示法之上的文字或图形项,用于对元素规约的细节进行可视化。例如,关联的基本表示法是一条线,但是可以用各端的角色或多重性等细节来修饰它。

可以在它们平常的分隔栏的底部增加额外的分隔栏,以填写这种信息

1.3、衍型

把衍型看作元类型(一种定义其他类型的类型),因为每一个衍型将创建一个相当于 UML 元模型中新类的等价物。

例如,如果对商业过程建模,则将引入像职工、文档和政策这样的事物;类似地,如果正在进行像Rational统一过程这样的开发过程,则将使用边界、控制和实体类来建模。这是衍型的实际价值所在。

当对结点或类这样的元素建立衍型时,实际上是通过创建类似于已有的构造块的新构造块来扩展UML,但新构造块有自己的具体特性(各个衍型可以提供自己的标记值集合)、语义(各衍型可以提供自己的约束)和表示法(各衍型可以提供自己的图标)。


1.4、标记值

UML 中的每个事物都有它们自己的一组特性:类有名称、属性和操作,关联有名称和两个或两个以上的端点(每个端点都有自己的特性)等。

用衍型可为UML增加新的事物,用标记值可为UML的衍型增加新的特性。

标记值的最常见的用途之一是说明与代码生成或配置管理相关的特性。

例如,用标记值指明特定类所映射到的编程语言;可以用标记值描述一个构件的作者或版本。


1.5、约束

UML中的每一个事物都有它自己的语义。泛化(通常,如果知道什么对你有好处)意味着运用Liskov 替代原理,而连接到一个类的多个关联则表示不同的关系。使用约束,可以增加新的语义或扩展已存在的规则。约束指明了运行时的配置必须满足与模型一致的条件。

1.6、标准元素

对于类目、构件、关系和其他一些建模元素,UML 定义了一些标准衍型。有一个主要为工具建造者准备的标准衍型,使他们可对衍型本身建模。

stereotype——指明类目是一个可以应用到其他元素的衍型。

当要显式地对那些为项目定义的衍型建模时,则使用这个衍型。

1.7、外廓(profile)

为特定的用途或领域定义一个合适的UML版本常常是有用的。

它具有一组预定义的衍型、标记值、约束和基类。它还选择了UML元素的一个子集,使得建模者不被那些在这个特定领域不需要的元素所迷惑。

2、对新特性建模

如果要扩展这些基本构造块的特性,就需要定义衍型和标记值。

下图展示了3个子系统,每个子系统都用«versioned»衍型做了扩展,从而含有其版本号和状态。
 

可以用工具设置像version和status这类标记的值。可以把配置管理工具和建模工具结合起来作为开发环境,以此来维护这些值,这样做要胜于手工设置模型中的这些值。

3、对新语义建模

需要表达UML中不存在的新的语义,或需要修改UML中的规则,就需要写一个约束

用OCL书写新语义

上图表明,每个Person可以是零个或多个Team的成员,每个Team至少有一个

Person作为成员。该图还指出了每个Team必须恰好有一个Person作为队长,而每个

Person可以是零个或多个Team的队长。所有这些语义都可以用基本的UML表达。然而

,为了断定队长也必须是相应的Team的一个成员,就要涉及到多个关联,这无法用基

本的UML表达。为了说明这个不变式,必须写一个约束,以表明队长是Team的成员的

一个子集,用一个约束连接这两个关联。其中还包含了一个约束:队长必须做过至少

一年的成员。
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EcoVadis审核方法是什么符合EcoVadis规范的文件清单

EcoVadis审核方法是参照全球契约社会责任国际标准进行,包括环境、劳工及人权、商业道德、可持续采购等四大主题又分:能源消耗及温室气体排放、水环境管理、生态环境与物种多样性保护、局部环境污染、原材料及化学品使用(含废弃物)、产品使用、产品生命末期、消费者健…

控制应优先

先从大体上的去找规律,然后才是数字归纳(更为详细的),同时控制关系应该优先(这里是天数和位置)。是否涉及所有对象不是广泛,如果是具体的数值就不是广泛。

天润融通携手好丽友,打造食品零售行业智能客服新标杆

AI大模型,如何给食品零售行业的客服服务带来质变? 在很多人印象中,食品零售行业是不需要客户服务的。 因为绝大多数食品都是通过经销商、零售商、商场这样的渠道进行销售。所以在食品零售行业,一直都有一句话,叫“渠…

贝加莱工控机维修5PC810.SX01-00 APC810系列

工控机维修常见故障:工控机无显示、自检不过、死机、触摸不灵、按键无法操作、与PLC通讯不上驱动器报过流过载、电压高、编码器错误 等。 PLC有输入无输出、报错等工控机维修常见故障现象 。 贝加莱工控机维修常见故障排查: 电源灯亮但工控机没有反应: …

ChatTTS:对话式文本转语音模型,开源啦!突破开源语音天花板...

最近,一个名为 ChatTTS 文本转语音项目爆火出圈,短短三天时间,在 GitHub 上已经斩获了 9.2 k 的 Star 量。 ChatTTS:对话式文本转语音模型 项目地址:https://github.com/2noise/ChatTTS/tree/main 体验地址&#xff1a…

Houdini pbd_constraints.h的文件位置

Houdini安装目录下的houdini\vex\include文件夹 C:\Program Files\Side Effects Software\Houdini 19.5.716\houdini\vex\include

Codeforces Round 950 (Div. 3)(A~E题解)

这场比赛我自己打的是真的垃圾,也是侥幸被拿下了,第三题当时没想清楚,要不然还能止损一下,惜败惜败 话不多说,现在来看A~E题的题解 A. Problem Generator 题解:这题水题一个,我们来考虑本题的…

学会 YOLOv8 直接上手 YOLOv10 | YOLOv8 YOLOv10 模型结构 Yaml 文件对比

先来对比下 模型 yaml 文件, YOLOv8 的 5 个模型尺寸是写到一起的,也就是说,YOLOv8 的 5个尺寸之间就是宽度和深度等比例缩放; YOLOv10 的 6 个模型尺寸是分开写的,10 并不是简单的宽度和深度等比例缩放,…

正邦科技七:pycharm的使用

Pycharm的使用 1:下载python解释器:https://www.python.org/downloads/windows/ 2:下载Pycharm社区办:去官网下载(不需要跟Java一样配置jdk这种环境) 需要注意一点如果是别人发的包解压之后不能直接用&…

C++期末复习

目录 1.基本函数 2.浅拷贝和深拷贝 3.初始化列表 4.const关键字的使用 5.静态成员变量和成员函数 6.C对象模型 7.友元 8.自动类型转换 9.继承 1.基本函数 (1)构造函数,这个需要注意的就是我们如果使用类名加括号,括号里面…

Spring Cloud系列——使用Sentinel进行微服务保护

文章目录 一、引言1. 雪崩问题的产生原因2. 解决雪崩问题的思路 二、微服务保护1. 服务保护方案1.1 请求限流1.2 线程隔离1.3 服务熔断 2. Sentinel2.1 安装2.2 微服务整合2.2.1 请求限流2.2.2 线程隔离①OpenFeign整合Sentinel②配置线程隔离 2.2.3 服务熔断①编写降级逻辑②配…

实验室类管理平台LIMS系统的ui设计实例

实验室类管理平台LIMS系统的ui设计实例

基于STM32的位置速度环PID控制伺服电机转动位置及程序说明

PID控制原理 PID控制原理是一种广泛应用于工业自动化和其他领域的控制算法。PID控制器的名字来源于其三个主要组成部分:比例(Proportional)、积分(Integral)和微分(Derivative)。PID控制器实现…

一种一维时间序列信号的广义小波变换方法(MATLAB)

地震波在含油气介质中传播时,其高频分量往往比低频分量衰减更快。据此,地震波的高频分量和低频分量之间的差异值可以用于分析含油气衰减位置,从而间接指示出含油气储层。对于时频域中的地震波衰减分析,一般地,利用地震…

WebService的配置

如果提示”对操作“XXX”的回复消息正文进行反序列化时出错 那么多半是因为字符长度不够 调整参数 maxStringContentLength"10485760" maxReceivedMessageSize"2147483647" maxBufferSize"2147483647" 示例: messageVersion&qu…

Stable diffusion采样器详解

在我们使用SD web UI的过程中,有很多采样器可以选择,那么什么是采样器?它们是如何工作的?它们之间有什么区别?你应该使用哪一个?这篇文章将会给你想要的答案。 什么是采样? Stable Diffusion模…

MaaS玩家:希望AI大模型价格战再狠一点

明知产能严重过剩的新能源企业却还在重金扩产,多半因为他们花的不是自己的钱;明知极度烧钱的AI大模型却开始打价格战,多半因为他们并不靠这东西挣钱。 所有投资人必备的一项技能,就是中观行业景气度及商业模式对比。很明显&#…

大模型时代的具身智能系列专题(八)

standford Chelsea Finn团队 Chelsea Finn是Stanford计算机科学与电气工程系的助理教授。她的实验室IRIS通过大规模的机器人互动研究智能,并与SAIL(斯坦福人工智能实验室)和ML Group(机器学习团队)有合作关系。他还在…

Java邮件发送的基本流程是什么?如何实现?

Java邮件发送的SMTP服务器如何配置?怎么配置发信? Java邮件发送是在Java应用程序中通过邮件协议(如SMTP)发送电子邮件的过程。它是许多企业级应用程序中常见的功能,用于向用户发送通知、确认邮件等。AokSend将介绍Jav…

浅谈配置元件之随机变量

浅谈配置元件之随机变量 1.概述 为了增强测试的真实性和多样性,JMeter 提供了多种配置元件来生成动态数据,其中“随机变量”(Random Variable) 就是一种常用的配置元件,用于生成随机数值、字符串等,以模拟不同用户请求中的变化参…