Добавление стереотипов к классам
1. Щелкните правой кнопкой мыши на классе OrderOptions диаграммы.
2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
3. В поле стереотипа введите слово Boundary.
4. Нажмите на кнопку ОК.
5. Щелкните правой кнопкой мыши на классе OrderDetail диаграммы.
6. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
7. В раскрывающемся списке в поле стереотипов теперь будет стереотип Boundary. Укажите его.
8. Нажмите на кнопку ОК.
9. Повторите этапы 1 - 4, связав классы OrderMgr и TransactionMgr со стереотипом Control, а класс Order - со стереотипом Entity.
Теперь диаграмма Классов должна выглядеть как на рисунке 9.
Объединение классов в пакеты
1. Перетащите в броузере класс OrderOptions на пакет Boundaries.
2. Перетащите класс OrderDetail на пакет Boundaries.
3. Перетащите классы OrderMgr и TransactionMgr на пакет Control.
4. Перетащите класс Order на пакет Entities.
Добавление диаграмм Классов к каждому пакету
1. Щелкните правой кнопкой на пакете Boundaries броузера.
2. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмму Классов).
3. Введите имя новой диаграммы - Main (Главная).
4. Дважды щелкните мышью на этой диаграмме, чтобы открыть ее.
5. Перетащите на нее из броузера классы OrderOptions и OrderDetail.
6. Закройте диаграмму.
7. Щелкните правой кнопкой на пакете Entities броузера.
8. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмму Классов).
9. Введите имя новой диаграммы - Main (Главная).
10. Дважды щелкните мышью на этой диаграмме, чтобы открыть ее.
11. Перетащите на нее из броузера класс Order.
12. Закройте диаграмму.
13. Щелкните правой кнопкой на пакете Control броузера.
14. В открывшемся меню выберите пункт New > Class Diagram (Создать >
15. Диаграмму Классов).
16. Введите имя новой диаграммы - Main (Главная).
17. Дважды щелкните мышью на этой диаграмме, чтобы открыть ее.
18. Перетащите на нее из броузера классы OrderMgr и TransactionMgr.
19. Закройте диаграмму.
Рис. 9. Стереотипы классов для варианта использования Ввести новый заказ.
Упражнение 4. Создание диаграмм классов (учет новых требований)
В упражнении 2 было создано несколько операций для классов нашей задачи. В предыдущем упражнении мы нанесли классы на диаграмму. В этом упражнении к описаниям операций будут добавлены детали, включая параметры и типы возвращаемых значений. Кроме того, у классов будут определены атрибуты.
Постановка задачи
После того, как была разработана диаграмма Классов для варианта использования "Ввести новый заказ", необхожимо заполнить ее подробностями. В качестве языка программирования был выбран С++, что позволило добавить к классам параметры операций, типы данных и типы возвращаемых значений.
Для определения атрибутов обратимся к потоку событий. В результате, к классу Order диаграммы Классов были добавлены атрибуты Order Number (номер заказа) и Customer Name (Имя клиента). Необходимо просмотреть также список заказываемых товаров. Так как в одном заказе можно указать большое количество товаров, и у каждого из них имеются свои собственные данные и поведение, необходимо моделировать их как самостоятельные классы, а не как атрибуты класса Order.
Чтобы привести модель в соответствие с новыми идеями, необхожимо обновить диаграмму Последовательностей, как показано на рисунке 10.
Рис. 10. Обновленная диаграмма Последовательностей.
Также были изменены требования:
"Необходимо отслеживать дату заказа и дату его выполнения. Кроме того, так как у нас появились новые поставщики, слегка изменилась процедура инвентаризации."
Сначала документировали новые требования относительно дат и рассматривали изменения в процедуре инвентаризации "на высоком уровне". Поскольку в данный работа ведется над вариантом использования "Ввести новый заказ", нас больше всего интересует, как эти процедурные изменения повлияют на данный вариант использования. Работа с вариантом использования "Провести инвентаризацию" была запланирована на следующий этап, тогда и позаботимся о деталях соответствующих процедур. Оказалось, что, хотя они чрезвычайно сильно повлияют на вариант использования "Провести инвентаризацию", но совсем не отразятся на варианте использования "Ввести новый заказ".
Новые требования, связанные с датами, привели к необходимости ввести пару новых атрибутов в класс Order. После этого модель опять стала соответствовать последним предъявленным к системе требованиям.