Проектирование на UML. Сборник задач - стр. 15
Сообщения (message), передаваемые в процессе взаимодействия, могут быть нескольких сортов: синхронный и асинхронный вызов операции, асинхронная отправка сигнала, создание и уничтожение экземпляра, и ответные (reply) сообщения. Передача сообщения между линиями жизни отмечается возникновением событий отправки и получения сообщения. Если отправитель или получатель находится вне взаимодействия, вместо него подставляется шлюз (gate).
Фрагмент взаимодействия (interaction fragment) является частью взаимодействия и включает множества разрешенных и запрещенных подпоследовательностей возникновений событий для всех или некоторых линий жизни.
Операторы взаимодействия (interaction operator) используются для изменения траекторий комбинированного фрагмента взаимодействия, состоящего из нескольких фрагментов. Определены операторы альтернативного выбора (alt), цикла (loop), параллельного возникновения событий фрагментов (par), условного выполнения (opt) и другие.
Спецификация исполнения (execution specification), отложенная на линии жизни, указывает на выполнение экземпляром классификатора соответствующего данной линии некоторого исполняемого поведения.
Вхождение взаимодействия (interaction use) служит для повторного использования взаимодействий, вместо фрагмента подставляется содержимое указанного взаимодействия.
ЗАДАЧИ
3.1. (см. решение в §11) Кооперация продажа Sale включает роли продавец Salesman и покупатель Customer.
а. Покажите, что продавец и покупатель могут взаимодействовать друг с другом.
б. Используя вхождения коопераций Sale, создайте модель кооперации продажи с посредником BrokeredSale, в которой покупатель взаимодействует с посредником Broker, а посредник как покупатель взаимодействует с продавцом.
3.2. Моделируется серверная часть веб-приложения интернет-магазина, построенного на основе паттерна Model-View-Controller (MVC). Взаимодействие между ролями Model, View и Controller отобразим на диаграмме последовательности.
а. Разместите на диаграмме роли Controller, Model, а также роль типа ORM с именем db. Синхронное найденное сообщение postBuy (purchase) приходит на линию жизни Controller. После этого Controller посылает Model синхронное сообщение addPurchase (purchase). В ответном сообщении Model возвращает объект purchaseDetails.
б. Реализуем на диаграмме поведение Model в ответ на сообщение addPurchase. Model посылает синхронное сообщение addPurchase (purchase) линии жизни db. Затем открывается фрагмент alt. При условии purchase.needDeliveryModel посылает сообщение