带和不带箭头的 UML 聚合

2023-11-25

我一直认为 UML 聚合被定义为路径开头的黑色(实心)菱形,结尾处没有箭头:

|--------|        |--------|
| :MyA   |<>------| :MyB   |
|--------|        |--------|

今天我遇到了这样的符号<>----->(右端有一个明确的箭头)。所以我在 UML 2.4 规范中查找,实际上找到了两个版本的参考资料。

我最喜欢的参考:Craig Larman 的《UML 和模式》只提到第一个版本,没有箭头。在 UML 规范中我发现了一个关于通航端,但我不确定这是否相关以及有什么区别?

有人可以更彻底地解释这一点并给出每个版本的使用示例吗?


Any association end can be designated to be "navigable" with the help of a navigability arrow. However, UML's notion of "navigability" does not have a precise meaning and people confused it with the concept of an association end being owned by the class at the other end. This concept of association end ownership by a class means that the association end corresponds to a reference property of that class. This issue has only been clarified in last year's new UML version 2.5, which has introduced a new visual notation for association end ownership, a "dot" as in A composition where the end at the component class is owned by the aggregate class.. This is most likely the intended meaning of what you came across, namely A composition where the end at the component class is "navigable", and what it really means is the following reference property:

enter image description here

更多解释请参阅此tutorial.

Additional answer to the comment: If your class model specifies the ownership of all association ends, and your class diagram displays them, and there is no ownership dot (nor a navigability arrow), as in A plain composition, then, according to UML 2.5, the association end is "owned" by the association itself. Since we do neither have an ownership dot at the MyA end, both ends are "owned" by the composite association. In terms of the code to write/generate, this would mean that the composite association is not implemented by means of reference properties in either MyA or MyB, but has to be implemented with the help of a separate class, say "MyA-has-MyB", which has two reference properties for referencing both the aggregate and the component of any composition link, as in the following class rectangle:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带和不带箭头的 UML 聚合 的相关文章

  • 使用基于关联数组的 UML 建模类型

    假设有一个 PHP 子系统 它仅使用关联数组来存储某种结构化数据 因此 实际上在语言级别上没有机制来约束这些结构 但您希望在设计中使用 UML 来定义它们 E g 在 PHP 中 联系人可能是这样的关联数组 name gt John Doe
  • 如何在 mongodb 中使用构面操作查找字段的不同值

    FilteredAccording 部分和categorizedBy 使用我在链接中提供的查询按预期工作 但我在 findDistinct 部分遇到问题 在 mongodb 中我有以下数据 id 10001 university SPYU
  • 类图转换为关系模型;继承和匹配表

    对于一个学校项目 我应该设计上学期项目的系统 我们使用 UML 创建一个极其简单的用例图 没有 lt
  • 主动类与被动类

    在 UML 规范上层结构 2 5 仍为 Beta 第 203 页 中 可以通过将 isActive 设置为 true 来指定类为活动类 即 它的每个实例都是一个活动对象 当 isActive 为 false 时 类是被动的 即 它的每个实例
  • 如何绘制java uml类图并在另一个类中创建枚举[重复]

    这个问题在这里已经有答案了 假设我有一个类名 A 在这个类中我定义了枚举 Bpublic enum B AA BB CC 现在我想画一个uml来体现这种关系 应该怎么做呢 在类类图中 表示使用 例如
  • 使用聚合 OData 版本 4 对 Apply 的结果执行 OrderBy

    考虑我有一个像这样的 odata 查询 Sessions apply filter SomeColumn eq 1 groupby Application Name aggregate TotalLaunchesCount with sum
  • UML 领域建模

    领域模型和数据模型有什么区别 数据模型是一个design仅描述数据及其关系的模型 该模型包含实体 但它们是根据什么来描述的data他们不负责如何处理这些数据或他们的责任是什么 另一方面 领域模型是用于分析问题领域的概念模型 它用具有关系 数
  • staruml 抽象类?

    有谁知道如何使用 StarUML 创建抽象类 我在文档中找不到任何提及 是否有某种反映抽象类的更一般的概念 从工具箱中选择类并将其添加到画布中 然后转到属性选择 isAbstract 复选框 然后类名显示为斜体
  • 如何在 UML 类图中表示“事件”?

    这是我的代码片段 public class Notation INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged private N
  • 如何使用 js/uml 对 JavaScript 文件进行逆向工程?

    Goal 我的目标是从我的 JavaScript 项目 由多个 js 文件组成 中获取 UML 模型并将其存储为 XMI 我已经走了多远 我在网上搜索了一下 发现js uml是第一个去的地方 我已经设法让 js uml 插件与 Eclips
  • UML三元关联实现java代码[重复]

    这个问题在这里已经有答案了 三元关联是结构关系 指定一个事物的对象连接到其他两个事物的对象 我理解这种关系 但我不知道如何实现显示这三个类之间关联的方法 让我们考虑下面的例子 项目有许多使用特定编程的开发人员 语言促进发展 开发人员使用特定
  • UML - 关联或聚合(简单的代码片段)

    有多少书自相矛盾 真让我抓狂 Class A class B void UseA A a some say this is an association no reference is held but communication is p
  • 有没有办法在 Visual Studio 或 MATLAB 中“映射”程序执行顺序?

    我所说的 地图 是指我有一个 主 函数 它调用内部的许多其他程序 我希望能够看到哪个文件首先运行 第二个 第三个等等 基本上 我希望能够请参阅这个大型 OOP 设计程序 创建者没有为其制作 UML 类图 中的依赖项列表和顺序 以帮助破译代码
  • 如何在 Windows 上使用 Pyreverse

    我想使用pyreverse 创建图表类 我下载它 当我使用这个命令时 pyreverse bat c PyreverseCommand a1 s1 f ALL o png test py 我收到错误 名称 点 无法识别 什么是 点 如何创建
  • 如何表示类的实例与将其作为输入的类之间的关系?

    我有一堂课叫House 这个类的实例是house class House def init self height length self height height self length length def housePlan hou
  • UML 的 XMI 有 XSD 吗?

    是否有 UML XMI 文件的 XSD 标头仅包含名称空间引用
  • 有什么办法可以自动生成UML图吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 MySQL 数据库 我想生成它的关系图 有没有一个工具可以连接到数据库并自动为我生成它 是的
  • Android Studio 上的代码 Iris 插件

    我正在尝试使代码 iris 插件在 Android studio 上工作 我按右键单击 gt 创建代码虹膜图 然后我收到一条通知 表明我的图表已准备就绪 但我不知道该图何时存储 创建的文件的名称是什么以及如何打开它 有任何想法吗 CODE
  • 创建UML图时应该编写构造函数吗?

    我有一项作业要求我为实际的 Java 程序创建 UML 图 但程序中有几个构造函数方法 我很困惑 我是否应该将这些构造函数方法添加到图中 根据 UML 规范 2 5 版第 11 4 4 节 构造函数是一个具有所属类类型的单个返回结果参数的操
  • UML 只能用于面向对象吗?

    目前 在我的论文期间 存在着关于 UML 是否仅用于 OO 开发 的激烈争论 我从一些来源进行了搜索 其中给出了很多关于它的论点 就我自己而言 我相信并非所有 UML 图都是专门为 OO 系统 软件开发而制作的 即 状态图 因此 我希望得到

