← Назад к вопросам

Приведи пример функционального требования

1.2 Junior🔥 181 комментариев
#Требования и их анализ

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Пример Функционального Требования: Система Интернет-Магазина

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

Требование FR-001: Добавление Товара в Корзину

Идентификатор: FR-001 Название: Добавление товара в корзину покупателя Статус: Approved Приоритет: High

Описание функции:

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

Детальное Описание

Что должна делать система:

  1. Проверка авторизации — Перед добавлением товара система должна убедиться, что пользователь авторизован. Если нет — перенаправить на страницу входа

  2. Выбор параметров товара — Если товар имеет варианты (размер, цвет, версия), система должна отобразить форму выбора параметров. Пользователь должен выбрать требуемые параметры перед добавлением

  3. Проверка наличия — Система должна проверить наличие выбранного варианта на складе и отобразить доступное количество

  4. Выбор количества — Пользователь может выбрать количество от 1 до максимально доступного на складе. Система должна валидировать введенное количество

  5. Добавление в корзину — При подтверждении система добавляет товар в корзину. Если товар с такими же параметрами уже в корзине, система должна увеличить его количество вместо добавления новой строки

  6. Сохранение данных — Корзина должна быть сохранена в базе данных

  7. Обновление интерфейса — После успешного добавления система должна:

    • Показать уведомление об успехе
    • Обновить счетчик товаров в header
    • Отобразить новую сумму корзины
  8. Обработка ошибок — При возникновении ошибок (товар закончился, потеря сессии, ошибка БД) показать пользователю соответствующее сообщение об ошибке

Предусловия

  • Пользователь авторизован в системе
  • Товар существует в системе
  • Товар имеет установленную цену
  • Товар доступен для продажи

Постусловия

  • Товар добавлен в корзину
  • Корзина сохранена в БД
  • История операции залогирована в системе
  • Счетчик товаров обновлен

Сценарии Использования

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

  1. Пользователь открывает страницу товара (рубашка)
  2. Выбирает размер: M, цвет: синий
  3. Вводит количество: 2
  4. Кликает кнопку "Добавить в корзину"
  5. Система добавляет товар в корзину
  6. Показывает уведомление "Товар добавлен"
  7. Счетчик в header меняется на 2
  8. Пользователь может продолжить покупки

Альтернативный сценарий — Товар уже в корзине:

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

Альтернативный сценарий — Недостаточно товара:

  1. На складе осталось только 3 рубашки (размер M, синий)
  2. Пользователь пытается добавить 5 шт
  3. Система проверяет наличие и выявляет недостаток
  4. Показывает ошибку: "В наличии только 3 единицы"
  5. Предлагает добавить 3 шт или встать в очередь

Альтернативный сценарий — Не авторизован:

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

Критерии Приёмки

  • Товар успешно добавляется в корзину после клика
  • Счетчик товаров в header обновляется корректно
  • Данные сохраняются в БД и сохраняются после перезагрузки
  • Работает на Chrome, Firefox, Safari, Edge
  • Работает на мобильных устройствах
  • Операция завершается за менее чем 500ms
  • Все ошибки обработаны и показаны пользователю
  • Написаны unit-тесты (покрытие >= 85%)
  • Написаны интеграционные тесты

Нефункциональные Требования

  • Производительность: операция < 500ms
  • Совместимость: все современные браузеры
  • Безопасность: проверка прав доступа
  • Надежность: обработка сетевых ошибок