【问题标题】:Wrong cardinality in UML class diagramUML 类图中的错误基数
【发布时间】:2016-09-04 02:34:27
【问题描述】:

我的学校老师和我正在争论如何将正确的基数写入两个类之间的关系:

    Customer ----places->---- Order

所以练习告诉我,一位客户有 0 - x 个订单,而一个订单始终属于一位特定客户。所以我的想法是:

    Customer -1---places->---*- Order

我的老师解决方案:

    Customer -1..*---places->---*- Order

那么,你怎么看?我希望,我是对的:)

【问题讨论】:

  • 老师的解决方案已经过编辑,与原来的问题有很大不同。提问的初衷是不是已经丢失了?!
  • 欢迎来到 StackOverflow,@alanb。如果您找到了问题的答案,请考虑accepting it(通过单击复选标记),并考虑对其进行投票(通过单击向上箭头)。接受答案向更广泛的社区表明您找到了解决方案,给自己一些声誉积分,并给回答您问题的人一些声誉积分。如果您的问题没有找到满意的答案,请发表评论。

标签: uml multiplicity


【解决方案1】:

第一个是正确的。 0..*,或简称 *,位于 Order 类旁边。 1..1 或简称 1,位于 Customer 类旁边。

您确定您的老师指定了 UML 吗?

【讨论】:

  • 在“正常”业务中我会同意。但是在不知道领域的情况下,答案是未知的。可能有一个企业,您的一个订单有很多客户。
  • 我认为问题是把多重性放在哪里。
  • 是的。但是如果你有几个人下一个订单,老师可能是对的。不寻常,但可能。
  • OP 告诉我们,“一个客户有 0 - x 个订单,一个订单始终属于一个特定客户”。
  • 感谢大家的回答。现在我知道我走对了:)
【解决方案2】:

是对的。

您所描述的 1:n 关系表明,1 个客户下了 0..n 个订单。可能有没有订单的客户,但如果有订单,就有一个客户。一份订单必须有 1 位且只有 1 位客户。这对我来说完全有道理。

1..n:?解决方案在各个方面都被打破了。首先,Order 方没有基数。但是规范没有定义默认值。当然,图不必包含基数,但图也只是模型上的视图。如果您将基数排除在外而不在其他地方提及它是未定义。此外,1..n 基数表明,订单已由 1 个或多个客户下达。假设练习涉及一些现实世界的问题,这对我来说似乎完全没有意义。

【讨论】:

  • 感谢您的回答!现在我知道我走对了:)
猜你喜欢
  • 1970-01-01
  • 2016-12-25
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
相关资源
最近更新 更多