Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UML多重元素中的多个值范围_Uml - Fatal编程技术网

UML多重元素中的多个值范围

UML多重元素中的多个值范围,uml,Uml,根据UML规范,在多重元素中指定多个值范围是否正确?例如,AssociationEnd:3..7,10..20处的两个范围或属性的两个范围,例如account:account[0..5,8..10]。流行的工具允许这样做。它是否正确?一个乘法元素只能有一个 我不清楚一个umldiagrameElement是否可以关联更多的多重元素。似乎允许第章B.8.15.1TLDR:不,这种多重性是不正确的 完整答案 UML2.5规范的第7.5.2节和第7.5.3.2节明确定义了多重性在多重性元素中定义为两个

根据UML规范,在多重元素中指定多个值范围是否正确?例如,AssociationEnd:3..7,10..20处的两个范围或属性的两个范围,例如account:account[0..5,8..10]。流行的工具允许这样做。它是否正确?

一个
乘法元素只能有一个


我不清楚一个
umldiagrameElement
是否可以关联更多的多重元素。似乎允许第章
B.8.15.1
TLDR:不,这种多重性是不正确的

完整答案 UML2.5规范的第7.5.2节和第7.5.3.2节明确定义了多重性在多重性元素中定义为两个数字之间的范围,一个特定的数字(如果
上限和
下限相等),或者如果
上限
数字是
*
,则从一个数字到无穷大的范围。不幸的是,您不能只列出特定的值。更具体地说,它由两个数字列出,
lower
upper
,这两个数字定义了多重性范围限制

我记得这在UML的早期版本中是可能的,但是我只在一些书中看到过(不幸的是我记不清楚),而不是规范本身

至于B.8.15.1,它没有说明可能的值,特别是没有建议列出几个值/范围的可能性

因此,可能的值为:

  • a

  • a..b
    (其中
    a
    虽然在语法上不允许使用表示法,但您可能希望指定集合。这可以通过附加约束轻松完成。如果您有足够的头脑,您可以构造OCL脚本。但是一些清晰的文本,如
    {multiplicity必须在0..5和8..10}范围内
    就可以了。只需使用一个
    *
    来表示实际的多重性。

    另一方面,多重性元素的多重性的上下限由ValueSpecification(第7.5.3.2章)指定。如果我没有错的话,它们可以有间隔。第7.5.4.1章说“是Integer类型的ValueSpecification,是UnlimitedNatural类型的ValueSpecification”。因此没有间隔,只有一个间隔“…”