Руководство по Use Cases

в 17:08, , рубрики: use cases, аналитика, сценарии использования
use cases

use cases

Основные понятия Use Case и их роль в анализе требований

Use Case (сценарий использования) – это метод описания взаимодействия пользователя (или другого актора) с системой для достижения определённой конкретной цели. Проще говоря, Use Case описывает, кто и что делает с системой (или что система делает в ответ), чтобы пользователь получил нужный результат.

В контексте анализа требований Use Case выполняют важную роль: они переводят разрозненные требования в последовательность действий и реакций системы, понятную для всех участников проекта. Таким образом, Use Case помогает:

  • Сформировать общее видение продукта. Сценарии использования дают целостное представление о том, как система должна функционировать и какие задачи решать​. Они очерчивают границы системы (что входит в её функциональность, а что нет).

  • Дать команде единое понимание функциональных требований. Use Case фокусируется на том, что должна делать система, не уходя в детали реализации​. Это понятное описание функциональных требований, которое разработчики могут использовать для проектирования, а тестировщики – для создания тест-кейсов.

  • Ускорить подготовку тестов. Чётко сформулированные сценарии использования позволяют тестировщикам быстро составлять сценарии тестирования, экономя время на анализ требований.

  • Отследить соответствие системы потребностям. Каждый Use Case привязан к определённой бизнес-цели или потребности пользователя. Это облегчает проверку того, что реализованная функциональность действительно решает поставленную бизнес-задачу.

  • Служить основой для технической детализации. Use Case можно рассматривать как скелет, на который затем накладываются подробности реализации. На основе сценариев использования легче разрабатывать технические спецификации и уточнять требования по мере необходимости​.

Таким образом, Use Cases являются эффективным инструментом структурирования функциональных требований через пользовательские сценарии​. В отличие от простых списков требований, сценарии использования описывают требования в динамике, показывая взаимодействие акторов с системой шаг за шагом. Это повышает ясность требований и снижает риск недопонимания между аналитиками, заказчиками и командой разработки.

Пошаговый процесс создания Use Case (от бизнес-требований до сценария)

Создание Use Case – это итеративный процесс, начинающийся с анализа бизнес-требований и завершающийся оформлением детальных сценариев.

Ниже представлен последовательный процесс разработки Use Case:

  1. Анализ бизнес-требований и определение границ. Начните с изучения бизнес-требований (Business Requirements) – что хочет получить бизнес​. Определите границы системы: какие функции и процессы входят в рамки разрабатываемой системы, а какие остаются вне её​. Это помогает сфокусироваться на релевантных пользователю задачах и отсеять лишнее.

  2. Выделение акторов (пользователей и внешних систем). Определите, кто будет взаимодействовать с системой. Акторы – это пользователи или внешние системы, инициирующие действия​. Перечислите всех основных акторов: например, "Покупатель", "Администратор", "Система оплаты", и т.д. Для каждого актора желательно указать его роль или интерес.

  3. Определение целей акторов (кандидаты на Use Case). Для каждого актора выясните его цели при работе с системой – что он хочет достичь​. Каждая уникальная цель пользователя, требующая взаимодействия с системой, станет отдельным Use Case. На этом шаге полезно составить перечень потенциальных вариантов использования (названия сценариев), например: “Оформить заказ”, “Регистрация пользователя”, “Просмотр отчёта” и т.д. Названия сценариев обычно записываются кратко в формате глагол + существительное, отражая цель (например, "Добавить товар в корзину", "Выписать счёт")​.

  4. Приоритезация и отбор Use Case. Если целей и сценариев много, оцените их приоритет с точки зрения бизнеса и пользователей. Сконцентрируйтесь сначала на сценариях, реализующих ключевые бизнес-требования и ценность для пользователя. Убедитесь, что выбранные Use Case покрывают все важные функции, заявленные в требованиях.

  5. Определение предпосылок и условий начала. Для каждого Use Case уточните начальные условия: что уже должно быть выполнено или в каком состоянии находится система до запуска сценария. Такие условия называют предусловиями (preconditions) или начальным состоянием. Например, для сценария "Оформить заказ" предусловием может быть "В корзине есть хотя бы один товар", а для сценария "Добавить отзыв" – "Пользователь авторизован в системе". Также определите триггер – событие или действие, с которого начинается сценарий (например, "Пользователь нажал кнопку 'Заказать'").

  6. Разработка основного успешного сценария (Happy Path). Теперь пропишите основной (успешный) сценарий – последовательность шагов, в результате выполнения которых актор достигает поставленной цели. Основной сценарий описывает типичное развитие событий без ошибок и исключений. Каждый шаг необходимо описывать чётко и последовательно, нумеруя шаги для удобства ссылки. На каждом шаге указывайте: действие актора и реакцию системы​.

    Например:

    1. Пользователь нажимает кнопку "Добавить в корзину". 
    2. Система добавляет выбранный товар в корзину и отображает индикатор количества товаров​.
    3. Пользователь переходит в корзину.
    4. Система открывает страницу корзины с добавленным товаром​.

    Такой формат "пользовательское действие – реакция системы" следует соблюдать на протяжении всего сценария. Это гарантия, что сценарий отражает полный диалог между пользователем и системой, а не только односторонние действия. Важно: формулируйте действия пользователя как конкретные физические действия (нажать кнопку, ввести данные и т.д.), а не результаты этих действий​. Например, вместо "пользователь добавил товар в корзину" правильнее написать "пользователь нажимает кнопку 'Добавить в корзину'"​.

  7. Разработка альтернативных сценариев. Проанализируйте каждый шаг основного сценария с точки зрения вопроса "что, если...". Если на каком-то шаге возможны альтернативные исходы или варианты действий, оформите их как альтернативные сценарии​. Альтернативный сценарий описывает ответвление от основного потока событий при выполнении определённого условия (например, "если введены некорректные данные – сценарий А1: система выводит сообщение об ошибке..."). Каждый альтернативный поток также описывается последовательностью шагов. Принято нумеровать альтернативные сценарии и указывать, на каком шаге основного они ветвятся (например, Альтернативный сценарий 1 на шаге 3). Важно: не делайте вложенные альтернативы – каждый альтернативный сценарий должен относиться к исходному основному потоку, а не к другому альтернативному.

  8. Проработка негативных (исключительных) сценариев. Отдельно рассмотрите негативные сценарии – ситуации, когда цель не может быть достигнута из-за ошибок, отказов или неверных действий. Фактически, негативные сценарии – это частный случай альтернативных, где развитие событий приводит к неуспеху или прерыванию процесса. Например, негативный сценарий для процесса авторизации: "пользователь вводит неверный пароль, система отображает сообщение об ошибке, авторизация не выполнена" – цель не достигнута, процесс завершается с ошибкой. Описывайте негативные пути аналогично альтернативным: условие (ошибка) и последовательность действий по его обработке (сообщения об ошибках, откаты транзакций и т.п.). Учтите, что альтернативные и негативные сценарии не заменяют основной, а дополняют его, делая описание полным.

  9. Определение конечного состояния и результатов. Уточните, что считается завершением сценария и каким становится состояние системы после выполнения Use Case. Конечное состояние (постусловия) описывает, что достигнуто при успешном сценарии (например, "заказ оформлен и сохранён в базе, пользователю показана страница подтверждения")​. Если сценарий прерывается (негативный исход), конечное состояние может быть описано как "цель не достигнута, система возвращается в исходное состояние". Чёткое указание постусловий помогает понять, какие изменения произошли в системе в результате сценария.

  10. Валидация и согласование. После описания каждого сценария полезно провести ревью: обсудить Use Case с командой, бизнес-заказчиком, заинтересованными сторонами. Проверьте, что сценарий логичен, полон и соответствует требованиям​. Убедитесь, что не упущены важные альтернативы или условия. На этом этапе можно обнаружить пропущенные шаги или лишние допущения. При необходимости скорректируйте сценарий.

  11. Прослеживаемость к требованиям. Свяжите каждый Use Case с исходными бизнес-требованиями и системой требований. В конце описания сценария указывайте ссылки на соответствующие требования – например, ID требований в спецификации (BRD, SRS) или пользовательские истории, которые покрывает данный сценарий. Это облегчает проверку полноты реализации и позволит в дальнейшем быстро понять, зачем нужен тот или иной сценарий.

  12. Документирование и поддержка. Оформите финальный вариант Use Case в согласованном шаблоне (о шаблоне – далее) и сохраните в репозитории документации. Обеспечьте доступ для команды. Важно поддерживать актуальность: при изменении требований оперативно обновляйте Use Case​, чтобы документация не расходилась с реализованной системой.

