UML中的语义关系

UML中的语义关系,uml,associations,semantics,class-diagram,Uml,Associations,Semantics,Class Diagram,我发现UML中的关联定义如下。 UML中的“关联”定义为 类,表示两个或多个 涉及其实例之间的连接(链接) 我不清楚什么是语义关系。有人能举例说明它与非语义关系的比较吗?语义的主体是意义。如果一个事物通过感觉与另一个事物相连,那就是语义关系。这个定义太宽泛了。而且,应用于UML关系,是不正确的。这是不正确的,原因有二 首先,UML不仅包含类实例语言,如java或C++,而且还包括原型生成的纯对象语言。你的定义中根本不包括第二种变体 第二,在UML中,您可以通过一些复杂的AssociationCl

我发现UML中的关联定义如下。 UML中的“关联”定义为 类,表示两个或多个 涉及其实例之间的连接(链接)


我不清楚什么是语义关系。有人能举例说明它与非语义关系的比较吗?

语义的主体是意义。如果一个事物通过感觉与另一个事物相连,那就是语义关系。这个定义太宽泛了。而且,应用于UML关系,是不正确的。这是不正确的,原因有二

首先,UML不仅包含类实例语言,如java或C++,而且还包括原型生成的纯对象语言。你的定义中根本不包括第二种变体

第二,在UML中,您可以通过一些复杂的AssociationClass将类A连接到类B,该类由一个带有箭头的框显示,而不仅仅是箭头。它仍然会被命名为关联,它也是一种语义关系。但是语义关系通过两个类从a到B,它仍然是一个语义关系,但在UML中它不是一个关联


如果您想深入了解这个主题,最好阅读UML文档:“关联对表示类型化实例之间链接的一组元组进行分类。”(UML 2.5,pharagraph 11.5.1)。注意:两个实例之间的任何链接都可以显示为关联。也许你正在读的这本书整体上还不错,但在你引用的地方,作者只是试图使用漂亮的词,而不理解它们的意思,甚至不试图让读者理解和正确。

根据UML规范,关联表示语义关系

这是怎么一回事? 关系是一种关于意义的关系,它本身就有意义

这一术语被借用到语言和相关学科中,在这些学科中,单词被映射到它们的意思,并且根据这种映射分析单词之间的关系。但在抽象之前,一幅画抵得上1000字:

UML中的语义关系? 因此,应用UML(建模语言)的这些元素而不是英语单词(自然语言):如果您有类
Car
Driver
,您可以将语义关系建模为两个类之间的关联

一些
司机
和他们的
配偶
之间也可能存在语义关系,这意味着你也可以对这种关联进行建模。但这不是强制性的。幸运的是!因为否则,通过传递性,您将很快在您的模型中拥有世界的其他部分;-)

如果它与您的应用程序域相关,您当然也可以显示此关联(例如,您在一家保险公司工作,其价格取决于有多少家庭成员持有驾驶执照)。您甚至可能希望通过使用来明确
配偶
汽车
之间的间接关系

语义与否? 并非所有关系都具有语义性质。例如,您可以使用have,它可以表示技术关系。例如,如果使用factory设计模式,则
DriverFactory
«创建»
驱动程序。这本身没有任何意义:它只是表示域中的一种关系。另一方面,您可能希望赋予它一个意义,让工厂跟踪创建的驱动程序,即使它仅在抽象设计的意义上有意义,而在现实世界中没有意义。如果有帮助的话,你可以让它成为一个关联

最终,当你想看到一个关联时,你有一些解释的空间,而当你不想看到的时候。但是,如果您希望您的模型仍然有用,请使用它


为了记录在案,我只能画矩形,我感谢这辆好车和司机,感谢他们在包容性沟通方面的建议。

+1有一个有趣的问题-什么是真正的关联。真的!“语义关系”在UML2.5规范中出现过一次,它定义了一个关联……当谈到UML时,你不应该说“链接”是一个“关联”,因为UML对这些术语的使用是不同的(正如你在同一段中所说:“关联将链接分类”)。@gwag 1。不是我。据文献记载。2.事情并非如此简单。如果类之间存在关联,则会对链接进行分类,是。但如果是在对象之间,则是链接本身。但是文本可以改进。谢谢你的留言。甘努斯:谢谢你的回答。你能给我举个非语义关系的简单例子吗。然后我可以清楚地找出什么是语义关系。@user3397694是的,是错误想象出来的没有意义的关系。这个词在那里绝对过分。只有错误的关系才是非语义的。@Gangnus谢谢你的回答。假设“我和我兄弟”之间的关系是语义关系。“我和坐在同一车厢里的人”是非语义关系。我的理解正确吗?