Собесов

Какие требования к системе — нефункциональные?

Кейсы и метрикиАнализ требованийЛёгкаяJunior

Условие

Ниже приведены требования к системе. Отметьте только нефункциональные.

  1. При нажатии на кнопку «Ввести данные» система должна отображать форму для ввода контактных данных клиента.
  2. При первой авторизации в приложении нового клиента, система должна запускать сценарий обучения.
  3. Пользователь должен иметь возможность заказать товар в рассрочку.
  4. Система должна работать на устройствах Android с версии 11 и выше.
  5. Система должна обеспечивать возможность одновременного подключения 25 000 пользователей.

Решение

Нефункциональные: пункты 4 и 5.

Функциональные vs нефункциональные

Тип Что описывает Пример
Функциональные (FR) Что система делает (действия, поведение) «При нажатии — показать форму», «обработать платёж»
Нефункциональные (NFR) Какой система должна быть (качества, ограничения) Скорость, доступность, безопасность, совместимость

Разбор требований

# Тип Почему
1 FR Описывает поведение при действии (нажатии)
2 FR Сценарий обучения = поведение при событии (первая авторизация)
3 FR Возможность функции (заказ в рассрочку)
4 NFR Ограничение совместимости / Compatibility
5 NFR Производительность / Scalability — 25k одновременных подключений

Категории NFR

  • Performance — время отклика, throughput, нагрузка
  • Scalability — сколько пользователей выдержит
  • Availability — uptime, SLA (99.9%, 99.99%)
  • Reliability — вероятность отказа
  • Security — шифрование, авторизация, аудит
  • Compatibility — поддержка платформ, браузеров, устройств
  • Usability — удобство, время обучения
  • Maintainability — простота поддержки кода

Тест «отличить FR от NFR»

Спросите: «Может ли система делать это? Или она просто должна быть такой?»

  • «Должна показывать форму» — действие (FR)
  • «Должна работать на Android 11+» — состояние (NFR, Compatibility)

Подводные камни

  1. «Должна позволять войти за 1 секунду» — это NFR (Performance), хотя слова про «вход» (FR) могут запутать.
  2. «Должна шифровать данные» — пограничный случай. Если это функция (явно вызывается), то FR. Если свойство (всё пишется в зашифрованной БД) — NFR.
  3. NFR часто забывают. Команда фиксирует FR-ы, а на проде падает по нагрузке. NFR-ы критичны для архитектурных решений.

Эталонный ответ

4 (поддержка Android 11+) и 5 (25 000 одновременных пользователей) — нефункциональные требования (Compatibility и Performance/Scalability соответственно).

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти