在UML中,组合是否意味着关联类?

问题描述 投票:1回答:3

在UML图中,一个类由另一个类组成,是否存在隐式关联表,还是需要显示?

例如,如果我有章节组成的章节,这就足够了:

或者关联类是否明确显示如下:

我从来没有像后一个例子那样看过它,所以我假设它是隐含的。或者我可能没有正确地对数据进行规范化(考虑到章节都出现在章节类和段落类中)。

uml normalization composition
3个回答
2
投票

简单来说,没有任何含义。如果需要关联类,则需要定义它。然而,UML不是关于绘图,而是关于建模。如果需要,可以在图表中省略关联类。但是,关联类仍将存在于您的模型中。


2
投票

不,这并不暗示。

你没有看到这个的原因是在大多数情况下它根本没有意义。在关联类中,类部分还描述了关联的属性。在您的示例中,您创建了一个实际带来很少或根本没有的人造对象。这种方法对于组合不可能的多对多关系是有用的(每个部分最多可以有一个整体)。即使你想显示外键,它也只是在其中一个类上。但这是协会本身暗示的。根据UML规范,内联属性等同于关联。

此外,在UML上,您可以简单地描述多对多关系,但在关联端应用适当的多重性。您可能希望仅在代码级别进行建模时显示描述该类的类。


1
投票

不,这并不暗示。

UML不是关于表,而是关于类。类图的作者应该告诉观众应该如何解释一个类。一些UML图表模拟现实世界,其他UML图表模拟一个应用程序功能,而其他UML图表描述物理实现。

显然,在阅读您的问题时,您正在为关系数据库建模,其中类是物理表。在这种情况下,我希望每个表都明确地建模为UML类。

UML标准不要求这样做。

顺便说一句,符号(PK)和(FK)不符合UML标准。

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