UML类图多重性

问题描述 投票:0回答:2

我对UML类图多重性感到困惑。要问我的问题,首先我需要给你一个例子。考虑以下要求:“各节应有许多主题。”我可以使Section和Topic的类具有以下多样性:

示例1)Example 1

以上关系可以理解为:“ 一个或多个部分包含许多主题”。

但是也要考虑这种设计:

示例2)Example 2上面的关系可以理解为“一个部分有很多主题,而一个主题只有一个部分。”

问题1是:什么是正确的设计?

因为对我来说,我认为示例2的设计是正确的,因为在那个特定时间我只考虑一个实例。但是在示例1中,他们认为Section类是一个很高的视图! (当然,我可以使任何类的实例数量无穷大...)

问题2是:在示例2中,我们是否说整个系统中仅存在one节,这就是为什么我们像示例1那样编写它?同样在示例1中,此关系是“多对多”,因此我们需要创建一个关联类来对其进行处理。

希望您能理解我的困惑,在此先感谢:D

class uml diagram multiplicity
2个回答
0
投票

Q1:实际上,这取决于要求。正如在不同方面所讨论的,Topic可能出现在许多Section中。如果您要求一个主题必须完全涵盖一个主题,那么您的第二种方法将是正确的。无论如何,我认为第一种是更常见的处事方式。

Q2:否。您只能说Topic只能有一个Section。告诉我们只有一个部分允许您可能需要一个约束。 (我出于这种目的使用了<<singleton>>原型,但这不是UML标准。)

BTW:您在ex。 2是错的。左边必须只有1..*,右边只有一个1


0
投票

在示例1中,有两个独立的语句:

Every的节实例可以具有任意数量的主题和

主题的[[

每个]]实例必须至少包含一个部分。我不知道这是否是您的意思。PS:以实心菱形表示的成分表示排他性。因此,多重性最大为1,而不是1 .. *。

不需要关联类。多对多关系只是正常的协会。

© www.soinside.com 2019 - 2024. All rights reserved.