首页 > 解决方案 > 证明给定 UML 图没有实例

问题描述

鉴于右上角的图表,我应该决定是否有任何有效的实例。现在给定的图像是一个反例('wegen' 的意思是'因为')。反证明使用对象的基数('Mächtigkeit')。

我不明白,为什么例如 2*|A| 等于 |C|,就像在 UML 中一样,A 将与 C 的 2 个对象(rel1)相关。因此,对于每个 A 必须有 2 个 C 才能创建一个有效的实例。2*|A| = |C| 因此应该是 |A| = 2*|C|。

为什么反过来呢?

在此处输入图像描述

标签: umlproofcardinality

解决方案


  • 2*|A| = |C|因为与每个对象有两个关联的C对象相比,对象的数量增加了一倍。AAC
  • |A| = |B|因为他们有1-1的关系
  • 3*|C| = 2*|B|因为每个C有 3 个B,每个B有 2 个C
  • (4) 和 (5) 只是最后一个矛盾的替换

qed

PS 正如@ShiDoiSi 指出的那样{unique},多重性没有限制。这将使同一个实例有多个关联成为可能。因此,您有 1-1 的关系。因此,在这种情况下,您实际上可以拥有模型的有效实例化。

现在去告诉你的老师xD


推荐阅读