
- •1. Знакомство с прецедентами
- •Что такое прецеденты
- •Зачем нужны прецеденты
- •Прецедент Покупка лимонада
- •Дополнительные прецеденты
- •Включение прецедента
- •Расширение прецедента
- •Анализ прецедента
- •2. Использование диаграмм прецедентов
- •Представление модели прецедента
- •Модель автомата по продаже лимонада
- •Отслеживание действий в сценариях
- •3. Визуализация взаимосвязей прецедентов
- •Включение
- •Расширение
- •Обобщение
- •Группировка
- •4. Роль диаграмм прецедентов в процессе анализа
- •5. Пример использования модели прецедентов
- •Изучение предметной области
- •Работа с пользователями
- •Описание прецедентов
- •Уточнение деталей
- •6. Резюме
- •Вопросы и ответы
- •Задание
Лабораторная работа по UML N3
«Диаграммы прецедентов»
1. Знакомство с прецедентами
Теперь, когда вы познакомились с классами и отношениями между ними, самое время сосредоточить внимание на еще одной важной области применения UML — прецедентах. В этом пункте будут рассмотрены следующие вопросы.
• Что такое прецеденты.
• Создание прецедента.
• Включение прецедента.
• Расширение прецедента.
• Анализ прецедента.
Ранее мы познакомились с диаграммами, обеспечивающими статическое представление классов в системе. Теперь перейдем к динамическому представлению и покажем, как система и ее классы изменяются во времени. Статическое представление позволяет проанализировать взаимодействие с клиентом. Динамическое представление, как мы убедимся далее, помогает анализировать взаимодействие с командой разработчиков, а также способствует созданию программ.
Клиент и команда разработчиков составляют группу заинтересованных лиц для данной системы. Но мы не учли еще одну важную составляющую общей картины — пользователя.
Ни статическое, ни динамическое представление не отображают поведения системы с точки зрения пользователя. Понимание его точки зрения — это ключ к построению системы. Система должна удовлетворять требованиям пользователя.
Моделирование системы с точки зрения пользователя — это задача прецедентов.
Что такое прецеденты
Несколько лет назад я купил факс. При его покупке в магазине офисной техники мне предложили множество модификаций. Как я выбрал нужный? Я спросил себя, что собираюсь делать с этим устройством. Какие возможности мне требуются? Какие функции мне абсолютно необходимы? Хочу ли я делать копии с помощью факса? Хочу ли я подключить его к компьютеру? Буду ли я использовать факс в качестве сканера? Нужна ли мне функция скоростной отправки факсов? Хочу ли я отличать обычные входные телефонные звонки от передачи сообщений по факсу?
Делая осознанную покупку, мы все оказываемся в подобном положении. Наши действия называются анализом прецедентов (use case analysis). Мы спрашиваем себя, как будем использовать тот или иной продукт или систему, в которую собираемся вложить деньги, и пытаемся найти то, что удовлетворяет нашим требованиям. Поэтому очень важно знать эти требования.
Такой процесс играет особенно важную роль на этапе анализа системных требований. Способ использования системы пользователями определяет ее проектное решение.
Прецедент — это конструкция, помогающая аналитику определить способ использования системы. Набор прецедентов описывает систему в терминах действий, выполняемых пользователем.
Рассматривайте прецедент как набор сценариев использования системы. Каждый сценарий описывает последовательность действий. Каждая последовательность действий инициируется пользователем, другой системой, аппаратным средством или в какой-либо момент времени. Сущности, инициирующие сценарии, называются исполнителями (actor). Результат этих действий должен быть полезен тому или другому исполнителю.
Зачем нужны прецеденты
Подобно тому, как диаграмма классов заставляет клиента думать о системе со своей точки зрения, прецедент заставляет потенциальных пользователей думать о системе со своих позиций. Пользователям не всегда легко выразить свои требования к системе. Поскольку обычно процесс разработки системы представлял собой бессистемную процедуру с кратким анализом, то пользователей несколько удивлял интерес к их мнению.
Основная идея заключается в том, чтобы привлечь пользователей к разработке системы на ранних стадиях анализа и проектирования. Это повышает вероятность создания полезной системы, позволяет сконцентрироваться на мнении людей, а не на компьютерных понятиях, с которыми не могут работать реальные пользователи.
Пример: автомат по продаже лимонада
Допустим, требуется разработать автомат по продаже лимонада. Чтобы узнать мнение пользователей, нужно опросить большое количество людей и узнать, как они будут использовать эту машину.
Поскольку основная функция автомата — продавать лимонад, то пользователи быстро расскажут вам о главном прецеденте Покупка лимонада. В обычной системе эти сценарии описываются в терминах взаимодействия с пользователями.