- •Методические указания по проведению практических занятий по дисциплине Разработка и стандартизация программных средств и информационных технологий
- •Введение
- •Работа “Визуальное моделирование на этапах анализа и проектирования программного продукта”
- •1. Подготовка к созданию uml диаграмм в ms Visio
- •2. Создание диаграммы прецедентов использования
- •3. Создание диаграмм последовательностей
- •4. Создание диаграммы сотрудничества
- •5. Структурирование элементов модели с использованием пакетов
- •6. Создание диаграмм классов
- •7. Создание диаграммы состояний
- •8. Варианты индивидуальных заданий для самостоятельной работы:
- •Работа “Метрический анализ программ”
- •1. Объемные метрики Холстеда
- •2. Определение основных метрик Холстеда
- •3. Определение дополнительных метрик Холстеда
- •4. Топологические меры сложности
- •5. Цикломатическое число Мак-Кейба
- •6. Минимальное покрытие дуг графа
- •7. Базовые маршруты на основе цикломатического числа
- •8. Определение топологических мер сложности
- •Литература
- •Перечень рекомендуемых ресурсов Интернет
- •Оглавление
5. Структурирование элементов модели с использованием пакетов
В больших моделях целесообразно структурировать элементы модели, размещая их в разных пакетах. Для этого добавьте в пакет "Главный пакет" три новых пакета - "Границы", "Сущности" и "Управление". С помощью Проводника переместите классы "Выбор заказа" и "Детали заказа" в пакет "Границы", класс "Заказ" в пакет "Сущности", а классы "Менеджер заказов" и "Менеджер транзакций" - в "Управление". Обратите внимание на изменения произошедшие в Проводнике и на диаграммах.
Дополнительно особенности любого элемента модели можно обозначить с использованием стереотипа. Существует стандартизованный набор стереотипов с фиксированной семантикой, но в рамках отдельного проекта допускается использование новых стереотипов. Создайте три новых стереотипа Boundary, Entry и Control (верхнее меню Visio, раздел UML, операция Stereotypes) для спецификации типа класса, принадлежащего определенному пакету. Присвойте классам "Выбор заказа" и "Детали заказа" стереотип Boundary, классу "Заказ" стереотип Entry, а классам "Менеджер заказов" и "Менеджер транзакций" - Control. Обратите внимание на изменения произошедшие на диаграммах.
Структура модели в Проводнике к данному моменту должна иметь следующий вид.
6. Создание диаграмм классов
Создайте в "Главном пакете" диаграмму статической структуры (Static Structure Diagram), назовите ее "Главная диаграмма пакетов" и включите в диаграмму три созданных ранее пакета.
Создайте в "Главном пакете" диаграмму статической структуры (Static Structure Diagram), назовите ее "Главная диаграмма классов" и включите в диаграмму все созданные ранее классы. Аналогично создайте диаграммы классов каждого пакета, назовите диаграммы "Диаграмма классов 1" и т.д.
Выберем в качестве языка будущей реализации язык программирования C++. Это позволяет определить типы атрибутов классов и сигнатуры операций. В процессе определения атрибутов классов можно заметить, что класс "Заказ" может содержать несколько заказываемых товаров и у каждого из них могут быть свои собственные данные и поведение. В этом случае одну позицию заказа лучше рассматривать как объект отдельного класса. Назовем этот класс "Позиция заказа" и поместим этот класс в пакет "Сущности". Соответственно необходимо переделать диаграмму последовательности следующим образом (назовите новый вариант диаграммы "Последовательность 4").
После исправления диаграммы последовательности следует проверить правильность набора операций в каждом классе.
Доработайте "Главную диаграмму классов" в соответствии с рисунком, приведенным ниже. Для этого в начале необходимо добавить в пакет "C++ Data Types" два новых типа данных (Data Types) - String (строка) и Date (дата). После этого можно определить атрибуты и их типы, затем сигнатуры операций. Для ассоциаций между классами необходимо определить множественность и показать направление связи.
7. Создание диаграммы состояний
Проектируя класс "Заказ", можно заметить, что за поведением этого класса надо наблюдать. Многие требования к классу значительно изменяются при изменении состояния его экземпляра. Например, заказы, выполнение которых было приостановлено, ведут себя не так, как выполненные заказы, а те, в свою очередь, не так, как отмененные заказы. Чтобы убедиться, что проект удовлетворяет всем этим требованиям, целесообразно построить диаграмму состояний для класса "Заказ". С помощью этой диаграммы программисты смогут лучше понять, как надо писать код для этого класса.
Выделив класс "Заказ" в Проводнике вызовите контекстное меню и создайте для этого класса диаграмму состояний (Statechart Diagram), включите в диаграмму начальное, конечное, два обычных и составное (Composite) состояния. Переименуйте новые элементы модели в соответствии с рисунком.
Добавьте в "Диаграмму внутренних состояний" два состояния, переход с событием (Event) и переход с событием и условием выполнения (Guard expression), в соответствии с рисунком.
В соответствии со следующим рисунком, аналогично составьте "Диаграмму состояний", дополнив состояния действиями при входе в состояние (Entry actions), действиями при выходе (Exit actions) и/или внутренними переходами (Internal Transitions).