Какая классификация нефункциональных требований?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Классификация нефункциональных требований
Нефункциональные требования (Non-Functional Requirements, NFR) определяют свойства и характеристики системы, которые описывают, как система должна работать, а не что она должна делать. Существует несколько подходов к их классификации.
По ISO/IEC 25010 (Product Quality Model)
Это наиболее официальный и признанный стандарт классификации:
1. Функциональная полнота (Functional Completeness)
- Соответствие всем предусмотренным функциям
- Полнота реализации требований
2. Производительность (Performance)
- Время отклика (response time)
- Пропускная способность (throughput)
- Использование ресурсов (CPU, память)
- Пример: система должна обрабатывать 1000 запросов в секунду с временем ответа менее 200 мс
3. Совместимость (Compatibility)
- Взаимозаменяемость (replaceability)
- Сосуществование (coexistence) с другими системами
- Интероперабельность (interoperability)
4. Надежность (Reliability)
- Зрелость (maturity) — частота отказов
- Доступность (availability) — процент времени работы
- Отказоустойчивость (fault tolerance)
- Восстанавливаемость (recoverability)
- Пример: система должна иметь 99.9% uptime
5. Безопасность (Security)
- Конфиденциальность (confidentiality) — защита от несанкционированного доступа
- Целостность (integrity) — защита от изменений данных
- Аутентификация (authentication)
- Авторизация (authorization)
- Неотказуемость (non-repudiation)
- Пример: использование HTTPS, двухфакторная аутентификация
6. Удобство использования (Usability)
- Узнаваемость (recognizability)
- Обучаемость (learnability)
- Управляемость (operability)
- Защита от ошибок (error protection)
- Эстетика пользовательского интерфейса (UI aesthetics)
- Доступность (accessibility)
7. Переносимость (Portability)
- Адаптируемость (adaptability) к разным окружениям
- Устанавливаемость (installability)
- Взаимозаменяемость (replaceability)
8. Удержируемость (Maintainability)
- Модульность (modularity)
- Переиспользуемость (reusability)
- Анализируемость (analysability)
- Модифицируемость (modifiability)
- Тестируемость (testability)
Альтернативные классификации
По FURPS+ модели:
- Functionality (функциональность)
- Usability (удобство)
- Reliability (надежность)
- Performance (производительность)
- Security (безопасность)
- Plus: Design, Implementation, Interface, Physical требования
По ILITY классификации (по суффиксам):
- Reliability
- Scalability
- Maintainability
- Availability
- Security
- Usability
- Accessibility
По областям:
- Бизнес-требования: ROI, время выхода на рынок
- Пользовательские требования: удобство, скорость
- Операционные требования: масштабируемость, поддерживаемость
- Технические требования: совместимость, стандарты
Таблица сравнения характеристик
| Требование | Метрика | Пример |
|---|---|---|
| Производительность | ms, req/s | < 200 ms для 95% запросов |
| Надежность | % uptime, MTBF | 99.95% доступность |
| Безопасность | уровень шифрования | TLS 1.3, 256-bit |
| Масштабируемость | пользователей | до 10 млн одновременных |
| Доступность | поддерживаемые платформы | Web, iOS, Android |
Практическое применение
При разработке системы аналитик должен:
- Определить все категории NFR, релевантные проекту
- Задать измеримые метрики для каждого требования
- Установить приоритеты (essential, important, nice-to-have)
- Документировать в SRS или requirements document
- Получить согласие всех заинтересованных сторон
Хорошее нефункциональное требование должно быть SMART: Specific (конкретное), Measurable (измеримое), Achievable (достижимое), Relevant (релевантное), Time-bound (с временными рамками).
Это позволяет архитекторам и разработчикам принимать правильные решения на этапе проектирования и избежать недоразумений при приемке системы.