UML图表多重性

时间:2013-04-25 21:55:43

标签: uml

这有意义吗?

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

在为我的项目创建类图时,我遇到了上述问题。我的印象是,一般来说,上述方法必须兼顾两种方式。所以每当你测试它是否有意义时,你都会检查:“一辆汽车在收听1台电台”。 (正确而有道理)。另一方面,我会测试它:“许多汽车都会收听广播电台。” (这有意义吗?)

第二个也是如此。

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

谢谢,

1 个答案:

答案 0 :(得分:3)

我不认为你的模型很有意义,但在我解释细节之前,让我提出一个替代模型,我认为更准确地代表你的领域:

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

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

  3. 协会#1 非常接近同一件事,唯一真正的区别是我的代表不需要汽车收听广播电台(因此0..1而不是1 )。在您的关系中使用不同的动词也是有意义的,因为通常汽车不会收听广播电台(其中的人都这样做)。此外,你提出这两种关系的方式,目前尚不清楚“可以调入”和“听”是如何在逻辑上相关的。如果你用“is tuned into”替换“listen to”,那么两者都是:

    1. 汽车相对于无线电台的状态表达更清楚;和,
    2. 可以更容易地解释“可以调入”和“调入”之间的关系。
    3. 协会#2 与您的型号不同。你的模型似乎说“许多汽车可以调到一个也只有一个广播电台”。这并不代表现实世界,除非你正在建模的领域是在一个只有一个广播电台的农村地区。 “可以调谐到”关系具有指示可能性的语义,并且通常可以将汽车调谐到多个无线电台(因此寻找/扫描按钮,预设电台等的原因)它也是汽车可能无法调谐到任何无线电台(例如天线坏了),所以这似乎也应该是可选的,并且具有多种[0..*]