-1

我对 UML 类图的多样性感到困惑。要问我的问题,首先我需要给你一个情况的例子;考虑一下这个要求:“章节应该有很多主题。” 我可以使用它们的多样性为 Section 和 Topic 创建类,如下所示:

示例 1) 示例 1

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

但也考虑这种设计:

例 2) 示例 2 上述关系可以理解为“一个部分有很多主题,一个主题只在一个部分中”。

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

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

问题2 :在例2中,我们是不是说整个系统中只有一个Section,所以我们写成例1那样?同样在示例 1 中,这种关系是多对多的,所以我们需要创建一个关联类来处理它。

我希望你能理解我的困惑,提前谢谢:D

4

2 回答 2

1

Q1:实际上这取决于要求。ATopic可以出现在许多Sections 中,因为在不同方面进行了讨论。如果您要求一个主题必须在一个部分中完全涵盖,那么您的第二种方法是正确的。无论如何,我认为第一种是更常见的做事方式。

Q2:没有。你只说 aTopic可以只有一个Section。要告诉您只允许一个部分,您可能需要一个约束。(不过,我<<singleton>>为此目的使用了一个原型,它不是 UML 标准。)

顺便说一句:你在前的多样性。2错了。左边你必须只有1..*一个,右边只有一个1

于 2019-12-28T14:51:32.250 回答
0

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

一个部分的每个实例都可以有任意数量的主题,并且

主题的每个实例必须至少有一个部分。我不知道这是否是你的意思。

PS:由实心菱形显示的构图意味着排他性。因此,多重性最多可以是 1,而不是 1..*。

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

于 2020-01-01T03:20:37.197 回答