关联在分类器之间定义semantic relationship
。关联的实例是set of tuples relating instances of the classifiers
。每个tuple value may appear at most once
。关联表示分类器的实例中的set of connections
。关联的实例是链接,它是从相应的分类器
tuple of Instances
我想知道是否有人帮助我理解关联定义中的每一个字,尤其是突出显示的关键字?因为我从不同的资源中读到它但是所有人都说同样的话,但我想要一个更详细的定义
答案 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
修改强>
回答您的问题。看起来你很了解它;一些观察结果。
首先,我将如何建模:
现在谈谈你的每一点:
名称:是关联关系的名称(可选,您可以为其命名)
我更喜欢基于动词短语的命名,因为它带出了关系的含义。我的模型可以直接读作:
这样做无需明确命名关联,但如果您愿意,仍然可以这样做。
可见性(我不关心它,至少就目前而言,直到现在我才意识到它的重要性。)
我同意。就个人而言,我从未注意过具有可见性的模型。
名称:(这是MemberEnd的名称),所以,我在屏幕截图中保留了默认名称
请参阅有关上述关联命名的评论。我更喜欢基于动词的命名到基于角色的命名:'owns'在描述关系的目的方面要比命名关联结束'dog'或'dogs'更明确。
memberEnd [...]的所有者
个人:我不使用它。关于这一点还有另外一个讨论,我认为在大多数情况下都不会产生重大影响。
Navigable [...]
我再次不亲自使用。实际上,导航性应该来自潜在的行为。是否需要单向导航/两者兼而有之?然后相应地设置导航性。然而,有些人喜欢明确地指定它,在此基础上它使实现更加清晰(如果只有一种方式可导航它可以用一个类中的引用实现;如果是双向的,它需要在两个方向上引用 - 伴随逻辑保持一致)。
多重
我同意你的选择。
希望有所帮助。