Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Унифицированный язык моделирования (Unified Mod...doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
1.06 Mб
Скачать

Варианты представления

Если имеются два или более конгломерата одной и той же совокупности, они могут показываться как дерево путем соединения конгломератов целей в отдельный сегмент. Для этого требуется, чтобы все украшения целей конгломератов были непротиворечивы. Это только особенность представления и не добавляет дополнительной семантической информации.

Для показа навигационных стрелок на диаграмме возможны различные способы. Они могут изменяться со временем по запросу пользователя или от диаграммы к диаграмме:

Вариант представления 1: Показаны все стрелки. Отсутствие стрелки показывает, что навигации нет.

Вариант представления 2: Подавлены все стрелки. О навигации нельзя сделать никаких выводов. Это типичная ситуация когда информации опущена при показе.

Вариант представления 3: Подавлены стрелки для двунаправленных ассоциаций; показаны стрелки только для однонаправленных ассоциаций. В этом случае двунаправленная навигация не отличается от отсутствия навигации, но последний случай встречается на практике крайне редко или вообще не существует. Это еще один пример ситуации, в которой некая информация опущена при просмотре.

Рекомендации по оформлению

Если у одной роли есть несколько украшений, то они выводятся в следующем порядке, начиная от конца пути, присоединенного к классу, в направлении основной части пути:

спецификатор;

символ конгломерата;

навигационные стрелки.

Названия ролей и множественность должны помещаться недалеко от конца пути так, чтобы они не конфликтовали с другими ассоциациями. Они могут помещаться с разных сторон линии. Что соблазняет задать расположение их всегда с определенной стороны линии (по часовой стрелке или против часовой стрелки), но это иногда может привести к противоречию с требованием ясности при переполненном размещении. Название роли и множественность могут помещаться с разных сторон общей роли или совместно (например, "* employee").

Пример

Рисунок 19. Различные украшения на ролях ассоциаций

Множественность

Семантика

Элемент множественности определяет диапазон допустимых мощностей, которые может иметь набор. Описание множественности может быть задано для ролей ассоциаций, частей наборов, повторений и в других случаях. По существу спецификация множественности является открытым множеством неотрицательных целых чисел.

Нотация

Описание множественности изображается как текстовая строка, содержащая разделенную запятыми последовательность целочисленных интервалов, где интервал представляет собой (возможно бесконечный) диапазон целых чисел, в формате:

lower-bound .. upper-bound нижняя-граница .. верхняя-граница

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

Не связанные выражения, которые не принимают символьные целочисленные значения, недопустимы.

Если определено единственное целочисленное значение, то диапазон содержит это единственное значение.

Если описание множественности состоит из одной звездочки (*), то это означает неограниченный неотрицательный целочисленный интервал, то есть является эквивалентом *..* = 0..* (ноль или больше).

Множественность 0..0 бессмысленна, так как это означало бы, что множество всегда пустое.

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

Рекомендации по оформлению

Предпочтительно чтобы интервалы монотонно возрастали. Например, "1..3,7,10" предпочтительнее чем "7,10,1..3".

Два смежных интервала должны объединяться в один интервал. Например, "0..1" предпочтительнее чем "0,1".

Пример

0..1

1

0..*

*

1..*

1..6

1..3,7..10,15,19..*

Спецификатор

Семантика

Спецификатор - атрибут или список атрибутов, чьи значения служат разделения множества объектов связанных с объектом с помощью ассоциации. Спецификаторы - атрибуты ассоциации.

Нотация

Спецификатор показывается как маленький прямоугольник, присоединенный к концу пути ассоциации между заключительным сегментом пути и символом класса, к которому он присоединяется. Прямоугольник спецификатора является частью пути ассоциации, а не частью класса. Прямоугольник спецификатора перемещается вместе с сегментом пути. Спецификатор присоединяется к концу источнику ассоциации; то есть, объект класса источника вместе со значением спецификатора однозначно выбирают раздел из множества объектов целевого класса на другом конце ассоциации (то есть каждый адресат относится точно к одному разделу).

Множественность, присоединенная к целевой роли, обозначает возможную мощность множества целевых объектов выбранных объединением объекта источника и значения спецификатора. Обычно применяются следующие значения: "0..1" (уникальное значение может быть выбрано, но каждое возможное значение спецификатора не обязательно выбирает значение), "1" (каждое возможное значение спецификатора выбирает уникальный целевой объект, следовательно, область значений спецификатора должна быть конечной) и "*" (значение спецификатора индекс, который разделяет целевые объекты на подмножества).

Атрибуты спецификатора отображаются внутри прямоугольника спецификатора. В одной строке может быть показано один или большее количество атрибутов. Атрибуты спецификатора имеют такую же нотацию, как и атрибуты класса, за исключением отсутствия начальных значений выражений.

Допускается (хотя это необходимо довольно редко) иметь спецификаторы на каждом конце одной ассоциации.

Варианты представления

Спецификатор не может быть опущен (он определяет важную особенность ассоциации, чье вычеркивание изменило бы свойство символа отношения).

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

Рекомендации по оформлению

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

Пример

Рисунок 20. Спецификаторы ассоциаций

Класс ассоциации

Семантика

Класс ассоциации является ассоциацией, которая кроме всего прочего имеет свойства класса (или класс, который содержит свойства ассоциации). Несмотря на то, что ассоциация и класс отображаются отдельно, они в действительности являются только одним элементом модели.

Нотация

Класс ассоциации отображается как символ класса (прямоугольник) присоединенный пунктирной линией к пути ассоциации. Название в символе класса и строка названия, присоединенная к пути ассоциации, являются избыточными и должны быть одинаковыми. Путь ассоциации может иметь обычные украшения на любом его конце. Символ класса может иметь обычное содержание. На пунктирной линии украшений нет.

Варианты представления

Символ класса может быть опущен (он определяет подробности подчиненности, чье вычеркивание, в общем, не изменяет отношение). Путь ассоциации не может быть опущен.

Рекомендации по оформлению

Точка присоединения не должна быть настолько близко к концам пути, что бы казаться присоединенным к концу пути или любому из украшений роли.

Заметим, что путь ассоциации и класс ассоциации являются одним элементом модели и поэтому имеют одно название. Название может отображаться на пути или на символе класса или на обоих. Если класс ассоциации имеет только атрибуты и не имеет операций или других ассоциаций, то название может быть показано на пути ассоциации и опущено в символе класса ассоциации, чтобы подчеркнуть его "ассоциативную сущность". Если он имеет операции или другие ассоциации, то название может быть опущено на пути и помещено в прямоугольнике класс, чтобы подчеркнуть его "классовую сущность". В обоих случаях нет действительных семантических различий.

Пример

Рисунок 21. Класс ассоциации

N-арные ассоциации