Условие
Ниже приведены требования к системе. Отметьте только нефункциональные.
- При нажатии на кнопку «Ввести данные» система должна отображать форму для ввода контактных данных клиента.
- При первой авторизации в приложении нового клиента, система должна запускать сценарий обучения.
- Пользователь должен иметь возможность заказать товар в рассрочку.
- Система должна работать на устройствах Android с версии 11 и выше.
- Система должна обеспечивать возможность одновременного подключения 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 секунду» — это NFR (Performance), хотя слова про «вход» (FR) могут запутать.
- «Должна шифровать данные» — пограничный случай. Если это функция (явно вызывается), то FR. Если свойство (всё пишется в зашифрованной БД) — NFR.
- NFR часто забывают. Команда фиксирует FR-ы, а на проде падает по нагрузке. NFR-ы критичны для архитектурных решений.
Эталонный ответ
4 (поддержка Android 11+) и 5 (25 000 одновременных пользователей) — нефункциональные требования (Compatibility и Performance/Scalability соответственно).