Создавать диаграммы взаимодействия будем для сценария "Добавить новый заказ" прецедента "Работа с заказом". В этом сценарии кроме основного потока существуют еще и альтернативные потоки. Хотя стандарт языка UML допускает ветвления на диаграммах последовательности и кооперации, мы, чтобы не загромождать наши диаграммы, ограничимся рассмотрением только случая, когда пользователь правильно вводит свой пароль, правильно заполняет необходимые поля и введенные данные без ошибок сохраняются в базе данных. В случае необходимости альтернативные потоки можно показать на дополнительных диаграммах последовательности и кооперации.
Диаграммы взаимодействия будем создавать в Логическом представлении браузера. Для того, чтобы отделить эти диаграммы от других (которые мы уже создали или создадим в дальнейшем), создадим вначале новый пакет в Логическом представлении - Диаграммы взаимодействия, в котором будут располагаться созданные далее диаграммы.
Построение любой диаграммы взаимодействия начинается с определения перечня объектов, которые будут участвовать во взаимодействии. Для выбранного сценария в лабораторной работе № 2 была разработана диаграмма классов. Экземпляры классов этой диаграммы и будут участниками диаграмм взаимодействия.
|
|
Примечание: Rational Rose позволяет, имея одну из двух типов диаграмм взаимодействия, создать вторую. Для этого необходимо открыть имеющуюся диаграмму взаимодействия и выбрать пункт меню Browse > Create Sequence (Collaboration) Diagram. Автоматически будет создана диаграмма второго типа с таким же именем, в том же пакете и с таким же содержимым, что и первая. Единственный недостаток этого приема - в созданной диаграмме элементы не будут автоматически выравниваться. Поэтому если исходная диаграмма достаточно большая, то в созданной диаграмме сложно будет разобраться, т.к. элементы могут налазить друг на друга.
В данной работе мы оба типа диаграмм взаимодействия будем строить с ноля.
Создание диаграммы последовательности для сценария "Добавить новый заказ" прецедента "Работа с заказом"
Для создания диаграммы последовательности необходимо щелкнуть правой кнопкой мыши по пакету Диаграммы взаимодействия и в появившемся меню выбрать пункт New > Sequence Diagram, ввести ее имя, после чего дважды щелкнуть по ней в браузере, чтобы открыть ее (рис. 1).
Рисунок 1. Создание диаграммы последовательности
Построение диаграммы последовательности начинается с размещения на ней объектов, которые будут обмениваться сообщениями. Сначала необходимо разместить объекты, которые посылают сообщения, а потом объекты, получающие их. Инициатором взаимодействия выступает актер Менеджер по работе с клиентами. Поэтому на диаграмме он будет находится в левом углу. Далее размещаем (рис. 2):
|
|
- объект класса OrderOptions (Параметры работы с заказом), отвечающий за выбор возможного действия с заказом в рассматриваемом прецеденте;
- объект класса AddNewOrder (Добавление нового заказа), отвечающий за добавление заказа;
- объект класса OrderManager (Менеджер по работе с заказами), отвечающий за обработку потока событий рассматриваемого прецедента;
- объект класса Order (Заказ);
- объект класса Client (Клиент);
- объект класса ComponentPart (Комплектующее изделие).
Рисунок 2. Расположение объектов на диаграмме последовательности
Теперь на диаграмме следует разместить сообщения, которыми будут обмениваться объекты (рис. 3):
Номер сообщения | Объект - отправитель сообщения | Объект - получатель сообщения | Название |
Менеджер по работе с клиентами | OrderOptions | ввод пароля | |
OrderOptions | OrderOptions | проверка пароля | |
Менеджер по работе с клиентами | OrderOptions | выбор операции "добавить" | |
OrderOptions | AddNewOrder | отображение полей ввода | |
Менеджер по работе с клиентами | AddNewOrder | выбор типа компьютера | |
AddNewOrder | OrderManager | получение списка клиентов | |
OrderManager | Client | получение списка клиентов | |
Client | AddNewOrder | список клиентов | |
AddNewOrder | AddNewOrder | отображение списка клиентов | |
Менеджер по работе с клиентами | AddNewOrder | выбор клиента | |
AddNewOrder | OrderManager | получение списка комплектующих | |
OrderManager | ComponentPart | получение списка комплектующих | |
ComponentPart | AddNewOrder | список комплектующих | |
AddNewOrder | AddNewOrder | отображение списка комплектующих | |
Менеджер по работе с клиентами | AddNewOrder | * выбор необходимых комплектующих | |
Менеджер по работе с клиентами | AddNewOrder | сохранить заказ | |
AddNewOrder | OrderManager | передача управления | |
OrderManager | Order | сохранить |
Рисунок 3. Итоговая диаграмма последовательности
Для отображения номера сообщения в Rational Rose необходимо в меню Tools > Options > вкладка Diagram поставить галочку возле надписи Sequence numbering.
Создание диаграммы кооперации для сценария "Добавить новый заказ" прецедента "Работа с заказом"
Для создания диаграммы кооперации необходимо щелкнуть правой кнопкой мыши по пакету Диаграммы взаимодействия и в появившемся меню выбрать пункт New > Collaboration Diagram, ввести ее имя, после чего дважды щелкнуть по ней в браузере, чтобы открыть ее (рис. 4).
Рисунок 4. Создание диаграммы кооперации
Построение диаграммы кооперации начинается с размещения на ней объектов, которые будут обмениваться сообщениями. Перечень объектов на данной диаграмме такой же, как и на предыдущей. Далее необходимо добавить на диаграмму связи между объектами, которые обмениваются сообщениями (рис. 5):
- Менеджер по работе с клиентами и AddNewOrder
- Менеджер по работе с клиентами и OrderOptions
- AddNewOrder и OrderOptions
- AddNewOrder и OrderManager
- AddNewOrder и Client
- AddNewOrder и ComponentPart
- OrderManager и Client
- OrderManager и ComponentPart
- OrderManager и Order
Рисунок 5. Объекты и связи на диаграмме кооперации
Последними на диаграмму кооперации добавляются сообщения между объектами. Перечень сообщений между объектами такой же, как и на диаграмме последовательности (рис. 6).
Рисунок 6. Итоговая диаграмма кооперации