uml - 证明给定 UML 图没有实例
问题描述
鉴于右上角的图表,我应该决定是否有任何有效的实例。现在给定的图像是一个反例('wegen' 的意思是'因为')。反证明使用对象的基数('Mächtigkeit')。
我不明白,为什么例如 2*|A| 等于 |C|,就像在 UML 中一样,A 将与 C 的 2 个对象(rel1)相关。因此,对于每个 A 必须有 2 个 C 才能创建一个有效的实例。2*|A| = |C| 因此应该是 |A| = 2*|C|。
为什么反过来呢?
解决方案
2*|A| = |C|
因为与每个对象有两个关联的C
对象相比,对象的数量增加了一倍。A
A
C
|A| = |B|
因为他们有1-1的关系3*|C| = 2*|B|
因为每个C
有 3 个B
,每个B
有 2 个C
- (4) 和 (5) 只是最后一个矛盾的替换
qed
PS 正如@ShiDoiSi 指出的那样{unique}
,多重性没有限制。这将使同一个实例有多个关联成为可能。因此,您有 1-1 的关系。因此,在这种情况下,您实际上可以拥有模型的有效实例化。
现在去告诉你的老师xD
推荐阅读
- c++ - CreateFile() 方法返回 ERROR_NOACCESS 错误
- python - 具有重复输入的神经网络 - Keras
- java - 如何在运行时使用字节伙伴有效地将接口与 POJO 关联?
- openthread - 我如何为线程领导角色构建 openthread 堆栈?
- r - 在ggplot中的意大利面条图中添加平均值和标准差
- node.js - 如何通过 req.params.id 检索解析服务器的 objectId
- c++ - C ++如何在外部类中声明的内部类中使用变量
- rust - 如何指定默认情况下在 Cargo 工作区的根目录中运行哪个 crate `cargo run`?
- python-3.x - 在 pool.map_async() 检查返回的孩子的数据
- javascript - 即时将凭据更改为代理服务器