Следуя этим шагам, вы постепенно трансформируете бизнес-требования в понятные сценарии взаимодействия пользователя с системой. В итоге каждый Use Case отвечает на вопросы: кто является инициатором, зачем (какую цель преследует), что происходит при взаимодействии, и каков результат.

Шаблон описания Use Case (структура и содержание)

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

  • Название Use Case: Короткое и понятное название сценария. Обычно формулируется как "Глагол + существительное", отражая действие и цель (например, "Оформление заказа""Регистрация пользователя"). Название должно сразу давать понимание, какую задачу решает сценарий. Например: UC-3: Добавление товара в корзину.

  • Описание (краткое описание сценария): Небольшой абзац, описывающий суть варианта использования. Здесь можно указать цель сценария (что пытается достичь пользователь) и общий контекст. Например: "Данный Use Case описывает процесс регистрации нового пользователя в системе для получения доступа к персональному кабинету." Краткое описание помогает быстро понять, о чём этот сценарий, не вдаваясь в подробные шаги.

  • Акторы: Список всех участников сценария. В первую очередь указывайте основного актёра – того, кто инициирует сценарий (например, "Покупатель"). Также перечислите вторичные акторы (если есть) – другие пользователи или системы, участвующие в процессе. Например, вторичным актором может быть внешняя платёжная система, если в сценарии происходит обмен данными с ней. Указание акторов явно показывает, кто взаимодействует с системой в данном случае​.

  • Требования/Связанные требования: Здесь перечисляются функциональные требования, бизнес-правила или User Story, которые покрывает данный Use Case. По сути, это ссылки на требования, реализуемые через сценарий. Например: FR-1.1 (Система должна предоставить форму регистрации пользователя), BR-5 (Требование бизнеса: возможность онлайн-регистрации клиентов). Такая секция обеспечивает прослеживаемость (traceability) – каждый сценарий привязан к исходным требованиям.

  • Начальное состояние (Предусловия): Описание состояния системы до начала выполнения сценария​. Предусловия – это условия, которые должны выполняться, чтобы Use Case имел смысл. Например: "Пользователь находится на странице входа. Пользователь не авторизован." или "В системе существуют товары, доступные для заказа" – в зависимости от сценария. Если предусловия не выполнены, сценарий не может быть инициирован. Здесь же можно указать и триггер запуска, если это внешнее событие; например: "Пользователь выбрал опцию 'Регистрация' из меню". Предусловия не описывают шаги сценария, а лишь задают контекст и стартовые данные.

  • Основной успешный сценарий: Последовательность шагов, в результате которой пользовательская цель достигается. Этот раздел часто оформляют в виде пронумерованного списка действий: попеременно действия акторов и системы, ведущие к успешному исходу​. Каждый шаг должен быть чётко сформулирован: что делает пользователь и как реагирует система. Основной сценарий описывает “счастливый путь” (happy path) – то есть ситуацию, когда всё идет правильно и ни одна ветвь не отклоняется от нормы​.

    Пример фрагмента основного сценария:

    1. Покупатель нажимает кнопку "Оформить заказ".

    2. Система проверяет, что корзина не пуста и пользователь авторизован.

    3. Система отображает форму ввода данных для доставки.

    4. Покупатель заполняет обязательные поля формы и подтверждает заказ.

    5. Система сохраняет заказ и показывает страницу подтверждения с номером заказа.

    Обратите внимание: шаги пишутся от третьего лица в настоящем времени, без имен конкретных людей – только роли (актор, система). Это стандартная форма изложения сценария.

  • Альтернативные сценарии: Все предусмотренные ответвления (варианты) от основного потока, при которых развитие событий отличается, но цель может быть в итоге достигнута другим способом. Альтернативные сценарии обычно возникают из условий "если/иначе" на определённых шагах основного сценария​. 

    Для каждого альтернативного сценария укажите:

    • Номер и точка ветвления: например, "Альтернативный сценарий 1: на шаге 4 основного сценария".

    • Условие: описание условия или события, при котором используется этот альтернативный путь (например, "если пользователь выбрал самовывоз вместо доставки").

    • Шаги альтернативного сценария: пронумерованные действия пользователя и системы, происходящие в рамках данной альтернативы​. Шаги можно нумеровать вложенно (например, 4.1, 4.2 ... если ответвление от шага 4), либо отдельной секцией.

    • Возврат или завершение: указание, как альтернативный поток возвращается в основной (например, "далее сценарий продолжается с шага 5 основного сценария")​ либо как завершается, если это независимый исход.

    Пример альтернативного сценария: "Альт. сценарий 1: Непрохождение валидации данных (ветвление от шага 3 основного сценария): 3.1. Система отображает сообщение об ошибке ввода и подсвечивает неверные поля. 3.2. Пользователь вводит корректные данные и отправляет форму повторно. Далее сценарий возвращается к шагу 4 основного сценария."​.

    Альтернативные сценарии позволяют учесть различные варианты использования системы (например, разные опции или условия), не усложняя основной поток.

  • Негативные сценарии (исключения): Описания ситуаций, когда цель не достигается из-за ошибочных действий или сбоев. Обычно негативные сценарии представляют собой особые случаи альтернатив. Выделение их в отдельный раздел подчёркивает внимание на обработке ошибок и исключений. Формат описания такой же: условие ошибки и дальнейшие шаги системы/пользователя. Например: "Негативный сценарий: Сбой оплаты. 5.1. Система не получает подтверждения оплаты от платёжного шлюза в течение 30 сек. 5.2. Система отображает сообщение 'Не удалось завершить оплату. Попробуйте позже.' 5.3. Система отменяет оформление заказа (возврат к состоянию корзины).". Негативные сценарии гарантируют, что вы продумали реакцию системы на неожиданные ситуации (отказы, неверные данные), и пользователь получит понятное сообщение или систему в консистентном состоянии.

  • Конечное состояние (Постусловия): Состояние системы после выполнения сценария (будь то успешного или альтернативного/негативного)​. Постусловия описывают, что изменилось в системе. Для успешного сценария – какая ценность создана: например, "заказ сформирован в системе и сохранён в базе; пользователю отправлено email-подтверждение" или "новый пользователь зарегистрирован и может войти в систему". Для прерванного сценария – что произошло: "система откатила транзакцию, данные не сохранены" или "пользователь остался на форме ввода с сообщением об ошибке" и т.д. Постусловия тесно связаны с критериям успеха сценария.

  • Критерии приемки: Явные критерии, по которым можно судить, что сценарий реализован правильно и цель достигнута. По сути, это набор условий, которые должны быть выполнены, чтобы заказчик принял реализацию сценария. Критерии приемки часто пересекаются с постусловиями и результатами, но формулируются с точки зрения проверки/теста. Например, для сценария регистрации: "Новый пользователь появляется в системе, данные сохранены верно; Пользователь получает письмо с подтверждением регистрации; Недоступные для незарегистрированного пользователя разделы становятся доступными после входа." Критерии приемки можно писать списком, и в идеале они должны быть проверяемы (по сути, это могут быть основой приемочных тестов).

  • Связь с бизнес-требованиями: Ссылка на высокоуровневые бизнес-требования или цели, которым соответствует данный Use Case. Здесь указывают ID или описание бизнес-требования (из бизнес-документации, Vision/BRD). Например: "BR-5: Увеличение базы зарегистрированных клиентов через онлайн-регистрацию" – для сценария регистрации пользователя. Это помогает увидеть, какую бизнес-ценность несёт сценарий, и убедиться, что ни одно важное требование не потеряно.

