Uml 谁是关系的主人?

Uml 谁是关系的主人?,uml,Uml,根据UML规范,每个元素可以有一个所有者。他是否拥有/必须拥有所有者由方法mustBeOwned():Boolean确定,该方法默认为true(请参阅中的7.8分类器描述) 当一个元素被它的所有者(比如包中的一个类)完全封闭时,这是很明显的 然而,对于关系(普通、定向、泛化等),我没有找到任何规范。“来源”(至少针对定向)也是所有者吗 它是所有权链中的第一个普通所有者吗?例如,同一个包中两个类之间的关联,关联的所有者就是包 或者它只是没有定义,可以是我想要的任何东西 老实说,上层建筑中术语的定义

根据UML规范,每个
元素可以有一个所有者。他是否拥有/必须拥有所有者由方法
mustBeOwned():Boolean
确定,该方法默认为
true
(请参阅中的7.8分类器描述)

当一个元素被它的所有者(比如包中的一个类)完全封闭时,这是很明显的

然而,对于关系(普通、定向、泛化等),我没有找到任何规范。“来源”(至少针对定向)也是所有者吗

它是所有权链中的第一个普通所有者吗?例如,同一个包中两个类之间的关联,关联的所有者就是包

或者它只是没有定义,可以是我想要的任何东西


老实说,上层建筑中术语的定义仍然很差

仔细看,情况更糟(引用ptc 13-09-05)

关系(第15页)

关系是指定其他元素之间某种关系的元素。关系的后代提供适合于它们所表示的概念的语义

连接器(第235页)

连接器指定启用两个或多个实例之间通信的链接。与关联不同,关联指定关联分类器的任何实例之间的链接,连接器指定仅播放连接部分的实例之间的链接

我不知道它们对两者都有影响。看起来很挑剔

协会(第206页)

关联对表示类型化实例之间链接的一组元组进行分类。AssociationClass既是关联也是类

未提及作为父母的
关系

现在寻找
所有者的真相

所有者(第37页)

/所有者:元素[0..1]{union}(对立元素::ownedElement)拥有此元素的元素

必须拥有(有点低)

mustBeOwned():布尔值 查询mustBeOwned()指示此类型的元素是否必须具有所有者。不需要所有者的元素子类必须重写此操作

所以这里一个被卡住了,除非读到

协会(第209页)

关联分类器对关联端点的所有权可以用一个小的填充圆以图形方式表示,为简洁起见,我们将其称为点。将点绘制为线的图形路径的一部分,在其与分类器相交的点处,插入线的末端和表示分类器的节点的侧面之间。圆点的直径不得超过聚集菱形高度的一半,且应大于线条的宽度。这避免了填充菱形符号的视觉混淆,同时确保可以将其与线条区分开来。点表示模型包含由点所接触的分类器表示的类型的属性。此属性由另一端的分类器拥有。在这种情况下,从所属分类器的属性隔室中抑制属性是正常的

回答?
最有可能的(!)连接器没有
mustBeOwned
约束,在这种情况下,您将看到2.5引入的点。在我看来,这种关系通常不属于它所连接的元素。所拥有的是关联(关系)端和相应的属性/属性。第6.4.2节。UML规范2.4.1的版本比链接的2.5测试版更好地阐明了这一点。我建议您使用当前官方版本的规范,而不是beta版。我觉得2.5有点难以理解,目录看起来很混乱

关系本身独立存在,没有所有者。除非具体关系类型另有规定(如一般情况)

这就引出了我回答问题的要点。你为什么要知道

多年来,我一直在阅读和解释规范,但从未遇到过这样一个具体的问题,而且在规范中也有相对明确的说明


我建议查看具体关系并搜索(Ctrl+F)以查找“拥有的”(从2.4.1中的第40页开始,一个关联在这个主题上有超过一页的详细文本)。

我自己一直在尝试找出什么可以拥有一个关联实例。我使用的是2.4.1。在我看来,这是标准实际上不可用的另一种情况

我还没有看过所有的关系专业。我看了一下联想。它从元素继承所有者。该属性被标记为派生并集。我找不到关联的任何属性(或其任何先行项)作为所有者的子集。在这种情况下,我不明白协会怎么会有一个所有者

我认为一个包裹拥有一个协会似乎是合理的

我正在使用一个UML工具,它肯定会初始化关联所有者的值。我以编程方式解释在该工具中创建的模型,并将它们用作我正在使用的其他建模工具的输入。显然,第一个工具的制作者必须对事情进行虚构/猜测,现在我必须决定他们所做的是否真正合理,以及我是否同意他们的结论(这恰好允许分类器拥有关联,我认为这很奇怪),或者做些其他事情。谢谢你,天哪。Grrrr


我想知道规范的旧版本是否更清晰?

通常,包拥有关联,通常,包拥有关联和泛化。我相信你要问的规则是