Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.

multiplicity (множественность)

Определение диапазона кардинальных допустимых значений (размера) множества. Множественность может быть указана на полюсах ассоциации, частях композитных классов, повторах сообщений и т. д. По сути, множественность является подмножеством (возможно, бесконечным) неотрицательных целых чисел.
См. для сравнения cardinality.
См. multiplicity (of association); multiplicity (of class).

Семантика

Множественность - это ограничение количества элементов (размера) множества. Вообще, это подмножество неотрицательных целых чисел. На практике множественность обычно представляет собой конечное множество числовых интервалов, чаще всего один интервал с минимальным и максимальным значением. Любое множество должно быть конечным. Впрочем, верхняя его граница может быть как конечной, так и неопределенной (множественность "много"). В любом случае верхняя граница должна быть больше нуля - едва ли удобно пользоваться множественностью, которая допускает только нуль значений, то есть пустое множество. Обозначается множественность В виде строки.
В большинстве случаев множественность можно определить как ряд целых чисел - промежуток между минимальным и максимальным элементами множества. Однако теоретически она может представлять собой дискретное подмножество неотрицательных чисел. Множество чисел может быть бесконечным, - в случае если не определена его верхняя граница (следует отметить, что количество элементов в каждом отдельном взятом множестве конечно).
В большинстве случаев на практике множество целых чисел может быть представлено как конечный список, состоящий из непересекающихся, несвязанных числовых интервалов. Интервалом называется множество смежных чисел, характеризующееся минимальным и максимальным значениями. Некоторые бесконечные множества описать таким образом невозможно, - например, множество четных целых чисел, - однако, как правило, мало что меняется, если просто включить в это множество и промежутки. Впрочем, для большинства случаев проектирования для обозначения множественности будет достаточно одного интервала с минимальным и максимальным значениями, поскольку основная ее цель - обозначить размер контейнера для элементов.
См. multiplicity (of association) и multiplicity (of class), в которых использование множественности описано более подробно.

Нотация

Множественность описывается в виде текстового выражения, состоящего из списка числовых интервалов, разделенных между собой запятыми:
минимум..максимум
где минимум и максимум являются целыми числами. Кроме того, максимум может также быть выражен звездочкой (*), что указывает на неопределенность верхней границы множества. Выражение 2..* обозначает "от двух и более".
Числовой интервал может также быть описан следующим образом:
число
где число является целым числом, представляющим собой интервал, состоящий из одного числа.
Множественность, указанная в виде звездочки (*), соответствует выражению 0..* - то есть неограниченное количество (от нуля до бесконечности). Такой вид множественности встречается довольно часто, называется он "много".

Пример

0..1
1
0..*
*
1..*
1..6
1..3.7..10.15.19..*

Стилистические указания

  1. Лучше, когда числовые интервалы перечислены по возрастанию. Иначе говоря, определяйте множественность как 1..3, 7, 10, а не как 7, 10, 1..3.
  2. Два смежных интервала сливаются в один интервал. Например, лучше писать 0..1, а не 0, 1.

Обсуждение

В выражение множественности можно включать переменные, однако, после завершения работы над моделью они должны преобразовываться в числовые значения. Иначе говоря, представлять собой параметры или константы. Множественность не вычисляется динамически во время выполнения, подобно размеру динамически выделяемого в памяти массива. Его определяет ряд возможных значений (в худшем случае), которые допускают множество и к которым, следовательно, должны быть приспособлены структуры данных и операции. Множественность - это константа периода моделирования. Если границы множественности являются переменной времени выполнения, то правильным значением множественности является "много" (0..*).
На диаграмме множественность может и не быть указана, тем не менее, в базовой модели она существует. В законченной модели нет понятия "незаданной" множественности. Если значение множественности неизвестно, значит, оно эквивалентно множественности "много", ибо при отсутствии указаний на множественность берётся любое значение.
См. unspecified value.

Алфавитный указатель