【问题标题】:In a UML Object Diagram how to represent relationships through lists/collections?在 UML 对象图中如何通过列表/集合来表示关系?
【发布时间】:2013-10-10 14:13:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: uml object-diagram


    【解决方案1】:

    其实你应该先确定你的类图。对象图自然会派生出来。

    我会这样表示类图:

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

    当然,如果您对图表进行分类,而只是公开一个属性months : List,答案会有所不同。但是好像不太合适。

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

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

    编辑:

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

    【讨论】:

    • 嗯,我不关心说明这是一个具体的列表,而是他们在集合中而不是单个字段。我认为这一区别很重要(我的实际情况是权限和角色不是几个月,而是相同的结构)。
    • 如果您想完全清楚区分,您可以将每个月实例的箭头提示命名为months,从而说明所有实例对应一个唯一的相同months 字段。在另一种情况下,它们将被命名为 month1month2、...。同样,您也可以在类图中命名箭头。
    • 想要将其添加到您的答案中,我会接受吗? (我喜欢完整的答案,无需通过 cmets 进行挖掘)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2011-02-11
    • 2017-03-18
    相关资源
    最近更新 更多