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