这个UML实例的细节是什么?

时间:2013-07-26 10:27:17

标签: uml diagram class-diagram

UML

到目前为止,这些都是假设,如果错误,请纠正这些假设。

  • 一个山可以有0到很多分类(不确定它是否是相反的)
  • 0到多山有0到多条路线
  • 路线有0到多个派对
  • 0到很多派对有1..6个步行者(不太明白这个)
  • 0到很多缔约方都有指南
  • 指南可以有0到多个资格(似乎很奇怪)

2 个答案:

答案 0 :(得分:2)

首先,让我明确表示此图表显示的是类,而不是实例。其次,该图缺少一些关联端名称,多重性和导航性。第三,你的一些子弹是倒退的。您是否偶然尝试顺时针读取关联结束? (有一些符号,或至少是人,这样做,这不是一个好主意。)

我刚刚扫描了UML规范,提醒自己一个未指定的关联端多重性的默认值是什么,我找不到它。我想想我记得它是[1..1],但是在我与OMG的一位XMI专家的一次随意对话中发现这些信息已经有好几年了。这是一个很好的理由,总是指明它是什么!属性的默认值为[1..1],因此关联结束默认值可能相同。

多重性和关联结束名称属于其属性的类型,例如,您的子弹:

  
      
  • 一个山可以有0到很多分类(不确定它是否是相反的)
  •   

应该是:“分类可以分类许多山脉”或“山脉按一个分类分类”。如果图表显示您无法从分类导航到山(或使用新的“点符号”来表明分类不拥有Mountain类型的属性),那将更清楚。

你的子弹:

  
      
  • 0到很多派对有1..6名步行者
  •   

也不正确。每条线只应描述一个方向,而不是两个方向。该子弹应分为“一方包括1至6名步行者”和“步行者可参加多个党派”。这两行更有意义。

我不会为你纠正所有的子弹。希望你能得到主旨。

答案 1 :(得分:1)

我看到你的解释有两个问题:

  1. 您以过于直接的方式解释多重性。请记住,UML应该有助于理解,而不是混淆。
  2. 你的解释有几个错误。一般来说,双向关系可以转换为一个或两个合理的陈述:X [m..n]---[k..l] Y将如下所示:
  3.   

    X使用/ addresses / utilization / depends / etc.在k..l Y's

         

    Y使用/ addresses / utilization / depends / etc.在m..n X's

    我会将您的图表翻译成以下语句:

    • 分类可以适用于任意数量的山脉,每座山都有资格
    • 一条山可以穿过任意数量的路线,路线可以通过任意数量的山脉
    • 路线可以由多方旅行,每一方都可以沿着特定的单一路线行驶
    • 派对由1至6名步行者组成,步行者可参加任意数量的派对
    • 派对与指南相关联,指南可以负责多方
    • 资格证书可以适用于任意数量的指南,每个指南都有一个资格