UML中的多重性允许指定一些元素集合的基数(即元素的数量)。
多重性(Multiplicity)元素定义了一些元素的集合,包括多重性以及集合元素的顺序和唯一性的规范。
请注意,[UML 2.4.1规范]没有将多重性与多重性元素分开,将这两者混合使用,并在理解规范时造成一些混淆。
多重性
多重性是某些元素集合的基数(即元素数量)的定义,通过提供非负整数的包含间隔来指定所描述元素的允许实例数。多重性区间有一些下限和(可能是无限的)上限:
multiplicity-range :: = [ lower-bound
'..'] upper-bound
lower-bound :: = natural-value-specification
upper-bound :: = natural-value-specification |
'*'
下限和上限可以是自然常数或计算为自然(非负数)数的常数表达式。上限也可以指定为星号'
* ',表示元素数量不限。上限应该大于或等于下限。
注意, [UML 2.4.1规范] 描述多重性不是很一致。例如,它表示下限必须是非负整数文字,后来
- 它可以由值规范指定,例如(没有影响,常量)表达式。另一个问题是星号作为上限在一个地方意味着零个,另一个地方意味着多个。
多重性的一些典型例子:
多重性 |
选项 |
基数
|
0..0 |
0 |
集合必须为空 |
0..1 |
|
没有实例或只有一个实例 |
1..1 |
1 |
只有一个实例 |
0..* |
* |
零个或多个实例 |
1..* |
|
至少一个实例 |
5..5 |
5 |
正好5个实例 |
m..n |
|
至少M,但不超过N个实例 |
如果多重性与符号为文本字符串(如类属性)的元素相关联,多重性范围将放在方括号内,作为该文本字符串的一部分。
如果多重性与作为符号出现的元素相关联(例如用例或类),多重性范围将不使用方括号显示。
需要两个或多个Player角色
启动游戏用例。
多重元素
多重性(Multiplicity)元素定义了一些元素集合,包括多重性以及集合元素的顺序和唯一性规范。
多重元素的一些子类是结构特征、运算、参数、pin。
集合属性可以用以下不规范的语法规则来描述:
可以使用以下非规范语法规则来描述集合属性:
collection-type :: = multiplicity-range
['{' collection-options '}']
集合选项指定元素实例化中的值是惟一的还是有序的:
collection-options ::= order-designator
[ ',' uniqueness-designator ] | uniqueness-designator
[ ',' order-designator ]
order-designator ::= 'ordered' | 'unordered'
uniqueness-designator ::= 'unique' | 'nonunique'
收集类型 |
选项 |
基数
|
Multiset, bag
(多重集,包) |
false |
false |
Sequence, array
(序列,数组) |
true
|
false |
Set(组) |
false |
true |
Ordered set(有序集) |
true |
true |
如果multiplicity元素是多值的并且指定为ordered,则按顺序排序此元素的实例化中的值集合。默认情况下,不会对集合进行排序。
如果多重性元素是多值的,并且指定为唯一的,则该元素实例化中的值集合中的每个值都必须是唯一的。默认情况下,集合中的每个值都是唯一的。
数据源可能有一个记录器,并已订购了池
最小到最大连接数。每个连接都是唯一的(默认情况下)
顾客买的东西不多。 购买是按特定顺序进行的,并且每一个都是唯一的(默认情况下)
|