随机推荐

  • 需要以编程方式打开蓝牙并发现 Android 中的设备

    我需要通过我的代码打开蓝牙 而不要求用户启用它 然后发现范围内的所有设备并返回这些设备 然后关闭蓝牙连接 怎么做 我想这正是您所需要的 https developer android com guide topics connectivit
  • 如何使用 jQuery 删除 cookie?

    我想用jQuery删除cookie 我已经尝试过这个 cookie name expires 1 但是当我刷新页面时 cookie仍然存在 alert name cookie name Why 要使用 JQuery 删除 cookie 请将
  • Android 浏览器能够执行 xsl 转换吗?

    我有一个 xml 文件 我希望使用 xsl 文档进行转换 但我似乎无法使其在最新的可用 Android 版本上工作 我尝试添加一个
  • 无法使用 C# HttpClient 获取任何 cookie

    我正在尝试使用 C 和 HttpClient 类在 Spotify 登录页面上获取 cookie 然而 当我知道正在设置 cookie 时 CookieContainer 始终为空 我没有发送任何标头 但它仍然应该给我 cookie 因为当
  • 如何将对象传递给 Scala 中的方法

    如何将对象的引用传递给 Scala 中的方法 例如 我想要这个编译 object Constants val constantA Double def calc numbers Seq Double Constants does not c
  • 屏蔽 QLineEdit 文本

    我在用PyQt4 QLineEdit小部件接受密码 有一个setMasking属性 但不遵循如何设置掩码字符 editor QLineEdit editor setEchoMode QLineEdit Password
  • 如何在 iOS 中更改 cordova-camera-plugin 语言?

    我想改变cordova camera plugin语言 显然 它取决于多种因素 我的开发环境是 Visual Studio 2015 中的 Tools for Cordova 这不太重要 但我在我的应用程序中使用 Ionic 框架 我们在运
  • 粗体标题边框

    我尝试做 UIManager getDefaults put TitledBorder font Font BOLD contentPanel setBorder new TitledBorder Client Downloader 但这并
  • 在另一个 div 上使用滚轮时滚动一个 div [重复]

    这个问题在这里已经有答案了 假设我有 2 个并排的 div 两者都是 400px x 400px 并且溢出设置为自动 里面的内容高度超过400px所以有垂直滚动条 当鼠标悬停在左侧的 div 上并且用户使用鼠标滚轮滚动时 我希望另一个 di
  • 如何在shell中获取SVN头版本号?

    我在命令行中使用 svn 如何在命令行中获取头版本号 我需要这个号码 不仅仅是为了查看信息 我想用这个数字来自动构建我的项目 正如下面的评论提到的 这可以通过在较新的 SVN 客户端中使用以下命令来实现 svn info rHEAD sho
  • UIButton 在 iOS7 中点击时不显示突出显示

    我看过大量有关类似事物的帖子 但没有一个完全匹配或解决这个问题 从 iOS 7 开始 每当我添加UIButton to a UITableViewCell或者甚至对于页脚视图来说 它工作得 很好 这意味着它接收到目标操作 但它不会显示当您点
  • 如何在 Perl 中对 HTTP GET 查询字符串进行编码?

    这个问题有点相关在 Perl 中发出 HTTP GET 请求的最简单方法是什么 在通过以下方式提出请求之前LWP Simple我有一个需要序列化 转义的查询字符串组件的哈希值 对查询字符串进行编码的最佳方法是什么 它应该考虑空格以及有效 U
  • 在 GCC 中指定代码的节名称

    我知道 GCC 让你使用 attribute section mysection 函数定义指定将代码放入哪个部分 我有一堆代码需要放入特定部分 并且必须用它来装饰每个函数是相当乏味的 有没有办法在命令行上全局指定代码放置在哪个部分的同时编译
  • 如何指定AddIn进程名称?

    我正在使用 Microsoft AddIn Framework 加载 AddIn 程序集 我在自己的进程中运行它们 以便将它们与服务分开 我不喜欢每个 AddIn 进程在任务管理器中显示为 AddInProcess32 exe 使用进程隔离
  • git - 如何从我当前的提交中删除太大的文件[重复]

    这个问题在这里已经有答案了 当我执行以下操作时 git add git commit m msg git push origin develop 我收到以下错误 Counting objects 25 done Delta compress
  • 在node/express + ejs中将对象传递给客户端?

    我有一个相当大的对象 需要将其传递给客户端脚本中的函数 我尝试过使用 JSON stringify 但这种方法遇到了一些问题 主要与性能相关 在ejs中可以做这样的事情吗 app get load function req res var
  • C++挂钩到不同的应用程序,如何从进程ID中查找线程ID?

    我想向应用程序添加一个钩子 我在用SetWindowsHookEx我可以创建一个系统范围的挂钩 但我想为特定应用程序创建一个挂钩 我需要目标应用程序的线程 ID 才能挂钩它 我知道窗口的标题 我知道 exe 名称 从这些我可以获取窗口句柄和
  • 如何在Python中使用不带0x的hex()?

    The hex python中的函数 放置前导字符0x在号码前面 有没有办法告诉它不要放它们 所以0xfa230将fa230 代码是 import fileinput f open hexa w for line in fileinput
  • SQLite 长到宽格式?

    我想知道是否有一种规范的方法可以在 SQLite 中将数据从长格式转换为宽格式 该操作通常在关系数据库领域吗 我试着跟随这个例子对于 MySQL 但我猜 SQLite 没有相同的 IF 结构 谢谢 IF是一个非标准的 MySQL 扩展 最好
  • 带和不带箭头的 UML 聚合

    我一直认为 UML 聚合被定义为路径开头的黑色 实心 菱形 结尾处没有箭头 MyA lt gt MyB 今天我遇到了这样的符号 lt gt gt 右端有一个明确的箭头 所以我在 UML 2 4 规范中查找 实际上找到了两个版本的参考资料 我