UML规范中的关联定义

时间:2013-11-28 20:29:44

标签: uml

关联在分类器之间定义semantic relationship。关联的实例是set of tuples relating instances of the classifiers。每个tuple value may appear at most once。关联表示分类器的实例中的set of connections。关联的实例是链接,它是从相应的分类器

中提取的tuple of Instances

我想知道是否有人帮助我理解关联定义中的每一个字,尤其是突出显示的关键字?因为我从不同的资源中读到它但是所有人都说同样的话,但我想要一个更详细的定义

1 个答案:

答案 0 :(得分:2)

  

语义关系

这意味着问题空间产生的相关事物之间存在结构关系。例如:关联Person owns Dog。在狗牌申请中,这种关系是核心概念;该应用程序的存在是为了管理人与狗之间的联系。这是一种“语义”关系,因为它具有源于问题空间的意义。

  

与分类器实例相关的元组集

元组是'有序的元素集'(wikipedia)。 Dog-Ownership协会的一个例子可能是("Fido", "Fred"),其中“Fido”代表狗,“Fred”代表一个人。关联可以表示为一组元组,因为Dog&组合的每个组合都有一个元组。关系所持有的人; e.g。

[("Fido", "Fred"), ("Angel", "Chuck Norris"), ("Boatswain", "Lord Byron")]

注意,对于的关系,对没有元组;例如("Fido", "Lord Byron")

  

每个元组值最多可出现一次

集合不可能包含重复项,因为这只会说两次同样的事情。因此,将("Fido", "Fred")再次添加到上面的列表中是没有意义的;我们已经知道Fred拥有Fido。

  

Association表示分类器实例之间的一组连接

这只是考虑这种关系的另一种方式。对于集合中的每个元组,您可以考虑相关对象之间的链接或连接。

  

Association的实例是一个Link,它是Instances的元组

见上文。每个元组代表一对链接的对象。链接是关联,因为对象是类。类有很多对象;协会有许多链接。

基本上存在关联,以显示事物与其他事物系统地联系在一起。元组和集合是一种思考和/或表示这些链接事物的方式。 (事实上​​,我对你的OP中的定义有点狡辩:关联中的链接可以表示为作为一组元组:但这不是他们这就是它们的建模方式。相同的信息同样可以通过图形建模,其中每个对象由顶点(节点)表示,每个对象都是边缘。

第h

修改

回答您的问题。看起来你很了解它;一些观察结果。

首先,我将如何建模:

enter image description here

现在谈谈你的每一点:

  

名称:是关联关系的名称(可选,您可以为其命名)

我更喜欢基于动词短语的命名,因为它带出了关系的含义。我的模型可以直接读作:

  • 每个人拥有许多狗(其中'很多'意味着0或更多)
  • 每只狗只有一个人

这样做无需明确命名关联,但如果您愿意,仍然可以这样做。

  

可见性(我不关心它,至少就目前而言,直到现在我才意识到它的重要性。)

我同意。就个人而言,我从未注意过具有可见性的模型。

  

名称:(这是MemberEnd的名称),所以,我在屏幕截图中保留了默认名称

请参阅有关上述关联命名的评论。我更喜欢基于动词的命名到基于角色的命名:'owns'在描述关系的目的方面要比命名关联结束'dog'或'dogs'更明确。

  

memberEnd [...]的所有者

个人:我不使用它。关于这一点还有另外一个讨论,我认为在大多数情况下都不会产生重大影响。

  

Navigable [...]

我再次不亲自使用。实际上,导航性应该来自潜在的行为。是否需要单向导航/两者兼而有之?然后相应地设置导航性。然而,有些人喜欢明确地指定它,在此基础上它使实现更加清晰(如果只有一种方式可导航它可以用一个类中的引用实现;如果是双向的,它需要在两个方向上引用 - 伴随逻辑保持一致)。

  

多重

我同意你的选择。

希望有所帮助。