Приведи пример Use Case

«Приведи пример Use Case» — вопрос из категории User Story и Use Case, который задают на 40% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Название: Оформление заказа в интернет-магазине
Акторы: Покупатель, Система оплаты
Предусловия: Покупатель авторизован, корзина не пуста.

Основной поток:

  1. Покупатель нажимает "Оформить заказ".
  2. Система отображает форму с данными доставки и оплаты.
  3. Покупатель подтверждает заказ.
  4. Система создает заказ и перенаправляет на страницу оплаты.
  5. Система оплаты обрабатывает платеж.
  6. Система отправляет подтверждение на email.

Альтернативные потоки:

  • A1: Некорректные данные – система показывает ошибку.
  • A2: Оплата не прошла – заказ сохраняется как "Ожидает оплаты".
// Пример кода для создания заказа
public class OrderService {
    public Order createOrder(User user, Cart cart) {
        if (cart.isEmpty()) {
            throw new IllegalStateException("Cart is empty");
        }
        Order order = new Order(user, cart.getItems());
        orderRepository.save(order);
        paymentGateway.processPayment(order);
        return order;
    }
}