Перейти к содержимому

Спецификация варианта использования

Диаграмма вариантов использования хорошо показывает, кто и зачем взаимодействует с системой, но она почти ничего не говорит о деталях поведения. За овалом “Оформить заказ” или “Записаться на консультацию” может скрываться длинный процесс с предусловиями, альтернативами, исключениями и бизнес-правилами.

Спецификация нужна именно для раскрытия этого смысла. Она не заменяет диаграмму, а объясняет выбранный вариант использования в текстовой форме. После спецификации можно строить процессную модель, уточнять предметные объекты и проверять, какие требования покрываются.

Типовая структура спецификации:

ПолеЧто фиксируется
Названиекраткая цель в форме действия с результатом
Цельзачем актор начинает взаимодействие
Основной акторроль, которая инициирует сценарий
Заинтересованные лицакто зависит от результата
Триггерсобытие, запускающее взаимодействие
Предусловиячто должно быть истинно до начала
Основной сценарийобычный успешный поток шагов
Альтернативные сценариидопустимые варианты нормального выполнения
Исключительные сценарииошибки и ситуации, где цель не достигается полностью
Постусловиячто должно быть истинно после успеха
Минимальные гарантиичто сохраняется даже при неуспехе
Связанные требованиякакие требования покрывает вариант использования
Связанные бизнес-правилакакие правила применяются в сценарии

Спецификация особенно полезна для сложных целей, где одного названия недостаточно. Название “Оформить заказ” кажется понятным, пока не начинаются вопросы: кто может оформить заказ, какие данные нужны, когда заказ считается оформленным, что происходит при отсутствии товара, как обрабатывается ошибка оплаты, какие уведомления отправляются и какие правила ограничивают действие.

При этом спецификация не должна превращаться в техническое описание интерфейса, API или базы данных. На этом уровне важны действия участника, реакции системы, бизнес-условия и результат. Детали вроде эндпоинтов, SQL-запросов, контроллеров и таблиц появятся позже, когда сценарий будет переводиться в техническую модель.

Мини-пример для записи на консультацию:

ПолеЗначение
НазваниеЗаписаться на консультацию
Основной акторСтудент
ТриггерСтудент хочет выбрать время консультации
ПредусловияСтудент авторизован; у преподавателя есть открытые интервалы
ПостусловияСоздана активная запись; студент и преподаватель получили уведомления
Минимальные гарантииПри ошибке запись не создаётся, занятый интервал не блокируется
Бизнес-правилоНельзя создать две активные записи на одно и то же время

Спецификация отличается от сценария тем, что содержит не только последовательность шагов. Сценарий — это один путь выполнения внутри спецификации. У одного варианта использования может быть основной сценарий, несколько альтернативных и несколько исключительных потоков. Поэтому сначала фиксируется целостная карточка взаимодействия, а затем подробно описываются потоки.