哪个 UML 关系用于连接实例及其 class?
Which UML relationship is used to connect an instance with its class?
我有一个包含 classes 和对象的图表。我可以使用哪种定向关系将对象与其作为实例的 class 连接起来?是不是如下图的实现依赖?
在这个图中,关系是多余的,因为class名称已经在对象的冒号后面的矩形中提到,但在我的项目中,他们使用很长的class名称并且我不想在所有对象的矩形内显示那些。
你不需要一段感情。您显示 MyOldBMW 是 Car 的一个实例,具有:MyOldBMW:Car.
此外,MyOldBMW 应该用驼峰写法:myOldBMW:Car(第一个字母小写)。
你使用的Realize
关系是错误的。这用于显示接口已实现。而是使用刻板依赖:
但是,由于 class 已经显示在实例名称中,所以这是信息重复(我认为这是多余的)。
根据 UML 规范,您不能遗漏分类器的名称。
UML v2.5 §9.8.4 关于实例表示法说:
An InstanceSpecification is depicted using similar notation to its
classifiers, but in place of the Classifier name appears an underlined
concatenation of the instance name (if any), a colon (‘:’) and the
Classifier name or names. The convention for showing multiple
classifiers is to separate their names by commas.
所以虽然使用 Dependency
(不是 Realization
)来可视化 Classifier
和 Instance
之间的关系并没有错(尽管是多余的) , 似乎 从基于本段的实例表示法中省略分类器名称是错误的。
正如 www.admiraalit.nl 所指出的,不幸的是,规范没有明确定义 InstanceSpecifications
的符号语法,因此留下了讨论的空间
同一章的另一段内容如下:
NOTE. Names are optional for Classifiers and InstanceSpecifications.
The absence of a name in a diagram does not necessarily reflect its
absence in the underlying model.
我不是 100% 清楚。是的,分类器和实例可以有空名称,但是这个声明是否意味着我们可以从 InstanceSpecification
中省略 Classifier
的名称?
并且为 Nested InstanceSpecifications
定义的语法似乎表明我们可以将 ClassifierName
排除在外
{<name> [‘/’ <rolename>] | ‘/’ <rolename>} [‘:’ <classifiername> [‘,’<classifiername>]*]
我的建议是保留 Classifier
名称以避免任何歧义。
我有一个包含 classes 和对象的图表。我可以使用哪种定向关系将对象与其作为实例的 class 连接起来?是不是如下图的实现依赖?
在这个图中,关系是多余的,因为class名称已经在对象的冒号后面的矩形中提到,但在我的项目中,他们使用很长的class名称并且我不想在所有对象的矩形内显示那些。
你不需要一段感情。您显示 MyOldBMW 是 Car 的一个实例,具有:MyOldBMW:Car.
此外,MyOldBMW 应该用驼峰写法:myOldBMW:Car(第一个字母小写)。
你使用的Realize
关系是错误的。这用于显示接口已实现。而是使用刻板依赖:
但是,由于 class 已经显示在实例名称中,所以这是信息重复(我认为这是多余的)。
根据 UML 规范,您不能遗漏分类器的名称。
UML v2.5 §9.8.4 关于实例表示法说:
An InstanceSpecification is depicted using similar notation to its classifiers, but in place of the Classifier name appears an underlined concatenation of the instance name (if any), a colon (‘:’) and the Classifier name or names. The convention for showing multiple classifiers is to separate their names by commas.
所以虽然使用 Dependency
(不是 Realization
)来可视化 Classifier
和 Instance
之间的关系并没有错(尽管是多余的) , 似乎 从基于本段的实例表示法中省略分类器名称是错误的。
正如 www.admiraalit.nl 所指出的,不幸的是,规范没有明确定义 InstanceSpecifications
同一章的另一段内容如下:
NOTE. Names are optional for Classifiers and InstanceSpecifications. The absence of a name in a diagram does not necessarily reflect its absence in the underlying model.
我不是 100% 清楚。是的,分类器和实例可以有空名称,但是这个声明是否意味着我们可以从 InstanceSpecification
中省略 Classifier
的名称?
并且为 Nested InstanceSpecifications
定义的语法似乎表明我们可以将 ClassifierName
排除在外
{<name> [‘/’ <rolename>] | ‘/’ <rolename>} [‘:’ <classifiername> [‘,’<classifiername>]*]
我的建议是保留 Classifier
名称以避免任何歧义。