【问题标题】:I cant find the fault in this UML Class diagram我在这个 UML 类图中找不到错误
【发布时间】:2021-02-15 22:18:29
【问题描述】:

这个 UML 图只有一个错误,但我不确定它是什么。
我的猜测是B 不能成为A 的一部分,因为它是C 的超类。

有人有解决办法吗?

【问题讨论】:

  • 嘿,是的,我想我可以看到这个问题。我会问一个问题来回答——黑色菱形代表什么?
  • 哦,好吧,Christope 和 Geert 还是回答了!他们的答案在我看来是正确的。

标签: inheritance uml composition class-diagram


【解决方案1】:

如果 C 是 B 的特化,它也继承了它的关联。这意味着 C 的任何实例除了是 D 实例的组件之外,还是 A 实例的组件(因为 1..1 的多重性):这与需要独占所有权的 UML 组合相矛盾.

例如,您可以通过删除继承、将角色 A 旁边的多重性更改为 0..1 或使用聚合而不是 A 侧的组合来获得有效的图表。

【讨论】:

    【解决方案2】:

    一个元素只能在一个组合中扮演“部分”角色。 C 具有对A 的继承组合,D 的组合

    这两种组合都是强制性的(多重性 = 1),因此不能存在有效的 C

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 2021-06-02
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      相关资源
      最近更新 更多