2013-11-28 59 views
2

关联定义了分类器之间的semantic relationship。关联的实例是set of tuples relating instances of the classifiers。每个tuple value may appear at most once。该协会在分类器的实例中代表set of connections。一个协会的一个实例是一个链接,这是从相应的量词绘制的tuple of InstancesUML规范中的关联定义

我不知道是否有一个人帮助我理解了关联定义特别突出显示的内容的每一个字?因为我是从不同的资源,了解它但他们都说着同样的话,但我想更详尽的定义

回答

2

语义关系

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

集有关的分类

元组是“的有序集的元素的”(wikipedia)的实例的元组。狗所有权协会的一个例子可以是("Fido", "Fred"),其中“Fido”代表狗和“Fred”人。一个关联可以表示为一组元组,其中每个Dog的组合都有一个元组,这个关系可以持有这个元组;例如

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

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

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

这是不可能的设置为包含重复的,因为这也只是两次说同样的事情。所以没有必要再将("Fido", "Fred")添加到上面的列表中;我们已经知道Fred拥有Fido。

协会代表的量词

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

一个关联的一个实例是一个链接,这是实例的元组

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

从根本上说,存在的关联表明事物系统地与其他事物相联系。元组和集合是思考和/或表示这些链接事物的一种方式。 (事实上​​,我对你的OP中的定义有所质疑:关联中的链接可以表示为作为一组元素:但这不是他们的,它们是如何建模的。信息可同样由一个图形,其中每个对象是由顶点(节点)表示,并且每个关联来建模的边缘

HTH

编辑:。

响应您的问题外观。就像你理解得很好;一些观察。

首先,这里我将如何模型,可以:

enter image description here

我们每个点:

名称:是的关联关系的名称(可选项,你可以给它一个名字或不)

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

  • 每个人拥有许多狗(其中“多”是指0或更多)
  • 每条狗正好由一个人

这样做会删除所拥有的需要明确命名关联,尽管如果你愿意,你仍然可以这样做。

知名度(我不关心它,至少现在,我直到现在才意识到它的重要性)。

我同意。就我个人而言,我从来没有用可见度来标注模型。

名称:(这里是MemberEnd的名称),这样,我的截图

留下了它的默认名称有关上述关联命名见注释。我更喜欢基于角色的基于动词的命名:'拥有'在描述关系的目的方面明显要比命名关联结束'狗'或'狗'更明确。

memberEnd的所有者[...]

个人:我不使用这个。关于这个问题还有其他一些讨论,我不认为在大多数情况下都会产生重大影响。

通航[...]

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

多重

我同意你的选择。

希望有所帮助。

+0

嗨@ sfinnie!我很幸运地得到这样的答案.I've花了过去三小时 左右只是吸收每一个字,我真不知道怎么感谢你 不够。 我已经建立了“人拥有狗”的关联。我希望你 对我的尝试发表评论,确认我正在尝试做的是否正确,并且 在UML中有效。 这是一个类图:http://postimg.org/image/cjn6js2ex/这是关联的相应'属性视图' 关系类图(编辑其属性) http://postimg.org/image/llblttv5d/ – Carlos

+0

这是我对关联关系的理解: #Name:是关系的名称(可选,你可以给它 它的名字与否) #visibility(我不关心它,至少目前为止,我还没有意识到它的重要性,直到现在)#Name:(这里是MemberEnd的名字),所以,我在 的屏幕上留下了它的默认名称,但它是类类型的实例我们的e xample 这是菲多 – Carlos

+0

memberEnd的#the主人:我有两个选择要么协会或 分类[我的理解,我应该为两端 指定的分类,因为我觉得是菲式'狗class'和弗雷德是'Person 类'],但我不知道在哪些情况下AssociationEnds应该是 由协会拥有,不属于分类器? – Carlos