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

OpenU.Ru

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



association end (полюс ассоциации)

Полюс ассоциации - это структурная часть ассоциации, которая определяет, какой объект в ней участвует. Один и тот же объект может быть связан с несколькими полюсами одной ассоциации. Полюса ассоциации имеют четкое местоположение и в принципе не взаимозаменяемы. Взятые по отдельности, в отрыве от ассоциации, ее полюса не имеют никакого собственного значения.
См. association.

Семантика

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

aggregation (агрегация) Указывает, является ли присоединенный объект агрегатом или композитом. Перечисление со значениями {none, aggregate, composite}. Если значение отлично от none, ассоциация является либо агрегацией, либо композицией. По умолчанию используется значение none. Агрегацией или композицией может быть только бинарная ассоциация, при этом только один из ее полюсов является агрегатом или композитом.
Changeability (изменяемость) Указывает на возможность изменения множества связей, относящихся к определенному объекту. Перечисление со значениями (changeable, frozen, addOnly). По умолчанию используется значение changeable.
interface specifier (спецификатор интерфейса) Необязательное ограничение типа спецификации объекта, на который делается ссылка; классификатор (некоторые называют его ролью, но этот термин лучше здесь не использовать).
multiplicity (множественность) Возможное количество объектов, которое можно связать с другим объектом; как правило, выражается целым числом.
navigability (возможность навигации) Логическое выражение, указывающее на возможность прослеживания бинарной ассоциации для того, чтобы найти объект или множество объектов, ассоциированных с экземпляром класса. По умолчанию используется значение true (навигация возможна).
ordering (порядок) Указывает, упорядочено ли множество связанных объектов (и если да, то по возможности, каким образом). Перечисление со значениями (unordered, ordered). Для удобства проектирования можно добавлять сюда значение sorted.
qualifier (квалификатор) Список атрибутов, которые используются в качестве селекторов при нахождении связанных ассоциацией объектов.
rolename (имя роли) Имя полюса ассоциации, строка-идентификатор. Имя определяет ту роль, которую играет в данной ассоциации соответствующий класс. Это имя должно быть уникальным не только в данной ассоциации, но и среди прямых и унаследованных псевдоатрибутов (атрибутов и прочих имен ролей, видимых данному классу) исходного класса.
target scope (целевая область действия) Указывает на то, что соединяют связи - объекты или целые классы. Перечисление со значением (instance, classifier). По умолчанию используется значение instance (соединяются объекты).
visibility (видимость) Указывает, доступна ли связь другим классам, кроме находящегося на противоположном полюсе ассоциации. Обозначение видимости помещается на том полюсе ассоциации, который находится у целевого класса. Каждое направление имеет собственную видимость.

Нотация

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

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

aggregation (агрегация) Маленький не закрашенный ромб на полюсе агрегации; для композиции используется закрашенный ромб.
changeability (изменяемость) Пометки {frozen} или {addQnly} около целевого полюса ассоциации. Значение по умолчанию {changeable} часто опускается.
interface specifier (спецификатор типа интерфейса) Текстовый суффикс для имени роли - : тип.
multiplicity (множественность) Текстовая наметка у полюса ассоциации - min..max.
navigability (возможность навигации) Наконечник стрелки на конце маршрута ассоциации, показывающий возможность навигации в этом направлении. Если указатель возможности навигации отсутствует, то принято считать, что навигация возможна в обоих направлениях (так как нечасто возникает потребность ассоциации, в которой навигация вообще невозможна).
ordering (порядок) Текстовая пометка {ordered} возле целевого полюса ассоциации, которая обозначает упорядоченность списка экземпляров целевого класса.
qualifier (квалификатор) Маленький прямоугольник между концом маршрута и исходным классом. Прямоугольник содержит один или несколько атрибутов ассоциации - квалификаторов.
rolename (имя роли) Текстовая пометка у целевого полюса ассоциации.
target scope (целевая область действия) Указывает на то, что имя роли действительно в области действия класса. В противном случае - в области действия его экземпляра.
visibility (видимость) Один из символов видимости ("+", "#", "-"), стоящий перед именем роли.

Если у имени роли имеется сразу несколько указателей, они должны быть представлены в следующем порядке (начиная от полюса ассоциации), как изображено на рис. 23:
· квалификатор;
· символ агрегации или композиции;
· стрелка навигации.
Имена ролей и множественность должны стоять около самых полюсов ассоциации, так чтобы их невозможно было отнести к другой ассоциации. Вы можете помещать их с любой стороны маршрута ассоциации. Конечно, соблазнительно было бы ввести правило, по которому имена ролей и множественность следовало бы располагать с определенной стороны линии (по часовой или против часовой стрелки). Однако это было бы неудобно в тех случаях, когда диаграмма уже перегружена различными символами и указателями. Можно ставить имя роли и множественность по разные стороны одной и той же роли или же вообще писать их вместе: *employee.

Стандартные элементы

association (ассоциация), global (глобальный), local (местный), parameter (параметр), self (само-).

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