Примечание:

В некоторых шаблонах могут быть и дополнительные поля, например: Область действия (Scope) – границы системы для данного сценария, Уровень (например, бизнес-UseCase или пользовательский, уровень цели), Частота использования (часто/редко выполняется), Особые требования (Special requirements, например, нефункциональные требования, связанные со сценарием). Включайте их при необходимости. Однако перечисленные выше разделы являются основными и достаточными для полноценного описания варианта использования.

Пример оформления Use Case: Рассмотрим упрощенный пример для наглядности. Сценарий – "Регистрация нового пользователя". Ниже приведены основные поля такого Use Case в кратком виде:

Название

UC-1. Регистрация нового пользователя

Описание

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

Акторы

Незарегистрированный пользователь (основной), Система (как участник взаимодействия).

Начальное состояние

Пользователь находится на странице регистрации. Пользователь не имеет учётной записи.

Триггер

Пользователь решил создать новую учётную запись (нажал "Регистрация").

Успешный сценарий

1. Пользователь заполняет форму регистрации (имя, email, пароль) и отправляет её.
2. Система проверяет корректность введённых данных (формат email, сложность пароля и т.д.).
3. Система сохраняет нового пользователя в базе данных.
4. Система отправляет письмо с подтверждением регистрации на email пользователя.
5. Система отображает пользователю сообщение об успешной регистрации и инструкции по подтверждению аккаунта.

Альтернативный сценарий

(Альт.1: Email уже зарегистрирован, ветвление от шага 2)

2a. Система обнаруживает, что указанный email уже существует.
2b. Система отображает сообщение "Пользователь с таким email уже зарегистрирован" и предлагает восстановить пароль.
2c. Сценарий завершается неуспешно: регистрация не выполнена (пользователь может либо закрыть форму, либо инициировать восстановление пароля).

Негативный сценарий

(Негативный: Ошибка сети при отправке формы)

1a. Система не получила данные формы из-за сбоя сети.
1b. Система выводит пользователю сообщение "Ошибка соединения. Повторите попытку позже."
1c. Сценарий прерван: пользователь не зарегистрирован.

Конечное состояние

При успешном сценарии – новый пользователь создан в системе, учётная запись в статусе "требуется подтверждение email".При альтернативном/негативном – новый пользователь не создан (система без изменений).

Критерии приемки

Пользователь с уникальным email может успешно зарегистрироваться и его данные сохраняются.Система проверяет валидность email и пароля; при ошибках показывает понятные подсказки.Пользователь получает email с подтверждающей ссылкой.

Связанные требования

BR-1.2 "Предоставить возможность саморегистрации новых клиентов на портале".

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

(Для сравнения, пример текстового Use Case регистрации на сайте можно найти и в других источниках. Например, в одном источнике основной сценарий регистрации включает шаги: «1. Пользователь кликает 'Регистрация' → 2. Система открывает форму → 3. Пользователь заполняет данные → 4. Система проверяет и сохраняет данные, отправляет письмо → 5. Пользователь переходит по ссылке из письма → 6. Система активирует аккаунт» и результат: «пользователь создан и активирован»​.)

Инструменты для моделирования диаграмм процессов (BPMN)

Для наглядного представления процесса, описанного в Use Case, часто используется диаграмма бизнес-процесса BPMN (Business Process Model and Notation). BPMN-диаграмма позволяет графически показать последовательность шагов сценария, точки ветвления, взаимодействие участника и системы, и тем самым дополняет текстовое описание. Разработано множество инструментов, позволяющих моделировать такие диаграммы. Вот некоторые популярные средства для создания BPMN-диаграмм:

Наименование

Описание

Draw.io (Diagrams.net)

Популярный бесплатный онлайн-редактор диаграмм общего назначения. Позволяет создавать BPMN-схемы вручную, имеет библиотеку символов BPMN. Простой в использовании, не требует установки. Есть версия для локальной установки, а также плагин для VSCode.

Camunda BPMN.io / Cawemo

