- •Методическое пособие для студентов «Построение кис в среде PowerDesigner с использованием языка uml»
- •PowerDesigner. Введение.
- •Лабораторная работа №1. Диаграмма классов (ClassDiagram) и Диаграмма Объектов (ObjectDiagram)
- •Лабораторная работа №2. Диаграммы прецедентов (Use-Case diagram)
- •Лабораторная работа №3. Диаграммы состояний (StateChart diagram)
- •Лабораторная работа №4. Диаграммы последовательностей (SequenceDiagram)
- •Лабораторная работа №5. Диаграммы коммуникации (Collaboration Diagram)
- •Лабораторная работа №6. Диаграммы видов деятельности (ActivityDiagram)
- •Лабораторная работа №7. Диаграмма компонентов (Component Diagram). Диаграмма развертывания (Deployment Diagram). Диаграмма пакетов
- •Лабораторная работа №8. Генерация отчетов в PowerDesigner
- •Лабораторная работа №9. Концептуальное и физическое моделирование данных (cdMиPdMмодели)
Лабораторная работа №2. Диаграммы прецедентов (Use-Case diagram)
Общее описание
Перед приобретением какого-либо продукта или системы, мы формируем список требований, которые желаем видеть в нашей покупке (например: возможности будущей системы, функции, которые она будет выполнять и т.д.), т.е. анализируем прецеденты (use-caseanalysis). Такой процесс играет особенно важную роль на этапе анализа системных требований. Способ использования системы пользователями определяет проектное решение, которое будет положено в ее основу.
Прецедент- это конструкция, позволяющая описать систему с точки зрения потенциальных пользователей.
Прецедент представляет собой набор сценариев использования системы. Каждый сценарий описывает последовательность действий. Каждая последовательность действий инициируется пользователем, другой системой, аппаратным средством или в какой-либо момент времени. Сущности, инициирующие сценарии, называются исполнителями (actor).
Результат прецедента должен быть полезен исполнителю, инициировавшему этот прецедент, либо какому-то другому исполнителю.
Прецедент заставляет потенциальных пользователей думать о системе со своих позиций. Пользователям не всегда легко выразить свои требования к системе. Основная идея - привлечь пользователей к разработке системы на ранних стадиях анализа и проектирования. Это повышает вероятность создания полезной системы, позволяет сконцентрироваться на мнении людей, а не на компьютерных понятиях, с которыми не могут работать реальные пользователи.
Лучший способ определения прецедентов - это опрос. При этом, важно выявить предусловия для инициализации прецедента и постусловия, реализуемые в результате выполнения прецедента.
Для аналитиков прецедент помогает определить способ использования системы. Для разработчиков - это полезный инструмент, предоставляющий надежную методику формирования требований к системе с точки зрения пользователя (заказчика).
Представление модели прецедентов:
Один исполнитель инициирует прецедент, а другой (возможно, инициатор, но необязательно) - получает новое качество от его реализации. Графически модель прецедентов представляется просто: эллипс соответствует прецеденту, а упрощенная фигурка представляет исполнителя. Инициирующий исполнитель находится слева от прецедента, принимающий исполнитель - справа. Взаимодействие исполнителя и прецедента обозначается с помощью сплошной соединительной линии.
При выполнении анализа прецедентов определяются границы системы и ее связь с окружающим миром. Исполнители обычно находятся вне системы, а прецеденты - внутри. Для обозначения границ системы используется прямоугольник, внутри которого указывается имя системы.
Исполнители, прецеденты и соединительные линии образуют модель прецедентов.
рис.3.10.
Построение в PowerDesigner
Рассмотрим построение прецедентов на примере модели автомата по продаже карт экспресс - оплаты:
Создайте диаграмму Use-Case.
Далее создайте 3 прецедента, используя инструмент Use-Case.Чтобы "сбросить" выбранный инструмент, выберите другой инструмент или нажмите на правую кнопку мыши. Чтобы изменить имя прецедента и другие свойства, нажмите два раза левой кнопкой мыши на объект. В открывшемся окне, в полеNameвведите Покупка карты, а в полеCodeвведите название объекта, которое затем будет использоваться в программном коде (BuyCard). Остальныеuse-caseпереименуйте в соответствии с таблицей 1:
Case_1 |
Покупка карты |
BuyCard |
Case_2 |
Заправка автомата |
Refuelling |
Case_3 |
Сбор денег |
GetMoney |
Создайте 6 исполнителей, нажав на кнопку actor. Переименуйте объекты в соответствии с таблицей 2:
Actor_1 |
Покупатель |
Customer |
Actor_2 |
Покупатель |
Customer |
Actor_3 |
Специалист по заправке |
Refueller |
Actor_4 |
Специалист по заправке |
Refueller |
Actor_5 |
Инкассатор |
Collector |
Actor_6 |
Инкассатор |
Collector |
Создадим взаимосвязи между объектами. Взаимосвязи могут идти в двух направлениях:
От исполнителя к прецеденту (Связь Primaryactor)
От прецедента к исполнителю (Связь Secondaryactor)
Создайте взаимосвязи от инициирующих исполнителей к прецедентам и от прецедентов к принимающим исполнителям с помощью инструмента Assosiation. Для этого подведите указатель к исполнителю, нажмите левую кнопку мыши и не отпуская подведите к прецеденту. Соедините объекты как показано на диаграмме:
рис.3.11.
Чтобы повторно использовать шаги одного прецедента в другом, применяется включение.В нашем примере тоже можно использовать включение. Рассмотримuse-caseЗаправка автомата и Сбор денег. Они оба начинаются с разблокирования и открытия автомата и заканчиваются закрытием и блокировкой. Прецедент Проникновение внутрь включает первые два шага, а Выход наружу - два остальных. Прецеденты Заправка автомата и Сбор денег включают в себя прецеденты Проникновение внутрь и Выход наружу. Графически включение обозначается в виде соединительной пунктирной линии со стрелкой, указывающей на тот класс, от которого зависит другой (вPowerDesignerиспользуется инструментDependency). В свойствах данного объекта необходимо в полеStereotype указать слово <<включает>>. Модель прецедентов с включением должна выглядеть следующим образом:
рис.3.12.
Можно расширить исходный (базовый) прецедент за счет добавления новых шагов. Данный тип взаимоотношений называется расширением. Расширение может происходить только на заданных точках последовательности шагов базового прецедента. Такие места называются точками расширения. Подобно включению, расширение отображается линией зависимости (пунктир со стрелкой) со стереотипом1<<расширяет>> (инструментDependency). Расширим прецедент "Заправка автомата": в отличие от равномерного пополнения запасов всех сортов сиропа, этот прецедент позволяет пополнять автомат с учетом спроса. Диаграмма выглядит следующим образом:
рис.3.13.
Задание для самостоятельной работы
Создайте модель прецедентов, которая описывала бы работу библиотеки, причем поиск книг осуществляется без помощи компьютера.
Проведите реинжиниринг данного процесса. Добавьте БД, в которой библиотекарь сможет искать нужную книгу, смотреть, где она лежит. Помимо БД книг, добавьте БД студентов, где будет храниться информация о каждом студенте и о книгах, которые он взял и должен отдать. Новая книга, добавляется к списку уже имеющихся у студента книг не вручную, а с помощью считывания штрих кода с книги.