使用哪个UML关系将实例与其类连接?

时间:2015-12-17 13:25:57

标签: uml

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

enter image description here

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

3 个答案:

答案 0 :(得分:3)

您使用的Realize关系是错误的。这用于显示实现接口。而是使用刻板的依赖:

enter image description here

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

答案 1 :(得分:1)

你不需要关系。您显示MyOldBMW是 Car的实例:MyOldBMW:Car

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

答案 2 :(得分:1)

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

关于实例表示法的UMLv2.5§9.8.4说:

  

使用与其类似的表示法描述InstanceSpecification   分类器,但代替分类器名称会出现下划线   实例名称(如果有)的连接,冒号(':')和   分类器名称或名称。显示多个的约定   分类器是用逗号分隔它们的名字。

尽管使用<RULE NAME="STABLED" ID="R_STABLED"> <L> <P PROPID="STABLED" VALSTR="stabled">stabled</P> <P PROPID="NOT_STABLED" VALSTR="not stabled">not stabled</P> </L> </RULE>` (不是Dependency)来显示RealizationClassifier之间的关系并没有错误(尽管多余), 似乎错误,根据此段从实例表示法中省略了分类器名称。

正如www.admiraalit.nl所指出的,不幸的是,规范没有明确定义Instance

的符号语法,从而留下讨论空间。

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

  

请注意。对于分类器和实例规范,名称是可选的。   图中没有名称并不一定反映其名称   在基础模型中缺席。

对我来说,这不是100%明确的。是的,分类器和实例可以有空名称,但是这个陈述是否意味着我们可以从InstanceSpecifications中省略Classifier的名称?

InstanceSpecification定义的语法似乎暗示我们可以离开Nested InstanceSpecifications

  

ClassifierName

我的建议是保留{<name> [‘/’ <rolename>] | ‘/’ <rolename>} [‘:’ <classifiername> [‘,’<classifiername>]*]名称以避免任何歧义。

相关问题