【问题标题】:UML Diagram MultiplicityUML 图多重性
【发布时间】:2013-04-26 06:56:32
【问题描述】:

这有意义吗?

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

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

第二个也是如此。

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

谢谢,

【问题讨论】:

    标签: uml


    【解决方案1】:

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

    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”之间的关系更容易解释。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 2011-07-09
      • 2012-12-05
      • 2012-03-27
      相关资源
      最近更新 更多