Бесплатные веб-инструменты от Camunda для рисования BPMN. Например, Online BPMN (https://demo.bpmn.io) – простой онлайн-редактор диаграмм​, а Cawemo – облачный инструмент для совместной работы с диаграммами​.

Storm BPMN

Отечественный веб-редактор (storm.bpmn2.ru), созданный энтузиастами BPMN в России. Обладает автопроверкой корректности схем и возможностью командной работы​.

Bizagi Modeler

Мощный бесплатный десктоп-редактор для моделирования процессов. Поддерживает BPMN 2.0 нотацию, предлагает множество готовых элементов.

Microsoft Visio

Известный инструмент для диаграмм (настольное приложение). Имеет шаблоны для BPMN, поддерживает широкий набор нотаций​. Широко используется в корпоративной среде.

ARIS Express

Бесплатный инструмент для моделирования от Software AG. Поддерживает BPMN, EPC и др. Хорош для освоения нотации и личного использования.

Lucidchart, Visual Paradigm Online и аналогичные

Облачные инструменты для совместного создания диаграмм. Имеют удобный интерфейс для рисования BPMN-схем в браузере​. Freemium-модели: базовый функционал бесплатен, расширенный — по подписке.

Прочие

Enterprise Architect, StarUML, IBM Blueworks Live, Business Studio, и т.д. – более профессиональные CASE-средства, которые также поддерживают BPMN-нотацию наряду с UML и другими видами моделей.
Их выбор зависит от масштабов проекта и корпоративных стандартов.

При выборе инструмента учитывайте требования проекта: нужна ли совместная работа онлайн, важна ли автоматическая валидация схем, необходим ли экспорт в исполняемые модели (BPMN можно даже исполнять в BPM-системах)​. Для целей системного анализа и документирования требований обычно достаточно простых визуальных редакторов.

Рекомендация: Независимо от выбранного инструмента, старайтесь придерживаться единообразия в нотации и не усложнять диаграммы лишними деталями. BPMN-диаграмма должна быть понятна бизнес-пользователям без глубоких знаний моделирования​. Например, для описания сценария на уровне требований обычно достаточно показать основной поток (happy path) и ключевые альтернативы (аналитический уровень модели)​. Слишком перегруженная символами схема может сбить с толку читателей. Соблюдайте простые правила: называйте действия глаголом в связке с существительным (например, "Проверить платеж", "Отправить уведомление")​, подписывайте развилки (шлюзы) понятными метками условных ветвей ("Да"/"Нет"), явно отмечайте начало и конец процесса (стартовое и конечное события). Тогда BPMN-диаграмма станет ценным дополнением к описанию Use Case, позволяя быстро воспринять логику сценария.

(Примечание: BPMN-диаграмма не является обязательной частью каждого Use Case, но часто включается в документацию для наглядности. Вы можете помещать изображение диаграммы рядом с текстовым описанием сценария в документе.)

Рекомендации по написанию качественных Use Case

Чтобы сценарии использования получились понятными, полными и полезными, следуйте ряду рекомендаций, выработанных практикой:

  • Используйте простой, понятный язык. Избегайте жаргона и сложных технических терминов, если в них нет крайней необходимости​. Пишите так, чтобы содержание понял даже неспециалист. Цель Use Case – коммуникация между всеми участниками (заказчиками, разработчиками, тестировщиками), поэтому ясность превыше всего.

  • Фокус на цели пользователя. Постоянно помните, какую потребность пользователя вы описываете​. Сценарий должен отражать реальную задачу, которую пользователь решает с помощью системы. Не увлекайтесь описанием внутренних процессов системы – удерживайте перспективу от лица пользователя (или внешнего актора).

  • Оптимальная степень детализации. Описывайте сценарий на общем функциональном уровне, избегая как избыточной детализации, так и чрезмерной абстракции​. Каждый шаг должен не упускать важные взаимодействия, но и не погрязать в тривиальных мелочах. Например, вполне достаточно шага "Пользователь вводит платежные данные", не нужно расписывать, как он фокусируется на каждом поле ввода. С другой стороны, не следует описывать весь процесс покупки от регистрации до оформления заказа одним размытым шагом – конкретика необходима.

  • Конкретность и последовательность. Формулируйте шаги чётко: кто что делает. Избегайте неопределённых выражений. Лучше написать "Система отображает ошибку валидации, если email уже зарегистрирован", чем "Выдаётся сообщение при ошибке" – во втором случае не ясно, кто выдаёт и при каком условии. Соблюдайте логическую последовательность шагов, чтоб не было скачков или противоречий во времени.

  • Полнота сценария. Убедитесь, что вы описали все важные варианты развития событий. Для этого и служат альтернативные и исключительные потоки. Не останавливайтесь только на "счастливом" пути – продумайте, как система реагирует на ошибочные ситуации, альтернативные выборы пользователя и т.д. Частая ошибка – забыть про расширения и альтернативы​.

  • Контекст перед сценарием. Перед описанием шагов дайте необходимый контекст: предусловия, описание ситуации, роль пользователя​. Это помогает читателю сразу погрузиться в нужную обстановку и понять предпосылки. Без контекста сценарий может быть двусмысленным.

  • Не привязывайтесь к UI-деталям. Хоть и важно описывать физические действия пользователя, не уходите глубоко в детали интерфейса (расположение кнопок, цвет и пр.). Use Case концентрируется на логике взаимодействия, а не на дизайне. Если в тексте слишком много конкретики про интерфейс (как в поле "Ошибка №3" ниже), его труднее поддерживать при изменениях UI​. Лучше ограничиться упоминанием ключевых элементов (нажать кнопку "OK", ввести пароль) без описания макета экрана. Детали UI/UX могут быть вынесены в прототипы или отдельные спецификации.

  • Единый формат для всех Use Case. Придерживайтесь одного шаблона и стиля оформления для всего документа. Это значит: одинаковый набор разделов, единый стиль нумерации и формулировок​. Если вы решили, что пишете от третьего лица в настоящем времени – делайте так везде. Если используете определённые термины – используйте их последовательно. Единообразие облегчает чтение и сравнительный анализ сценариев.

  • Нумеруйте шаги и разделы. Нумерация шагов основного сценария обязательна – на неё будут ссылаться альтернативные потоки и требования тестов. Также нумерация (или кодировка) самих Use Case (UC-1, UC-2, ...) упрощает ссылку на них в других документах. Отсутствие чёткой структуры с номерами – распространённая ошибка, затрудняющая работу с документом​.

  • Актуальность документа. Следите, чтобы Use Case оставались актуальными. Если в функциональность внесли изменения, сценарий должен быть обновлён​. Устаревший сценарий хуже, чем его отсутствие, так как вводит в заблуждение. Внедрите процесс ревизии: например, после спринта или релиза проверять соответствие реализованного функционала описанным Use Case.

  • Ревью и привлечение команды. Привлекайте к проверке сценариев коллег – бизнес-аналитиков, разработчиков, тестировщиков. Свежий взгляд поможет найти неточности или упущенные моменты. Кроме того, совместное обсуждение Use Case повышает общую вовлечённость команды и согласованность понимания требований.

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

Примеры хорошо оформленных Use Case

Рассмотрим примеры, демонстрирующие принципы грамотного описания Use Case.

Пример 1: "Просмотр баланса счета в банкомате" (фрагмент). Этот сценарий иллюстрирует правильное чередование шагов клиента и системы:

Название

Просмотр баланса счета через банкомат

Акторы

Клиент (держатель карты) – основной; Банкомат – вторичный (система).

Предусловия

Клиент имеет действующую банковскую карту; банкомат подключен к банковской системе.

Основной сценарий

1. Клиент вставляет банковскую карту в банкомат и вводит PIN-код.
2. Система (Банкомат) считывает данные карты и проверяет PIN через центральную банковскую систему​.
3. Клиент выбирает опцию "Просмотр баланса".
4. Система запрашивает текущий остаток по счету клиента в банковской системе.
5. Система отображает на экране банкомата текущий баланс счета клиента.
6. Клиент завершается сеанс, забирая карту.
7. Система завершает обслуживание, возвращается в исходное состояние ожидания клиента.

Постусловия

Клиент получил информацию о балансе; сессия завершена, карта выдана обратно.

В этом примере можно увидеть, что на каждый значимый шаг клиента система предоставляет ответ. Ошибкой было бы описать только действия клиента без реакции банкомата (например: "1. Клиент вводит карту. 2. Клиент вводит PIN. 3. Клиент выбирает запрос баланса..." – без указания, что делает система). Такой неполный сценарий был бы неправилен​. Правильный вариант – включать действия системы на каждом шаге, как показано выше, чтобы сценарий был двусторонним.

Пример 2: "Онлайн-покупка товара" (упрощённо). Здесь показано, как выделяются альтернативы и избегается излишняя детализация:

Название

Оформление онлайн-покупки товара

Актор

Покупатель (онлайн-пользователь)

Основной сценарий

1. Пользователь добавляет товар в корзину.
2. Система обновляет содержимое корзины (отображает добавленный товар).
3. Пользователь открывает страницу корзины и нажимает "Оформить заказ".
4. Система проверяет, что пользователь авторизован.
5. Система отображает форму ввода данных доставки и оплаты.
6. Пользователь заполняет необходимые данные и подтверждает оформление.
7. Система проверяет корректность данных и резервирует товар на складе.
8. Система перенаправляет пользователя на платёжный шлюз для оплаты.
9. Пользователь выполняет оплату (взаимодействие с внешней платёжной системой).
10. Система получает подтверждение успешной оплаты от платёжной системы.
11. Система сохраняет заказ с состоянием "Оплачен" и отображает пользователю страницу с подтверждением заказа и деталями.

Альтернативные сценарии

Альт.1: Пользователь не авторизован (ветвление от шага 4).

4a. Система перенаправляет пользователя на страницу входа/регистрации.
4b. После успешного входа пользователя система возвращает его к шагу 5 основного сценария (отображение формы заказа).

Альт.2: Недостаточно товара на складе (ветвление от шага 7).

7a. Система обнаруживает, что товара нет в наличии в нужном количестве.
7b. Система показывает сообщение об ошибке: "Товар отсутствует на складе в нужном количестве" и предлагает уменьшить количество или отложить заказ.
7c. Сценарий заканчивается без оформления заказа.

Негативный сценарий

Негативный: Ошибка оплаты (вариант на шаге 10).

10a. Система получает отказ в autorizacji оплаты (например, недостаточно средств либо сбой сети).
10b. Система переводит заказ в состояние "Ожидает оплаты" и отображает пользователю страницу с информацией, что оплата не прошла.
10c. Пользователь может повторить попытку оплаты из личного кабинета позже (вне рамок текущего Use Case).

Конечное состояние

При успешном сценарии – заказ оформлен и оплачен, данные о заказе сохранены, пользователю показывается подтверждение. При альтернативе 7 (нет товара) – заказ не создан; при негативном (ошибка оплаты) – заказ создан, но помечен как не оплачен.

Замечание по детализации

Обратите внимание, что в шаге ввода данных (шаг 6) мы не перечисляем все поля, которые вводит пользователь (имя, адрес, телефон, email, etc.) – это лишняя детализация UI.

Достаточно сказать "заполняет необходимые данные". Аналогично, не расписываем весь процесс оплаты пошагово (это уже задача внешней системы и отдельного Use Case "Оплата заказа").

Таким образом, сценарий остаётся сфокусированным и читабельным, избегая ошибок избыточной детализации интерфейса​.

Эти примеры демонстрируют принципы: полнота взаимодействий, учет альтернатив и умеренная детализация. Вы можете взять аналогичный стиль при описании своих Use Case. Также рекомендуется просматривать образцы удачно оформленных сценариев (в литературе или корпоративных шаблонах) и следовать лучшим практикам.

Связь Use Case с User Stories

User Story (пользовательская история) – это краткое описание требуемой функции с точки зрения пользователя, обычно формулируемое в формате: "Как [роль], я хочу [действие], чтобы [ценность]".

В Agile-подходе user stories часто используются вместо детальных спецификаций. Возникает вопрос, как соотносятся Use Cases и User Stories, и нужны ли оба артефакта.

В целом, Use Case и User Story не взаимоисключающие, а дополняющие понятия. Их основные отличия:

  • Форма и объем. User Story – это одна-две строки, констатирующие потребность/функциональность без подробностей. Use Case – развернутый сценарий, описывающий шаги взаимодействия для реализации подобной потребности.Пример: User Story "Как покупатель, я хочу удалить товар из корзины, чтобы изменить содержимое заказа" может быть реализована внутри Use Case "Управление содержимым корзины" или отдельным небольшим Use Case "Удаление товара из корзины".

  • Фокус. User Stories ориентированы на результат/фичу с ценностью для пользователя. Use Case фокусируется на процессе достижения результата: он раскрывает как пользователь и система взаимодействуют для достижения цели.Таким образом, одна user story обычно соответствует либо целому Use Case, либо отдельному сценарию/потоку внутри Use Case.

  • Уровень детализации. User Story намеренно оставляет детали на будущее обсуждение (во время планирования, уточнения критериев приемки).Use Case же сразу прорабатывает диалог, альтернативы, ошибки – то есть содержит больше информации.

Связь на практике: В Agile-проектах может оказаться избыточным вести полные Use Case при наличии user stories, особенно если команда предпочитает легковесную документацию.
Однако Use Case может быть полезен как детальная расшифровка сложных User Stories. Например, набор связанных user stories (различные сценарии использования функции) можно описать одним общим Use Case с альтернативными потоками.

И наоборот, один большой Use Case нередко раскладывается на несколько user stories для поэтапной реализации.
Например, Use Case "Управление аккаунтом пользователя" может разбиваться на истории: "как пользователь, хочу изменить пароль", "как пользователь, хочу обновить email" и т.д.

Некоторые отличия подходов:

  • User Story пишется от лица конкретного типа пользователя, отражая его потребность. Use Case может описывать взаимодействие от более общей перспективы или включать несколько акторов (например, разные роли пользователей в одном сценарии)​.

  • В критерии приемки User Story обычно включаются условия, аналогичные шагам и результатам сценария. Фактически, хорошо проработанные Критерии приемки (Acceptance Criteria) к истории зачастую пересекаются с описанием Use Case, но в более сжатой, проверочной форме.

Когда использовать что: Если ваш процесс разработки гибкий (Agile) и команда тесно коммуницирует, вы можете сосредоточиться на user stories с критериями приемки, а Use Case использовать выборочно для особенно сложных потоков, где требуется ясность.
В классическом же системном анализе (например, в Waterfall-подходе) Use Cases являются основой функциональных требований, а понятия user story может не быть вовсе.

Важно понимать, что цель у них общая – зафиксировать ожидания пользователя от системы. Поэтому нет противоречия в том, чтобы вести обе нотации параллельно: user story – для планирования и высокоуровневого обзора функций, use case – для подробного описания поведения системы.
Например, user story служит заголовком и кратким контекстом, а use case – развернутым пояснением реализации этой истории.

В заключение: если проект требует формальности и полноты, Use Case будут незаменимы. Если акцент на гибкости и скорости, можно ограничиться user stories, дополняя их небольшими сценарными описаниями по мере необходимости.
Учитывайте потребности команды и стейкхолдеров при выборе инструментария требований.

Взаимодействие Use Case с требованиями к UI/UX

Use Case описывает логический сценарий использования системы, но неизбежно затрагивает аспекты пользовательского интерфейса, поскольку пользователь взаимодействует через UI.
Важно правильно балансировать детализацию UI/UX в рамках Use Case и понимать, как эти артефакты дополняют друг друга:

  • Use Case определяет что делает пользователь, а UI/UX-дизайн определяет как это выглядит и воспринимается. Сценарий использования может указать: "Пользователь вводит данные для поиска и запускает поиск". Конкретное воплощение этого в интерфейсе (текстовое поле поиска, кнопка или мгновенный поиск при наборе) – решается на этапе UI/UX-проектирования. Use Case намеренно не специфицирует подробности дизайна, чтобы не ограничивать UI-решения. Он оставляет свободу дизайнерам придумать наиболее удобный интерфейс, соответствующий логике сценария.

  • Минимум о UI в тексте Use Case. Тем не менее, в описании шагов часто упоминаются элементы интерфейса – кнопки, формы, сообщения – поскольку без этого сложно описать действия пользователя. Это нормально, но следует держать такой текст на уровне, понятном без макета. Например, "нажимает кнопку 'Добавить в корзину'" – понятно, а подробности вроде "кнопка зелёного цвета в правом верхнем углу" – лишние. Главное – назвать элемент, исходя из его функции (кнопка Добавить, ссылка Удалить, форма Регистрации и т.п.). Таким образом, Use Case дает ориентир для UI: какие элементы должны присутствовать, какие состояния интерфейса понадобятся (форма, сообщение об ошибке и т.д.).

  • Проработка UX-потоков на основе Use Case. UX-специалисты могут брать готовые Use Case и на их основе рисовать пользовательские потоки и прототипы экранов. Например, сценарий "Оформление заказа" превращается в набор экранов: корзина -> оформление -> оплата -> подтверждение, с учётом шагов и альтернатив, указанных в Use Case. Это обеспечивает согласованность: каждый экран и переход соответствует шагу сценария. Если при прототипировании выясняется, что какой-то переход не описан или нелогичен, это сигнал скорректировать Use Case или требования.

  • UI-элементы как шаги системы. Иногда в Use Case приходится упоминать отображение интерфейсных элементов как отдельные шаги системы. Например: "Система отображает форму регистрации" или "Система выводит диалог подтверждения удаления". Это нормальная практика – такие действия системы важны для пользователя и для сценария. Фактически, появление интерфейсной формы = реакция системы на действие пользователя. Поэтому UI и Use Case связаны: сценарий диктует, какие экраны/окна/сообщения нужны.

  • Ограничения и согласование с дизайном. При написании Use Case, возможно, ещё нет готового дизайна. Но если дизайн уже продуман (или существует гайдлайн), следует удостовериться, что сценарий соответствует UX-логике. Например, если в интерфейсе принято сначала подтверждать email, а потом давать доступ к профилю, Use Case должен следовать этой логике. И наоборот, если сценарий выявил, что нужна, скажем, возможность отменить действие на определённом шаге, то в UI должен появиться соответствующий элемент (кнопка "Отмена").

  • Разграничение ответственности. Use Case не заменяет собой документ по UI/UX. Детали пользовательского опыта – навигация, расположение элементов, цветовые акценты, микро-взаимодействия – описываются отдельно в прототипах, дизайн-гайдах или в пользовательских историях/тасках для дизайнеров. Однако, качество UX во многом зависит от сценария: если Use Case нелогичен или сложен, то и интерфейс, реализующий его, будет хромать. Поэтому UX-специалист и аналитик должны сотрудничать: вместе проходить по Use Case, чтобы удостовериться, что сценарий удобен и понятен с точки зрения пользователя. Иногда по результатам UX-анализа в сценарий вносятся изменения (например, добавляются шаги для подтверждения, или изменяется последовательность действий для более удобной).

  • Прототипы и Use Case. Полезной практикой является сопроводить каждый важный Use Case экранами-прототипами. В документе можно вставить ссылки или изображения ключевых экранов, относящихся к шагам сценария. Например: после описания основного сценария "Регистрация пользователя" приложить прототип формы регистрации и прототип окна подтверждения. Это повышает понимание – читатель видит, как сценарий воплощается визуально.

В общем, Use Case и UI/UX требования идут рука об руку. Use Case задаёт что должно происходить, а UI/UX определяет как это представлено пользователю и насколько это удобно. Следовательно, хорошей практикой будет проводить совместные ревью: проверять Use Case на "юзабельность", а дизайны – на полноту сценариев. Так вы избежите ситуации, когда разработали красивый интерфейс, который не покрывает какие-то ветки сценария, или наоборот – описали сценарий, который невозможно интуитивно пройти в предложенном интерфейсе.

Взаимосвязь Use Case и других UML-диаграмм

Use Case в методологии UML не существует изолированно. Помимо текстового описания, принято использовать различные UML-диаграммы для визуализации и детализации сценариев. Рассмотрим, как Use Case соотносится с другими типами моделей:

  • Диаграмма вариантов использования (Use Case Diagram). Это основная UML-диаграмма, связанная с Use Case. Она представляет модель системы на высоком уровне: показывает систему как область (прямоугольник), акторов (внешние человечки) и сами варианты использования (овалы с названиями)​. Диаграмма связывает акторов с Use Case линиями ассоциаций, а также может отображать отношения между Use Case (например, include, extend). Такая диаграмма полезна на начальных этапах, чтобы очертить весь спектр функциональности системы и кто чем пользуется. Она не показывает последовательность шагов, но даёт карту сценариев. В большом проекте может быть десятки use-case на одной диаграмме или разбитых на несколько по подсистемам.

    Применение: Диаграмма вариантов использования помогает выявить пропущенные сценарии, общих акторов, дублирующиеся кейсы. Её часто приводят в документации в разделе обзора системы. Например, диаграмма Use Case для интернет-магазина покажет акторов "Покупатель", "Администратор", "Система оплаты" и овалы: "Поиск товара", "Просмотр каталога", "Добавление в корзину", "Оформление заказа", "Управление товарным каталогом" и т.д., со связями кто чем пользуется.

    https://plantuml.com/ru/use-case-diagram

  • Диаграммы активности (Activity Diagrams). Диаграмма активности – это UML-аналог BPMN (по смыслу). Она используется для графического описания логики workflow сценария: последовательность действий, разветвления (решения), параллельные ветки, начало и конец процесса. Многие элементы BPMN имеют аналог в диаграмме активности (решения – условные узлы, действия – блоки, события – начальный/конечный узел, потоки – стрелки). Диаграмму активности можно строить для конкретного Use Case, отражая основной и альтернативные потоки на ней. Например, Activity Diagram для сценария "Авторизация пользователя" будет показывать действия: "Пользователь вводит логин/пароль" -> решение: "[успешно?]" -> ветка успешная ("Система пускает в аккаунт") и ветка неуспешная ("Система выдаёт ошибку, запрос повторяется"). Таким образом, диаграмма активности служит визуализацией конкретного сценария. Это помогает, когда сценарий очень сложный, с множеством ветвлений – графически его иногда легче воспринимать, чем текст. Кроме того, Activity Diagram – исполняемая модель, её можно использовать и для анализа, и для генерации кода в некоторых инструментах.

    Применение: Если вам нужно показать поток действий не только для взаимодействия пользователя с системой, но и внутренние шаги системы, которые скрыты от пользователя, диаграмма активности подходит. Например, внутри сценария "Оформление заказа" можно изобразить подпроцесс проверки оплаты и наличия на складе. Диаграммы активности также применяются для бизнес-процессов, которые выходят за рамки одного Use Case или охватывают несколько систем.

    https://plantuml.com/ru/activity-diagram-beta

  • Диаграммы последовательности (Sequence Diagrams). Эти диаграммы UML используются для детального описания взаимодействия между объектами или компонентами системы во времени. В контексте Use Case, диаграмму последовательности часто строят, чтобы отобразить, как реализуется сценарий на уровне взаимодействия компонентов. Проще говоря, если Use Case – это требование, то Sequence Diagram может показать один из способов реализации этого требования в проектируемой системе. Например, для Use Case "Поиск рейса авиакомпании" sequence diagram опишет: пользователь (актер) посылает запрос через UI -> контроллер получает запрос -> контроллер обращается к сервису поиска -> сервис обращается к базе данных -> результаты возвращаются контроллеру -> контроллер отдаёт UI -> UI отображает результаты. Таким образом, диаграмма последовательности уточняет техническую реализацию шага или всего сценария, распределяя ответственность между модулями системы.

    Применение: Sequence Diagrams полезны на этапе проектирования после анализа: когда ясно, что должно происходить (через Use Case), нужно решить как именно это реализовать, кто какие сообщения отправляет. Аналитик может не всегда детально прорисовывать sequence diagram, это могут делать архитекторы или разработчики. Однако в системах с распределённой архитектурой (клиент-сервер, микросервисы) такие диаграммы необходимы для сложных Use Case, чтобы убедиться, что все взаимодействия спланированы.

    https://plantuml.com/ru/sequence-diagram

  • Диаграммы состояний (State Machine) и другие. Иногда для отдельных частей сценария полезно использовать диаграммы состояний – например, описать жизненный цикл сущности, связанной с Use Case (заказ проходит состояния: создан -> оплачен -> выполнен -> закрыт). Это помогает понять, в каком состоянии должна находиться система до/после Use Case и какие события меняют эти состояния. Кроме того, классовые диаграммы могут использоваться для отображения объектов, участвующих в сценарии (например, классы Заказ, Товар, Платёж и связи между ними, если мы описываем Use Case покупки – это увязывает сценарий с моделью данных).

    Однако диаграммы классов, компонентов, развертывания и пр. более косвенно связаны с Use Case – они описывают статическую структуру системы, которая должна поддерживать описанные сценарии.

    https://plantuml.com/ru/state-diagram

Взаимосвязь такова: Use Case формулирует требование в динамической форме, а UML-диаграммы (активности, последовательности, состояний) позволяют детализировать и визуализировать, как система будет выполнять это требование.
Диаграмма вариантов использования в свою очередь дает общую картину всех сценариев.

На практике часто выстраивается такая цепочка:

  1. Сначала строится диаграмма Use Case (список прецедентов и акторов).

  2. Затем для важных Use Case создаются текстовые описания (сценарии).

  3. Далее, по необходимости, для сложных сценариев рисуются Activity/Sequence диаграммы для разъяснения логики или проработки взаимодействия компонентов.

  4. При проектировании базы данных и логики – создаются диаграммы классов, сущностей и т.п., исходя из того, какие данные используются в сценариях.

Таким образом, все модели дополняют друг друга: Use Case – отправная точка, которая гарантирует, что разработки (диаграммы, код) соответствуют реальным потребностям пользователя.

Пример связи: предположим, есть Use Case "Восстановление пароля". По нему можно иметь:

  • Диаграмму варианта использования, где "Пользователь" связан с кейсом "Восстановить пароль".

  • Текст сценария с шагами (запрос email -> генерация ссылки -> отправка письма -> смена пароля).

  • Диаграмму активности, показывающую поток от запроса до окончания процесса.

  • Диаграмму последовательности, показывающую, как фронтенд, сервер авторизации и почтовый сервис взаимодействуют при этом.

  • Диаграмму состояний для сущности "Запрос восстановления" (создан -> подтверждён -> истёк).

Все эти представления описывают один и тот же функционал, но под разными углами – от пользовательского до технического.

Типичные ошибки при разработке Use Case (и как их избежать)

При составлении сценариев использования начинающие аналитики часто повторяют ряд ошибок. Рассмотрим наиболее распространённые и пути их предотвращения:

Ошибка 1: Описание только действий пользователя, без отклика системы.
Проявление: Сценарий выглядит как монолог пользователя – перечислены лишь шаги, которые делает актор, а что делает система в ответ не указано. Например: "1. Клиент вводит карту. 2. Клиент вводит PIN. 3. Клиент выбирает сумму для снятия..." – нигде не сказано, как реагирует банкомат.
Почему плохо: Такой сценарий не отражает взаимодействия. Неясно, что делает система и когда завершается процесс. Разработчикам и тестировщикам непонятно поведение системы.
Как надо: На каждый значимый шаг пользователя должно быть описано действие системы (изменение состояния UI, обработка данных, ответное сообщение и т.д.)​. Перефразируя пример: "1. Клиент вставляет карту -> Система считывает данные карты и запрашивает PIN. 2. Клиент вводит PIN -> Система проверяет PIN..." и т.д. Всегда думайте: "Что делает система в ответ на действие пользователя?" – и фиксируйте это.

Ошибка 2: Не указано, кто выполняет действие (пропущен актор).
Проявление: Шаги описаны обезличенно или от лица системы без упоминания пользователя. Например: "1. Получить PIN-код. 2. Получить сумму снятия. 3. Выдать наличные." – неясно, кто что делает​. Либо все действия записаны как будто система сама инициирует (“получает PIN, получает сумму…”).
Почему плохо: Теряется понимание, какие шаги делает пользователь, а какие система. Складывается впечатление, что все делает система, а пользователь пассивен, что не соответствует реальности. Кроме того, такой сценарий трудно связать с UI (кто вводит PIN?).
Как надоЯвно указывайте исполнителя каждого действия – будь то пользователь, система или другой актор. Лучшая практика – делить колонками "Пользователь" и "Система" или просто писать в тексте "Пользователь ...Система ...". Если в каком-то шаге субъект не очевиден, это знак, что надо переформулировать. В правильно написанном сценарии любой читатель без труда определит, где чьи действия.

Ошибка 3: Чрезмерная детализация интерфейса.
Проявление: Сценарий погружается в мелочи UI: перечисляет каждое поле формы, каждое нажатие клавиши, элементы дизайна. Пример: "1. Система отображает экран ввода логина и пароля. 2. Клиент вводит логин в текстовое поле 'Логин'. 3. Клиент вводит пароль в текстовое поле 'Пароль'. 4. Клиент нажимает кнопку 'ОК'. 5. Система открывает форму профиля пользователя с надписью 'Добро пожаловать'..."​. Сценарий распухает от деталей.
Почему плохо: Сценарий становится длинным и трудночитаемым. Его сложно поддерживать – малейшее изменение интерфейса (например, объединение полей имени и фамилии в одно) потребует переписывать шаги. Сосредоточенность на UI может отвлечь от сути взаимодействия.
Как надоАбстрагируйтесь от избыточных деталей. Опишите логические действия, а не каждое поле. В приведённом примере достаточно: "Клиент вводит учётные данные (логин и пароль) и подтверждает вход". Этого достаточно, чтобы понять сценарий. Детали интерфейса можно доверить дизайнерам или указать в примечаниях, если критично (например, требование к маске ввода телефона). Правило: шаг = значимое действие, а не каждое суб-действие. Особенно это касается ввода больших форм – не расписывайте каждое поле как отдельный шаг, если не требуется логическое ответвление.

Ошибка 4: Слишком низкий уровень атомарности шагов.
Проявление: Сценарий разбит на чересчур мелкие шаги, которые логически можно объединить. Это схоже с предыдущей ошибкой. Например: "3. Пользователь вводит имя. 4. Пользователь вводит адрес. 5. Пользователь вводит телефон. 6. Пользователь нажимает 'Оформить заказ'."​ – тут 3 и 4 и 5 шаги можно объединить в один "пользователь вводит личные данные".
Другой вариант: расписываются системные действия, которые можно обобщить: "7. Система проверяет наличие товара X. 8. Система проверяет наличие товара Y." – лучше объединить в "Система проверяет наличие всех товаров в корзине".
Почему плохо: Перегрузка деталями затрудняет понимание основного потока. Сценарий выглядит длинным, хотя по сути там пара больших этапов. Кроме того, длинный перечень шагов сложнее поддерживать.
Как надоГруппируйте смежные шаги, если для сценария не важно раздробление. Руководствуйтесь принципом: один шаг – одно логическое действие/реакция. В примере с личными данными лучше: "Пользователь вводит персональные данные (имя, адрес, телефон)" – вместо трёх отдельных шагов. Но не переусердствуйте: если шаги имеют разные последствия или проверки – лучше оставить раздельно и подумать об альтернативных сценариях. Например, ввод пароля и подтверждение пароля – можно описать одним шагом, но проверку совпадения паролей тогда поместить в альтернативу "если не совпадают".

Ошибка 5: Пропуск альтернативных и исключительных сценариев.
Проявление: Описан только основной поток, без ветвлений. Игнорируются ситуации "что если что-то пойдёт не так" или "что если пользователь выберет другой путь". Например, в сценарии оформления заказа не рассмотрен случай, если платеж не прошёл, или если пользователь решил отменить заказ перед оплатой.
Почему плохо: Такой сценарий создаёт ложное ощущение завершённости, но в реализации и использовании обязательно всплывут необработанные случаи. Это чревато либо додумываниями на ходу (что ведет к багам), либо вообще упущенной функциональностью (например, система не умеет сообщать об отказе в платеже, так как этого не было в требованиях).
Как надоПрорабатывать ветвления при написании. Как советовали выше, на каждый шаг задавайте вопрос "а что, если нет?". Ведите учет альтернатив прямо при написании Use Case. Можно сначала набросать все "ifs" и "elses" к сценарию, а потом оформить их как альтернативные потоки. Не оставляйте известных вариантов неописанными. Исключение могут составлять совсем уж нетипичные ошибки (например, полностью отключился сервер – это уже вне сценария пользователя, это больше к нефункциональным требованиям надежности).

Ошибка 6: Нечеткое определение предусловий и триггеров.
Проявление: Сценарий сразу начинается с действия, непонятно откуда. Не указано, что пользователь уже должен был сделать до этого. Например: "Пользователь подтверждает заказ" – где он? вошёл ли он в систему? есть ли товары в корзине? Предусловия не описаны. Либо наоборот, сценарий начинается с деталей, которые на самом деле являются частью другого процесса ("Пользователь запускает приложение, логинится, потом нажимает X..." – возможно, логин это отдельный Use Case, а в данном сценарии мы считаем, что он уже выполнен).
Почему плохо: Без начальных условий трудно понять, применим ли сценарий в конкретной ситуации. Также, отсутствующие предусловия ведут к невысказанным допущениям – разные читатели могут представить разный контекст.
Как надоЯвно прописывать состояние системы и пользователя до начала сценария (предусловия)​. Если сценарий предполагает, что до него выполнен другой Use Case – упомяните это. Например: "Предусловие: пользователь авторизован (Use Case 'Авторизация пользователя' выполнен)". Укажите и триггер: что послужило началом (нажата кнопка, наступило время, внешняя система прислала запрос). Это сделает сценарий самодостаточным и понятным.

Ошибка 7: Нарушение принципа "черного ящика".
Проявление: В описании сценария аналитик начинает включать детали внутренней реализации системы, недоступные наблюдению. Например: "Система вычисляет контрольную сумму и сохраняет запись в таблице X БД" – такие вещи пользователь не видит. Или: "Система вызывает API сервиса платежей и ждёт 30с..." – это технические детали.
Почему плохо: Use Case предназначен для внешнего описания поведения системы. Если перегружать его внутренними техническими шагами, документ теряет фокус и становится трудно читаем для бизнес-сторон. К тому же внутренняя реализация может измениться, а сценарий взаимодействия – нет. Такие детали лучше оставить для проектной документации (например, для диаграмм последовательности или технических спецификаций).
Как надоОписывайте систему как черный ящик, через ее входы/выходы: что она показывает пользователю, какие данные получает и выдаёт, какие внешние эффекты (отправлено письмо, создан файл и т.п.). Не описывайте, как именно внутри она этого достигает. Исключение – случаи, когда требуется зафиксировать бизнес-правило или алгоритм, видимый пользователю. Например, если по ходу сценария система проводит расчёт стоимости доставки, можно написать: "Система рассчитывает стоимость доставки по тарифам в зависимости от адреса" – это важный бизнес-шаг, хоть и внутренний, но он влияет на пользователя (он увидит сумму). Однако не нужно расписывать формулу расчёта – достаточно упомянуть факт бизнес-логики.

Ошибка 8: Отсутствие структурированности (нумерации, названий шагов).
Проявление: Сценарий представлен сплошным текстом или списком без чёткой нумерации шагов. Альтернативные сценарии не пронумерованы и непонятно, к какому шагу относятся.
Почему плохо: Без нумерации сложно ссылаться на шаги, читатель может запутаться, где заканчивается основной сценарий и начинается альтернативный. Документ теряет опрятность, что затрудняет его использование.
Как надоСтруктурировать сценарий по пунктам, как описано ранее: нумерованные шаги основного потока, для альтернатив – отдельная секция с пометкой на каком шаге ответвление. Можно использовать многоуровневую нумерацию (1, 2, 3; 3.1, 3.2 для веток) или простой маркированный список – важно, чтобы была понятна последовательность и вложенность. Также выделяйте подразделы жирным шрифтом или заголовками (Предусловия, Основной сценарий, Альтернатива X, и т.д.). Единообразное форматирование избавит читателя от двусмысленностей.

В дополнение к перечисленным, существуют и другие потенциальные ошибки (менее очевидные):

  • Смешивание нескольких целей в одном Use Case. Если сценарий пытается охватить сразу несколько разнородных задач, его стоит разбить. Один Use Case – одна цель пользователя​.

  • Избыточное количество альтернатив, утяжеляющее основной документ. Если их слишком много, лучше вынести часть логики на диаграмму или разбить сценарий на несколько, как рекомендуют при сложных правилах​.

  • Отсутствие согласования терминов. Все участники проекта должны одинаково понимать формулировки в Use Case. Поэтому глоссарий и консистентность терминов важны, чтобы не было двусмысленностей.

Резюме по ошибкам

Пишите Use Case внимательно и критически оценивайте каждое предложение: отвечает ли оно на вопрос “кто – что делает – с каким результатом”, покрывает ли все обычные и необычные ситуации, не перегружено ли лишней информацией. Регулярно сравнивайте свои сценарии с приведенными рекомендациями и примерами. Со временем вы начнете автоматически избегать перечисленных ошибок, и ваши Use Case будут получаться всё более полными и качественными​.

Автор: askid

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js