Что такое нефункциональные требования?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Нефункциональные Требования
Нефункциональные требования описывают, как должна работать система, а не что она должна делать. Они определяют качественные характеристики: скорость, надежность, безопасность, совместимость и другие параметры.
Функциональные vs Нефункциональные Требования
Функциональные требования:
- Что система делает
- Пример: "Система позволяет пользователю загрузить файл"
Нефункциональные требования:
- Как система это делает
- Пример: "Загрузка файла должна занимать < 5 секунд"
Основные Категории NFR
1. Производительность (Performance)
- Время отклика API: < 200ms
- Время загрузки страницы: < 3 сек
- Пропускная способность: 1000 запросов/сек
- Использование памяти: < 512MB
2. Масштабируемость (Scalability)
- Система должна поддерживать 100,000 одновременных пользователей
- Должна справляться с увеличением нагрузки путем добавления серверов
- Линейный рост производительности при добавлении ресурсов
3. Надежность (Reliability)
- SLA 99.9% (31 минута простоя в месяц)
- MTBF 10,000 часов
- Система должна работать 24/7 без сбоев
4. Безопасность (Security)
- Все данные передаются по HTTPS
- Пароли хешируются bcrypt с коэффициентом >= 12
- 2FA для администраторов
- OWASP Top 10 защита
- GDPR compliance
5. Совместимость (Compatibility)
- Chrome, Firefox, Safari, Edge последних 2 версий
- iOS 12.0+, Android 8.0+
- Windows 10+, macOS 10.14+
6. Удобство (Usability)
- Интерфейс интуитивен без обучения
- WCAG 2.1 уровень AA (доступность)
- Поддержка 5+ языков
7. Поддерживаемость (Maintainability)
- Тесты >= 80% покрытия
- Код задокументирован
- Легко добавлять новые функции
8. Восстанавливаемость (Recoverability)
- RTO (время восстановления) < 1 часа
- RPO (потеря данных) < 15 минут
- Ежедневные резервные копии
9. Переносимость (Portability)
- Работает на разных платформах
- Код независим от платформы
10. Стоимость (Cost)
- Разработка < $100,000
- Операционные расходы < $5,000/месяц
Примеры NFR
Пример 1 — Производительность: "API получения списка товаров должен возвращать результат за < 100ms при 10,000 одновременных пользователей"
Пример 2 — Безопасность: "Все финансовые данные должны шифроваться AES-256 и передаваться исключительно по TLS 1.3"
Пример 3 — Совместимость: "Мобильное приложение должно работать на Android 8.0+, iOS 12.0+ и поддерживать экраны от 4 до 6.5 дюймов"
Пример 4 — Надежность: "Система должна обеспечивать 99.95% доступности, максимум 22 минуты простоя в месяц"
Почему NFR Важны
- Определяют качество системы
- Влияют на выбор архитектуры и технологии
- Могут значительно увеличить стоимость проекта
- Критичны для успеха: функциональная система, но медленная — отвергнута пользователями
- Требуют специальных методов тестирования (нагрузочное тестирование, stress testing)