【问题标题】:Aggregation multiplicity UML聚合多重性 UML
【发布时间】:2012-12-05 18:52:25
【问题描述】:

我和我的同事无法就某一点达成一致。在 UML 中,当进行聚合时,菱形边的重数是否最大为 1,还是可以为 0..*?还是取决于观点?
提前谢谢你!

【问题讨论】:

    标签: uml aggregation multiplicity


    【解决方案1】:

    首先,您需要具体说明聚合中的空钻石和填充钻石是组合中的哪个“钻石”?

    如果您的意思是空钻石,那么 Icepack 是正确的,您混淆了 2 个不同的东西。 MultiplicityAggregation 无关,因此“菱形”aggregation 指标可以具有您喜欢的任何 multiplicity是无关的。

    如果您的意思是填充钻石,即 composition,那么某人发布的示例不会真正帮助您,因为它说:“有很多部门,但 only 1 University (multiplicity em>)”并且“如果所有部门都被删除,那么大学也会被删除(composition)”。

    我正在努力想一个很好的例子,其中 composition 结尾不会是 1 only 并且据我所知它永远不会是 0..* 因为你可以有一个类必须删除可能永远不存在的东西?但是我可以是1..*,即多对多,例如考试和考试问题。

    多重性可能是1..*1..* 即考试有1 or more 问题,一个问题可以驻留在1 or more 考试中。考试结束时填充菱形(作文)意味着如果所有问题都被删除,那么所有考试也将被删除

    【讨论】:

      【解决方案2】:

      是的,它可以是 0..*。有一个很好的例子here:系有几个教授,每个教授可能同时属于几个系。

      【讨论】:

      • @sfinnie 欢迎您使用任何您喜欢的方式来表示这种关系。我不知道有什么更好的方法
      • 它是一个直接的二进制文件。空心菱形不会告诉您任何直接二进制文件不会告诉您的信息。这只是视觉噪音。
      • 但不要相信我的话:阅读这个问题 (stackoverflow.com/questions/9640885/…) 看看 UML 合著者 Jim Rumbaugh 对此有何评论。
      • 看不出任何矛盾。聚合添加细节。由您决定是否需要这些详细信息。此外,聚合不是这里的问题,而是关系中特定方面的多样性。简单关联的答案是一样的
      • 没说有矛盾。我说有混乱。提出原始问题的事实证明了这一点。我的观点是,按照目前的定义,UML 聚合很少是一个有用的概念。至于添加“细节”,取决于你所说的“细节”。它添加的唯一明确定义的语义是递归非循环性。否则它不会说 anything 直接二进制不会。很少有人知道无环属性。因此,无论如何您都必须明确指出。 [ctd]
      猜你喜欢
      • 2016-06-27
      • 2018-04-23
      • 1970-01-01
      • 2016-07-22
      • 2014-08-05
      • 1970-01-01
      • 2012-03-27
      • 2014-08-09
      相关资源
      最近更新 更多