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

Взаимодействия

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

Семантика

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

Нотация

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

Пример

Сотрудничества подчеркивающие взаимодействие смотри разделе Диаграммы Сотрудничества.

Роли сотрудничества

Семантика

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

Нотация

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

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

classRoleName : Classifiername

При необходимости (ПО обычно в случае однозначности разрешает пользоваться укороченными путями названия) название класса может включать полный содержащий пакеты путь названия. Названия пакетов предшествуют названию класса и разделены двойными двоеточиями. Например:

display_window: WindowingSystem::GraphicWindows::Window

Стереотип класса может показываться как текст (в русских кавычках (< >) над строкой названия) или как картинка в верхнем правом углу. Стереотип объекта должен соответствовать стереотипу класса.

Представляющая множество объектов роль класса включает индикатор множественности (такой как "*") в правом верхнем углу прямоугольника класса.

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

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

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

Название объекта может опускаться. В этом случае двоеточие перед названием класса должно сохраняться. Это представляет анонимный объект данного класса заданный в соответствии с его отношениями.

Класс объекта может быть опущен (вместе с двоеточием).

Пример

Смотри Рисунок 35.

Мультиобъект

Семантика

Мультиобъект представляет собой множество объектов на "множественной" цели ассоциации. Он используется для показа операций, которые адресуют скорее все множество, чем отдельный элемент из него. Базовая статическая модель не затрагивается такой группировкой. Это соответствует ассоциации с множественностью "много" используемой для доступа к множеству ассоциированных объектов.

Нотация

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

Выполнение операции для каждого объекта из множества ассоциированных объектов требует два сообщения: итерация над мультиобъектом для выделения связей к конкретным объектам, затем сообщение посылается к каждому индивидуальному объекту использую (временные) связи. На диаграмме мы можем это игнорировать, объединяя сообщения в одно сообщение, которое включает итерацию и применение к каждому конкретному объекту; чтобы показать, что подразумевается множество конкретных связей, к названию целевой роли присоединяется индикатор "множественности" (*). Хотя мы можем использовать одно сообщение, в базовой модели (и в любом реальном коде) требуется два вышеуказанных уровня структуры (итерация для поиска связей, применение сообщения к каждой связи).

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

Обычно сообщение выбора к мультиобъекту возвращает ссылку на конкретный объект, которому первоначальный отправитель посылает сообщение.

Пример

Рисунок 37. Мультиобъект