到目前为止,这些是所做的假设,如果这些假设是错误的,请更正这些假设。
- 一座山可以有 0 到多个分类(不确定是否相反)
- 0 到许多山脉有 0 到许多路线
- 一条路线有 0 到多方
- 0 到许多派对有 1..6 个步行者(不太了解这个)
- 0 到多方有指南
- 指南可以有 0 到多个资格(看起来很奇怪)
到目前为止,这些是所做的假设,如果这些假设是错误的,请更正这些假设。
首先,让我明确一点,此图显示的是类,而不是实例。其次,该图缺少一些关联端名称、多重性和可导航性。第三,你的一些子弹是向后的。您是否偶然尝试顺时针读取关联结束?(有一些符号,或者至少是有人这样做,这不是一个好主意。)
我刚刚扫描了 UML 规范以提醒自己未指定关联端多重性的默认值是什么,但我找不到它。我想我记得它是 [1..1],但自从我在与 OMG 的一位 XMI 专家的随意交谈中偶然发现该信息以来已经有好几年了。这是始终指定它是什么的一个很好的理由!属性的默认值为 [1..1],因此关联结束默认值可能相同。
多重性和关联端名称属于其属性类型旁边,因此,例如,您的项目符号:
- 一座山可以有 0 到多个分类(不确定是否相反)
应该是:“一个分类可以分类许多山脉”或“一个山脉被一个分类分类”。如果图表显示您无法从分类导航到山(或使用新的“点表示法”来显示分类不拥有山类型的属性),则会更清楚。
你的子弹:
- 0 到多方有 1..6 步行者
也是不正确的。每行应该只描述一个方向,而不是两个方向。该项目符号应拆分为“一个派对包含 1 到 6 个步行者”和“一个步行者可以参加多个派对”。这两行更有意义。
我不会为你纠正所有的问题。希望你能明白要点。
我看到你的解释有两个问题:
UML
应该有助于理解,而不是混淆。X [m..n]---[k..l] Y
将被解读为:X使用/地址/利用/依赖/等。在 k..l Y 上
Y使用/地址/利用/依赖/等。在 m..n X 上
我会将您的图表翻译成以下陈述: