Приведи пример Use Case
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Use Case — Практический пример
Use Case (вариант использования) — это описание последовательности действий между актором (пользователем или системой) и системой для достижения определённой цели. Это один из ключевых артефактов при сборе требований.
Пример: Use Case для системы онлайн-магазина
Название: Покупка товара в интернет-магазине
Актор (Actor): Покупатель (незарегистрированный или зарегистрированный пользователь)
Предусловие (Precondition):
- Система доступна
- Товар есть в наличии
- Покупатель может разместить заказ в своей стране
Постусловие (Postcondition):
- Заказ создан и сохранён в системе
- Товар зарезервирован
- Покупатель получит уведомление на почту
- Баланс товара уменьшился
Основной сценарий (Main Flow)
-
Покупатель: Просматривает каталог товаров Система: Отображает товары с фильтрацией и поиском
-
Покупатель: Выбирает интересующий товар Система: Показывает описание, цену, доступное количество, отзывы
-
Покупатель: Добавляет товар в корзину, указывает количество Система: Проверяет наличие товара, добавляет в корзину, показывает обновленную сумму
-
Покупатель: Нажимает кнопку "Оформить заказ" Система: Проверяет, авторизован ли пользователь. Если нет, предлагает войти или зарегистрироваться
-
Покупатель: Вводит данные доставки (адрес, телефон) Система: Проверяет корректность адреса. Рассчитывает стоимость доставки
-
Покупатель: Выбирает способ доставки (курьер, самовывоз, почта) Система: Обновляет стоимость заказа с учётом доставки
-
Покупатель: Выбирает способ оплаты (карта, PayPal, банковский перевод) Система: Проверяет доступные способы в его стране
-
Покупатель: Проверяет данные заказа и подтверждает Система: Выполняет платёж через платёжный шлюз
-
Платёжный шлюз: Отправляет результат платежа Система: Если платёж прошёл успешно, переходит к шагу 10. Если нет — к шагу "Альтернативный сценарий 1"
-
Система: Создаёт заказ в статусе "Оплачен". Резервирует товар на складе. Отправляет подтверждение на почту покупателю. Генерирует номер отслеживания доставки
-
Покупатель: Получает письмо с номером заказа и ссылкой отслеживания
**Система:** Заказ переходит в обработку
Альтернативный сценарий 1: Платёж не прошёл
Начало: На шаге 9 платёж отклонен
- Система: Показывает ошибку "Платёж отклонен"
- Покупатель: Видит причину отклонения (недостаточно средств, неверные данные и т.д.)
- Покупатель: Может:
- Попробовать другую карту → Возврат на шаг 8
- Выбрать другой способ оплаты → Возврат на шаг 7
- Отменить заказ → Корзина очищается
Альтернативный сценарий 2: Товар закончился
Начало: На шаге 3 при добавлении товара в корзину
- Система: Проверяет наличие
- Система: Количество на складе стало 0
- Система: Показывает сообщение "Товар закончился"
- Покупатель: Может:
- Предзаказать товар (если доступно)
- Выбрать аналогичный товар
- Отменить добавление
Альтернативный сценарий 3: Пользователь не авторизован
Начало: На шаге 4
- Система: Предлагает войти в существующий аккаунт
- Покупатель: Выбирает опцию регистрации
- Система: Отправляет письмо подтверждения на почту
- Покупатель: Подтверждает почту по ссылке
- Система: Аккаунт активирован, пользователь авторизован
- Продолжение основного сценария с шага 5
Исключительные ситуации (Exceptions)
Исключение 1: Сеевое соединение потеряно
- На любом этапе: если соединение теряется, система сохраняет состояние корзины
- При возобновлении: предлагает продолжить оформление
Исключение 2: Время сессии истекло
- Система требует повторной авторизации
- Корзина сохраняется
Исключение 3: Адрес доставки недоступен
- Система показывает список доступных регионов
- Покупатель может выбрать другой адрес или способ доставки
Диаграмма Use Case (текстовое описание)
┌─────────┐
│ Клиент │
└────┬────┘
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Просмотр Добавить Оплатить
Товаров в Корзину Заказ
│ │ │
└───────────┼───────────┘
│
┌──────▼──────┐
│ Система │
│ Магазина │
└─────────────┘
Специальные требования (Non-functional Requirements)
- Производительность: Оплата должна быть обработана за 30 сек
- Безопасность: Данные карты передаются только по HTTPS, используется PCI DSS
- Доступность: Система должна быть доступна 99.9% времени
- Локализация: Поддержка русского и английского языков
- Масштабируемость: Должна выдержать 1000 одновременных заказов
Связанные Use Cases
- Отслеживание заказа — просмотр статуса доставки
- Возврат товара — инициирование процесса возврата
- Написание отзыва — оценка и отзыв о товаре
- Управление профилем — редактирование адресов доставки
- Повторный заказ — быстрое повторение предыдущего заказа
Структура Use Case в табличном формате
| Поле | Значение |
|---|---|
| ID | UC-001 |
| Название | Покупка товара |
| Актор | Покупатель |
| Предусловия | Система доступна, товар в наличии |
| Постусловия | Заказ создан, платёж прошёл |
| Основной сценарий | 11 шагов (см. выше) |
| Альтернативные сценарии | 3 (платёж не прошёл, товар закончился, пользователь не авторизован) |
| Исключения | 3 (потеря сети, истечение сессии, недоступный адрес) |
| Приоритет | Высокий |
| Частота использования | Очень высокая |
| Актуальность | Критичная для бизнеса |
Когда использовать Use Cases
Плюсы:
- Четкое описание поведения системы
- Хорошо понимаются бизнесом
- Легко составить тест-кейсы на основе Use Case
- Документирует взаимодействие актора и системы
- Помогает выявить все возможные сценарии
Минусы:
- Могут быть очень объёмными
- Сложно описать параллельные процессы
- Требуют постоянного поддержания (при изменениях)
Best Practices
- Используй ясный язык — понятный бизнесу
- Разбивай на шаги — каждый шаг одно действие
- Описывай исключения — не забывай альтернативные сценарии
- Проверяй полноту — все ли успешные пути покрыты
- Связывай Use Cases — показывай зависимости между ними
- Не усложняй — KISS принцип
- Валидируй с клиентом — согласовывай требования
Заключение
Use Case — это мощный инструмент сбора требований, который описывает последовательность взаимодействия актора и системы для достижения цели. Хороший Use Case содержит основной сценарий, альтернативные сценарии и исключения, что позволяет выявить все возможные поведения системы и составить полные тест-кейсы. Этот инструмент незаменим для системного аналитика при работе с требованиями.