据我所知,UML InstanceValue是由一个单独的InstanceSpecification定义的值。此外,InstanceValue专门研究ValueSpecification和TypedElement,这意味着InstanceValue必须有一个type。
然而,InstanceSpecification可能在其关联中具有多分类器。
我的问题是:什么是type InstanceValue的InstanceSpecification有多个分类器?
编辑(23/11):规范第9.8.3节确实有如下一句:
如果InstanceSpecification有一个或多个分类器,那么ValueSpecification的类型必须符合至少一个这些分类器。
那么,人们是否应该简单地选择任何一个分类器作为type呢?即使它意味着可能“隐藏”实例的许多方面?
发布于 2018-11-22 13:51:15
对于UML2.5.1的9.9.xx节,您似乎没有真正的约束。
但在阅读9.8.3节时,我理解InstanceValue“类型”必须符合至少一个InstanceSpecification“分类器”。
一方面,如果InstanceValue“类型”不符合任何InstanceSpecification“分类器”,则该模型显然是错误的。另一方面,InstanceValue "type“可能与许多InstanceSpecification”分类器“一致,但这应该是一个问题,对吗?
发布于 2018-11-25 17:29:13
那么,人们是否应该简单地选择任何分类器作为一种类型呢?即使它意味着可能“隐藏”实例的许多方面?
槽表示分类器的实际属性。想象一下下面的例子:
class Label {
public String name;
}
class Identity {
public Label label;
public Integer number;
}
class Product extends Identity {
public String brand;
}然后,你只是在做身份方面的建模。因此,在分类器中,您可以指定Identity (即使它是产品的实例)。

然后,您只能从这些分类器中为属性提供槽,在本例中,这意味着只有label和number属性。当然,您不需要对它们进行建模,但是不能添加在分类器中没有相应属性的新插槽。

换句话说,你不是在“挑选”要使用的分类器。情况正好相反。分类器及其属性指定您可以拥有哪些插槽。
https://stackoverflow.com/questions/53431324
复制相似问题