如何在UML中使用{XOR}约束?

时间:2016-11-29 13:14:04

标签: uml class-diagram object-diagram

我对在UML中如何正确使用{XOR}约束有一些疑问。

enter image description here

我理解它是如何以两种不同的方式工作的。哪一个是正确的?

  1. xor约束适用于关联。 (或者:A类型的对象可以与1个C类型的对象相关联;或者:A类型的对象可以与零或1个对象相关联以键入B;或者:对象A可以是单独的,因为我们[ 0..1]在B)附近。

  2. xor约束适用于链接(以下两种情况之一:类型A的对象必须与C类型的一个对象关联;或者:类型A的对象必须与B类型的一个对象关联) 。

3 个答案:

答案 0 :(得分:4)

这完全是错误的(或谜题)。您只需要一个CA相关联。但是,由于XOR,您可能无法关联B。这意味着:B关系始终为0,您也可以将其遗弃。

也许(!)有人把多重性放错了方向。如果你交换它们,这将是有道理的。如果您使用真实姓名而不是A,B,C,您可以从上下文中猜出。

答案 1 :(得分:1)

选项2要求B附近恰好有一个多重。

选项1适用于以下情况:

  1. 1靠近A,0..1靠近B
  2. 0..1靠近A,0..1靠近B
  3. 0..1靠近A,1靠近B

答案 2 :(得分:-1)

xor 是一个布尔运算符,仅当它的两个操作数一个为真,另一个为假时才给出真作为结果。 该符号用于指定基类的实例必须恰好参与由 {xor} 约束分组在一起的关联之一。只有一个关联必须始终处于活动状态。