0

这有意义吗?

1) Car * -------(listeningTo)-------1 Radio Station
2) Car * -------(couldTuneInto)-----1 Radio Station

在为我的项目创建类图时,我遇到了上述问题。我的印象是,总的来说,上述方法必须双向工作。因此,每当您测试它是否有意义时,您都会检查:“一辆汽车正在收听 1 个广播电台”。(正确且有道理)。另一方面,我会测试它:“一个广播电台被许多汽车收听。” (这有意义吗?)

第二个也是一样。

我的问题是我是否正确设置了多重性以及它是否有意义。

谢谢,

4

1 回答 1

3

我认为您的模型没有多大意义,但在我解释细节之前,让我介绍一个我认为更准确地代表您的领域的替代模型:

  1. "Car" [0..*] --- <listeningTo> --- [0..1] "Radio Station"

  2. "Car" [0..*] --- <couldTuneInto> --- [0..*] "Radio Station"

Association #1非常接近同一件事,唯一真正的区别是我的表示不需要汽车收听广播电台(因此是 0..1 而不是 1)。在您的关系中使用不同的动词也可能有意义,因为通常汽车不听广播电台(车内的人听)。此外,您提出这两种关系的方式,尚不清楚“可以调入”和“收听”在逻辑上究竟是如何相关的。如果您将“收听”替换为“已调入”,则两者:

  1. 对广播电台的汽车状态表达更清晰;和,
  2. “could tune into”和“is tune into”之间的关系更容易解释。

协会 #2与您的模型不同。您的模型似乎在说“许多汽车可以调谐到一个且只有一个广播电台”。这并不能真正代表现实世界,除非您正在建模的域位于某个只有一个广播电台的非常农村地区。“could tune into”关系具有表示可能性的语义,通常一辆车可以调谐到多个广播电台(因此这些搜索/扫描按钮、预设电台等的原因)。汽车可能无法调到任何广播电台(例如天线坏了),所以这似乎也应该是可选的,并且有多个[0..*].

于 2013-04-25T22:46:01.380 回答