哪个UML关系用于连接实例及其类?

哪个UML关系用于连接实例及其类?,uml,Uml,我有一个包含类和对象的图表。我可以使用哪个定向关系将对象与其作为实例的类连接起来?这是下图所示的实现依赖项吗 在这个图中,关系是多余的,因为在冒号后面的对象矩形中已经提到了类名,但是在我的项目中,它们使用很长的类名,我不想在所有对象的矩形中显示它们。您不需要关系。您正在展示MyoldBwm是一个带有:MyoldBwm:Car的Car实例 此外,myoldbwm应该用camelCase:myoldbwm:Car(小写字母的第一个字母)书写。您使用的Realize关系是错误的。这用于显示接口已实现

我有一个包含类和对象的图表。我可以使用哪个定向关系将对象与其作为实例的类连接起来?这是下图所示的实现依赖项吗


在这个图中,关系是多余的,因为在冒号后面的对象矩形中已经提到了类名,但是在我的项目中,它们使用很长的类名,我不想在所有对象的矩形中显示它们。

您不需要关系。您正在展示MyoldBwm是一个带有:MyoldBwm:Car的Car实例


此外,myoldbwm应该用camelCase:myoldbwm:Car(小写字母的第一个字母)书写。

您使用的
Realize
关系是错误的。这用于显示接口已实现。相反,请使用定型依赖项:


然而,由于类已经显示在实例的名称中,这是信息的重复(我认为这是多余的)。

根据UML规范,您不能省略分类器的名称

UML v2.5§9.8.4中的实例符号表示:

InstanceSpecification使用与其相似的符号来描述 分类器,但在分类器名称的位置出现下划线 实例名称(如果有)、冒号(“:”)和 分类器名称。显示多个字符的约定 分类器是用逗号分隔名称的

因此,虽然使用
依赖关系
(而不是
实现
)来可视化
分类器
实例
之间的关系是正确的(尽管是多余的),但基于本段的实例符号中省略分类器名称似乎是错误的

正如www.admiralit.nl所指出的,不幸的是,规范没有明确定义
实例规范的符号语法,从而为讨论留下了空间

同一章的另一段内容如下:

注意。对于分类器和实例指定,名称是可选的。 图中缺少名称并不一定反映其重要性 基础模型中的缺失

这对我来说不是100%清楚。是的,分类器和实例可以有空名称,但是这句话是否意味着我们可以从
InstanceSpecification
中省略
分类器的名称

而为
嵌套实例规范定义的语法似乎表明我们可以将
分类器名称
排除在外

{['/']|'/'}[':'[',']*]


我的建议是保留
分类器
名称,以避免任何歧义。

我知道,但是UML是否有一个“实例”关系的特定表示,作为连接类和对象的线?我有很长的类名,我不想对每个类的实例重复这个类名。关于你关于Myoldbwm应该用camelCase编写的声明:通常,我是这样做的,尽管据我所知,UML规范没有规定它。它只规定量词应该以大写字母开头。我想使用非标准化的刻板印象是唯一的方法,谢谢。一个注释:显示接口是由组件实现的只是一个可以使用实现的示例。根据UML2.5的7.7.3.4:实现是两组namedelement之间的一种特殊抽象依赖关系,一组表示规范(供应商),另一组表示该规范的实现(客户)。(……)对“执行”的含义没有严格的定义(……)。图7.21显示了此依赖关系连接类的示例。是。我并不是说
Realize
只用于我所说的内容,而是说在这种情况下它是错误的(或误用的)。我想,如果你的模型中有一些指导原则来解释它的使用,你甚至可以通过这种错误的使用。但我想,这种依赖性更合适。同一段说:名称对于分类器和实例规范是可选的。图中缺少名称并不一定反映基础模型中缺少名称。带下划线的冒号就足够了!另请参见嵌套实例的BNF(同一段落),其中分类器名称也被指定为可选的。我将更新答案。您引用的注释只告诉我们,在图表中,名称可以省略(隐藏),就像您可以在图表中隐藏许多其他内容一样。是的,您可以像隐藏图表中的所有内容一样隐藏分类器。EA并不能证明此语句的正确性,但您可以仅使用名称创建未分类对象。特别是在分析阶段有意义。