0

如果我在一个类的UML 对象图(也称为“实例图”)中建模,Year该类的字段是一个Months 列表,我是否也应该为实例显式创建一个框List?对我来说,似乎如果我直接画线将 的实例连接Year到 12 个Month实例,那么我希望在Yearlike month1month2等上看到 12 个字段。

如果确实将它们直接连接,那么您如何在图表中明确表示关系不是直接的,而是通过列表?还是这个图表更具概念性,这些关系的确切性质模棱两可?

tl;dr:在 UML 对象图中,列表之类的集合是否有自己的框,通过这些框连接您的模型?如果不是,如何表示?

4

1 回答 1

3

其实你应该先确定你的类图。然后将自然地导出对象图。

我会以这种方式表示类图:

图1

对于这个类图,您自己对对象图的说法是正确的(画线将 Year 的实例连接到 12 Month 实例),因为每条连接线本身就是类图中箭头的实例。(在 UML 术语中,链接是关联的一个实例)

图2

当然,如果你的类图只是公开一个属性months : List,答案会有所不同。但是好像不太合适。

注意1:你在我的类图中看到没有暗示它实际上是一个列表。这是因为在我看来它只是一个实现细节。例如,它也可以是一个数组,但重点是多重性 12,这意味着它是一个多重值。

注2:不用担心你说的ckass年有12个字段,事实并非如此。在对象图中,字段值直接在类实例中表示,就像类图中的属性一样

编辑:

如果您想完全清楚区分,您可以months为每个月实例命名箭头提示,从而说明所有实例都对应于一个唯一的相同月份字段。在另一种情况下,它们将被命名为month1, month2, ...。同样,您也可以在类图中命名箭头。

于 2013-10-10T22:38:13.753 回答