0

如何使用 Eclipse 的 ObjectAid UML 插件在 UML 图中描绘“地图”集合?

例子:

Class MyDatabase {
   Map<Integer, Person> db;
}

该地图使用 Integer 作为键元素,使用 Person 对象作为值。但是当我使用 ObjectAid 生成 UML 图时,我只是得到了 MyDatabase 类和 Person 类,它们通过箭头链接。这看起来像是 Person 类型的简单属性,而不是地图。

我知道 UML 与实现细节无关,但我想描述这种关系(将映射作为属性)。想法?

4

1 回答 1

1

ObjectAid 实际上做得几乎很好。:)

地图是一种集合。集合在 UML 中使用与对应的端点 0..n、1..n、2..10 或类似端点的关联进行建模。它们可以进一步标记为“有序”(例如 Vector)或“允许重复”,以涵盖不同语言的所有不同类型的集合。

回到您的示例...为了对 Map 建模,有一个称为qualifier的 UML 概念。UML 规范的摘录:

合格的关联端具有划分与该端的实例相关联的实例的限定符,即合格的实例。每个分区由一个限定符值指定,它是一个元组,每个限定符包含一个值。关联另一端的多重性决定了每个分区中的实例数。因此,例如,0..1 表示每个限定符值最多有一个实例。如果下限非零,则限定符值必须是有限集,例如因为限定符是由枚举类型的。

更多信息请参考 UML 规范。

这就是它的样子。此图完全反映了您的代码(甚至集合名称也在那里,建模为关联的结束名称):

在此处输入图像描述

于 2014-04-25T12:44:31.887 回答