← Назад к вопросам
Приведите пример не функциональных требований
1.0 Junior🔥 231 комментариев
#Требования и их анализ
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Нефункциональные требования (Non-Functional Requirements)
Нефункциональные требования описывают как система должна работать, а не что она должна делать. Это требования к качеству, производительности, безопасности и другим характеристикам.
Категории нефункциональных требований
1. Производительность (Performance)
- Время ответа API должно быть менее 200 мс в 99 процентиле
- Страница должна загружаться за менее 2 секунд на сети 3G
- Система должна обрабатывать 10000 пользователей одновременно
- Одна операция поиска не должна занимать более 1 секунды
- Batch процесс должен завершиться за менее 1 часа
2. Масштабируемость (Scalability)
- Система должна горизонтально масштабироваться до 1000 серверов
- База данных должна поддерживать 1 миллиард записей
- Память должна использоваться не более 80 процентов
- При увеличении нагрузки в 10 раз производительность снижается не более чем на 20 процентов
3. Надёжность (Reliability)
- Uptime системы должен быть не менее 99.9 процентов
- Среднее время между сбоями (MTBF) должно быть более 1000 часов
- Среднее время восстановления (MTTR) должно быть менее 30 минут
- Система должна восстанавливаться автоматически при сбое сервера
4. Безопасность (Security)
- Все данные при передаче должны шифроваться с использованием TLS 1.3
- Пароли должны быть хеширваны с помощью bcrypt или argon2
- Система должна защищаться от SQL-инъекций и XSS атак
- Логирование всех операций с конфиденциальными данными (audit trail)
- Двухфакторная аутентификация должна быть доступна
- Доступ на основе ролей (RBAC) для всех функций
5. Доступность (Availability)
- Система должна быть доступна 24/7 365 дней в году
- Плановое обслуживание должно происходить не более 4 часов в месяц
- Важные функции должны быть доступны в режиме graceful degradation
6. Удобство использования (Usability)
- Новый пользователь должен освоиться за менее 15 минут
- 95 процентов операций должны завершаться за менее 3 клика
- Интерфейс должен соответствовать стандартам WCAG 2.1 Level AA (доступность)
- Поддерживаемы языки: русский, английский, немецкий
7. Тестируемость (Testability)
- Покрытие код тестами должно быть не менее 80 процентов
- Все компоненты должны иметь Unit тесты
- Система должна иметь автоматизированные E2E тесты
- Возможность запуска тестов в изолированной среде
8. Совместимость (Compatibility)
- Поддержка последних двух версий всех основных браузеров
- Поддержка iOS 14+ и Android 10+
- API должен быть совместим с REST стандартом
- Поддержка JSON и XML форматов
9. Поддерживаемость (Maintainability)
- Код должен следовать стандартам PEP8 (Python) или Google Style Guide
- Каждая функция должна быть документирована
- Система должна быть развёртываемой за менее чем 15 минут
- Логирование всех критических событий
10. Восстанавливаемость (Recoverability)
- При сбое данные не должны потеряться
- Резервные копии должны создаваться каждый час
- Восстановление из резервной копии за менее 30 минут
- Система должна хранить транзакционные логи минимум 90 дней
Пример полного набора требований
Функциональное требование: Пользователь может создать профиль и добавить аватар
Нефункциональные требования:
- Аватар загружается за менее 2 секунд (производительность)
- Максимальный размер аватара 5 МБ (масштабируемость)
- Аватар хранится в защищённом хранилище (безопасность)
- Форма совместима с Safari, Chrome, Firefox (совместимость)
- Новый пользователь может добавить аватар за 1 минуту (удобство)
- Процесс загрузки документирован (поддерживаемость)
Как тестировать нефункциональные требования
- Производительность: JMeter, Gatling, LoadRunner
- Безопасность: OWASP ZAP, Burp Suite
- Совместимость: BrowserStack, Sauce Labs
- Доступность: WAVE, Axe DevTools
- Надёжность: chaos engineering (Gremlin)
Вывод
Нефункциональные требования часто упускаются но критичны для успеха проекта. Их нужно определять на ранних этапах и тестировать на протяжении разработки.