OpenU.Ru
Слот кооперации, описывающий ту роль,
которую играет в кооперации один из ее участников.
См. collaboration.
Семантика
В кооперации представлен образец взаимодействия между ее участниками - экземплярами
классов или типов данных. Роль классификатора -
это описание одного из участников кооперации. Каждая роль представляет собой
использование классификатора в отдельном, уникальном контексте. У одного классификатора
может быть несколько ролей, причем каждая из них будет обладать своим собственным
множеством отношений с другими ролями этой кооперации.
Роль - это не отдельный объект, а описание всего множества объектов, которые
могут принимать участие в данном месте в данном экземпляре кооперации. Каждый
раз при возникновении кооперации роли могут исполняться различными множествами
объектов и связей.
У роли классификатора должна быть указана ссылка на классификатор
(базовый) и множественность. С помощью базового
классификатора ограничивается тип объектов, которые могут играть данную роль.
Класс объекта может совпадать с базовым классификатором или быть его потомком.
Множественность указывает, сколько объектов может одновременно играть данную
роль в этом экземпляре кооперации.
Роль классификатора может иметь имя, хотя это не обязательно. Если при моделировании
используется множественная классификация, то у роли классификатора может быть
несколько базовых классификаторов.
Различные роли классификаторов соединяются между собой ролями в ассоциациях.
Объекты. В кооперации представлено множество объектов, которые взаимодействуют
для достижения определенной цели. Роль - это описание того, что делает один
объект (или множество объектов) для достижения этой цели. При этом объект является
прямым или непрямым экземпляром базового класса своей роли. В кооперации могут
участвовать не все объекты базового класса. С другой стороны, объекты одного
и того же класса могут играть сразу несколько ролей в одной и той же кооперации.
Нотация
Роль классификатора изображается с помощью символа класса (прямоугольника),
в котором указаны имя роли и имя. классификатора, разделенные двоеточием - ИмяРоли:БазовыйКласс.
Тем не менее роль не является объектом. Это классификатор, который может описывать
несколько объектов, участвующих в различных экземплярах кооперации.
В принципе имя роли или имя классификатора можно не указывать, однако при этом
двоеточие должно быть сохранено, иначе роль классификатора будет выглядеть на
диаграмме как обычный класс. Впрочем, если речь идет только о диаграммах кооперации,
то в них путаница невозможна, так как все участники кооперации являются ролями.
Для роли классификатора может быть указано подмножество всех черт классификатора
- атрибуты и операции, используемые в определенном контексте. Все прочие черты,
которые не используются в данном контексте, можно скрыть.
На рис. 49 показаны различные формы графического изображения роли классификатора.
Рис. 49. Роль классификатора
Стандартные элементы
destroyed (уничтожаемый), new (новый), transient (временный).