Кратность

Кратность свойства обозначает количество объектов, которые могут заполнять данное свойство. Чаще всего встречаются следующие крат­ности:

• 1 (Заказ может представить только один клиент.)

• 0..1 (Корпоративный клиент может иметь, а может и не иметь един­ственного торгового представителя.)

• * (Клиент не обязан размещать заказ, и количество заказов не огра­ничено. Он может разместить ноль или более заказов.)

В большинстве случаев кратности определяются своими нижней и верхней границами, например 2..4 для игроков в канасту. Нижняя граница может быть нулем или положительным числом, верхняя гра­ница представляет собой положительное число или * (без ограниче­ний). Если нижняя и верхняя границы совпадают, то можно указать одно число; поэтому 1 эквивалентно 1..1. Поскольку это общий слу­чай, * является сокращением 0..*.

При рассмотрении атрибутов вам могут встретиться термины, имею­щие отношение к кратности.

Optional (необязательный) предполагает нулевую нижнюю границу.

Mandatory (обязательный) подразумевает, что нижняя граница равна или больше 1.

Single-valued (однозначный) - для такого атрибута верхняя граница равна 1.

Multivalued (многозначный) имеет в виду, что верхняя граница больше 1; обычно *.

Если свойство может иметь несколько значений, я предпочитаю упо­треблять множественную форму его имени. По умолчанию элементы с множественной кратностью образуют множество, поэтому если вы просите клиента разместить заказы, то они приходят не в произволь-


ном порядке. Если порядок заказов в ассоциации имеет значение, то в конце ассоциации необходимо добавить {ordered}. Если вы хотите разрешить повторы, то добавьте {nonunique}. (Если желательно явным образом показать значение по умолчанию, то можно использовать {un­ordered} и {unique}.) Встречаются также имена для unordered, non-unique, ориентированные на коллекции, такие как {bag}.

UML 1 допускал дискретные кратности, например 2,4 (означающую 2 или 4, как в случае автомобилей, до того как появились минивэны). Дискретные кратности не были широко распространены, и в UML 2 их уже нет.

Кратность атрибута по умолчанию равна [1]. Хотя это и верно для ме-тамодели, нельзя предполагать, что если значение кратности для ат­рибута на диаграмме опущено, то оно равно [1], поскольку информа­ция о кратности на диаграмме может отсутствовать. Поэтому я пред­почитаю указывать кратность явным образом, если эта информация важна.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: