Файл: Практическое задание № 2 Создание диаграммы классов и диаграмм взаимодействия.pdf
Добавлен: 15.11.2018
Просмотров: 2908
Скачиваний: 37
Практикум по
объектно-ориентированному
моделированию с помощью UML
Практическое задание №2
21
3.2.
Добавление диаграммы последовательности
Для создания новой диаграммы последовательности нужно выполнить
следующие шаги: щелкнуть правой кнопкой мыши по папке представления
Logical View в навигаторе модели, в контекстном меню выбрать пункт Add
Diagram, в списке выбрать диаграмму последовательности Sequence Diagram
(рисунок 3.6).
Рисунок 3.6 – Добавление диаграммы последовательности
Мы также можем использовать диаграмму последовательности для
детализации прецедента. Для этого нужно связать диаграмму с прецедентом: для
создания диаграммы щелкните правой кнопкой мыши по прецеденту, а не по
папке Logical View. Однако если строится диаграмма последовательности для
анализа системы, то лучше все-таки помещать ее в Logical View.
Пример. Мы уже определили классы сценария Оформление заказа,
теперь
с
помощью
диаграммы
последовательности
покажем,
как
взаимодействуют объекты этих классов во времени.
Для создания диаграммы последовательностей можно воспользоваться
методом перетаскивания. Если перетащить необходимый класс из навигатора
модели на диаграмму последовательности, то будет создан анонимный объект
этого класса. Можно изменить имя объекта или удалить, оставив только имя
класса (рисунок 3.7).
Рисунок 3.7 – Объект класса «Покупатель»
Практикум по
объектно-ориентированному
моделированию с помощью UML
Практическое задание №2
22
Составим диаграмму последовательности для случая, когда покупатель
успешно оформляет заказ (рисунок 3.8).
Действующее лицо Покупатель необходимо перетащить из диаграммы
прецедентов на диаграмму последовательности. Класс ОформлениеЗаказа
(PlaceOrder)
и последующие элементы также следует добавлять на диаграмму
последовательности методом перетаскивания классов уже созданных на
диаграмме классов.
Покупатель выбирает опцию «Оформить заказ» (Place order), при этом
вызывается некоторый объект PlaceOrder (это будет граничный объект,
принадлежащий соответствующему граничному классу).
Далее открывается форма ввода личных данных покупателя и его
кредитной карты (EnterPersonalInformation), на ней покупатель вводит свое
имя, адрес, телефон, адрес электронной почты (Enter personal information) и
кредитные данные.
Информация принимается и открывается форма подтверждения заказа
(ConfirmOrder), покупатель подтверждает, что согласен с реквизитами заказа
(Confirm order), детали заказа сохраняются для дальнейшего использования
(Save details). Фокус управления с помощью сообщения Place order
передается некоторому управляющему объекту (PlaceOrderManager), который
обращается к внешней кредитной системе для проведения платежа (сообщение
Validate credit). Элемент Кредитная система следует параллельно создать на
диаграмме прецедентов и использовать на диаграмме последовательности.
Если платеж прошел успешно (именно такой сценарий сейчас
рассматриваем), то PlaceOrderManager посылает сообщение (Create order)
создать объект Заказ (Order). Объект Заказ (Order) обращается к объектам
Товар (Item) для того, чтобы получить информацию о товарах и создает заказ.
Класс
PlaceOrderManage
вызывает
форму
подтверждения
заказа
(OrderConfirmation)
с помощью сообщения Display order. Процесс
завершается.
Практикум по
объектно-ориентированному
моделированию с помощью UML
Практическое задание №2
23
Рисунок 3.8 – Диаграмма последовательности сценария «Оформление заказа»
Замечание. Обратите внимание, что символ объекта Товар (Item) на
диаграмме последовательности отличается от символов других объектов. Дело в
том, что мы задали множественный экземпляр класса. Действительно, заказ
может состоять из нескольких товаров, значит объекту Заказ (Order) требуется
получить информацию о нескольких объектах Товар (Item).
Вместо того чтобы представлять каждый товар отдельно, мы используем
нотацию UML для множественного экземпляра класса, представляя одним
значком несколько объектов.
Чтобы сделать объект множественным в StarUML выделите объект,
щелкнув по нему мышью один раз, в открывшемся редакторе свойств поставьте
флажок в разделе IsMultiInstance (рисунок 3.9).
Рисунок 3.9 – Создание множественного объекта
Практикум по
объектно-ориентированному
моделированию с помощью UML
Практическое задание №2
24
3.3.
Взаимосвязь диаграмм классов и последовательности
Процесс построения модели системы является итеративным. Особенно
хорошо
это
можно
видеть
при
создании
диаграмм
классов
и
последовательности. Какую диаграмму создавать первой: классов или
последовательности? Одни разработчики начинают с диаграмм классов, другие
– наоборот, с последовательности. И в том и в другом случае, скорее всего, обе
эти диаграммы, построенные для одного сценария, будут в дальнейшем
подвергаться изменению. После построения диаграмм последовательности на
диаграммах классов могут появиться новые классы, а на диаграммах
последовательности – новые объекты, которых раньше там не было, но они
придут туда из диаграмм классов. Возможно, что некоторые объекты и классы
будут, напротив, удалены.
Замечание. Для создания диаграммы последовательностей, мы могли
каждый объект этой диаграммы создавать заново, а не пользоваться методом
перетаскивания.
3.4.
Добавление кооперативной диаграммы
Диаграмма кооперации – это альтернативный способ изображения
сценария варианта использования. Этот тип диаграмм заостряет внимание на
связях между объектами, отображая обмен данными в системе. А диаграммы
последовательности отображают взаимодействие объектов во времени, поэтому
ее следует читать сверху вниз и слева направо.
Диаграммы кооперации содержат все те же элементы, что и диаграммы
последовательности: объекты, действующие лица, связи между ними и
сообщения, которыми они обмениваются, но они уже не упорядочены во
времени.
Для того чтобы добавить диаграмму кооперации в представление Logical
View, щелкните правой кнопкой мыши по папке содержащей диаграмму
последовательности (если вы ее не переименовывали, то эта папка в навигаторе
носит имя Collaboration1), в контекстном меню выберите пункт Add Diagram, в
списке выберите диаграмму кооперации Communication Diagram (рисунок
3.10).
Практикум по
объектно-ориентированному
моделированию с помощью UML
Практическое задание №2
25
Рисунок 3.10 – Добавление кооперативной диаграммы
Рассмотрим пример для сценария Оформление заказа, для которого уже
составлена ранее диаграмма последовательности.
На созданной диаграмме кооперации следует поместить все те же объекты,
перетащив их из навигатора модели и назначить советующие сообщения-
операции (рисунок 3.11).
Рисунок 3.11 – Кооперативная диаграмма сценария «Оформление заказа»