证明给定的 UML 图没有实例
Proof there is no instance for a given UML-Diagram
鉴于右上角的图表,我应该决定它是否有任何有效实例。现在给定的图像是一个反例('wegen' 表示 'because of')。反证明使用对象的基数 ('Mächtigkeit')。
我不明白,为什么例如2*|A|等于 |C|,在 UML 中,A 将与 C (rel1) 的 2 个对象相关。所以对于每个 A 必须有 2 C 才能成为一个有效的实例。 2*|一个| = |C|因此应该是|A| = 2*|C|.
为什么是相反的?
2*|A| = |C|
因为 C
对象的数量是 A
的两倍,因为每个 A
有两个 C
关联。
|A| = |B|
因为他们是一对一的关系
3*|C| = 2*|B|
因为每个 C
有 3 个 B
而每个 B
有 2 个 C
- (4) 和 (5) 只是替换,其中最后一个给出矛盾
q.e.d
P.S。正如@ShiDoiSi 指出的那样,多重性中没有 {unique}
约束。这将使同一个实例有多个关联成为可能。因此,您有 1-1 关系。因此,在这种情况下,您实际上 CAN 具有模型的有效实例化。
现在去告诉你的老师 xD
鉴于右上角的图表,我应该决定它是否有任何有效实例。现在给定的图像是一个反例('wegen' 表示 'because of')。反证明使用对象的基数 ('Mächtigkeit')。
我不明白,为什么例如2*|A|等于 |C|,在 UML 中,A 将与 C (rel1) 的 2 个对象相关。所以对于每个 A 必须有 2 C 才能成为一个有效的实例。 2*|一个| = |C|因此应该是|A| = 2*|C|.
为什么是相反的?
2*|A| = |C|
因为C
对象的数量是A
的两倍,因为每个A
有两个C
关联。|A| = |B|
因为他们是一对一的关系3*|C| = 2*|B|
因为每个C
有 3 个B
而每个B
有 2 个C
- (4) 和 (5) 只是替换,其中最后一个给出矛盾
q.e.d
P.S。正如@ShiDoiSi 指出的那样,多重性中没有 {unique}
约束。这将使同一个实例有多个关联成为可能。因此,您有 1-1 关系。因此,在这种情况下,您实际上 CAN 具有模型的有效实例化。
现在去告诉你的老师 xD