Как определить и классифицировать нефункциональные требования в проекте
Нефункциональные требования (НФТ) определяют атрибуты качества системы, описывая, как она должна работать, определяя такие аспекты, как производительность, надежность, безопасность, удобство использования и масштабируемость, в отличие от функциональных требований, которые описывают её поведение.
Игнорирование НФТ — одна из ключевых проблем в системном анализе, которая может привести к сбоям, низкой производительности и ухудшению пользовательского опыта. Основная цель НФТ — гарантировать, что разработанная система будет эффективной, безопасной и устойчивой в реальных условиях эксплуатации.
Примеры НФТ:
- Надежность: Система должна быть доступна 99,9% времени.
- Масштабируемость: Система должна обслуживать до 25 000 одновременных пользователей.
- Безопасность: Система должна поддерживать многофакторную аутентификацию.
Классификация нефункциональных требований по типу систем
Нефункциональные требования могут значительно варьироваться в зависимости от особенностей проекта и типа системы.
1. Высоконагруженные системы
Для систем, обрабатывающих большие объемы данных и запросов (например, маркетплейсы, социальные сети), ключевыми НФТ являются:
- Масштабируемость:
- Система должна поддерживать кэширование часто запрашиваемых данных.
- Система должна включать балансировку нагрузки.
- Система должна поддерживать кластеризацию базы данных.
- Производительность:
- Время ответа на запросы не должно превышать 1 секунду в 95% случаев.
- Система должна выдерживать пиковые нагрузки до 10 000 одновременных пользователей.
- Мониторинг и оповещения:
- Система должна отправлять уведомления при достижении 80% загрузки критических ресурсов.
2. Системы с повышенными требованиями к безопасности
Для систем, работающих с конфиденциальными данными (банковские, медицинские приложения), НФТ сосредоточены на защите информации.
- Аутентификация и доступ:
- Система должна поддерживать многофакторную аутентификацию (MFA), включая использование одноразовых паролей (OTP) или биометрии.
- Доступ к функциональности должен регулироваться с помощью ролей и прав доступа.
- Шифрование и защита данных:
- Все данные должны быть зашифрованы при передаче и хранении.
- Система должна автоматически завершать сеанс пользователя при бездействии (10 минут).
- Логирование и аудит:
- Система должна записывать все действия пользователей для последующего аудита.
3. Системы с высокими требованиями к доступности
Для критически важных систем, где любой сбой влечет финансовые или репутационные потери, особое внимание уделяется:
- Доступность:
- Гарантия доступности на уровне SLA (например, 99,95%).
- Восстановление системы после сбоя не должно превышать 1 часа.
- Надежность:
- Среднее время между отказами для критических компонентов должно быть не менее 30 дней.
- Производительность:
- Система должна поддерживать стабильную работу под высокой нагрузкой с помощью резервных механизмов.
4. Приложения с ограниченными ресурсами
Для мобильных приложений и IoT-устройств требования касаются эффективного использования ресурсов.
- Оптимизация ресурсов:
- Потребление оперативной памяти не должно превышать 100 МБ.
- Система должна загружаться на устройстве с ограниченными ресурсами (например, 2 ГБ оперативной памяти) не более чем за 5 секунд.
- Устойчивость:
- Система должна стабильно работать при нестабильном интернет-соединении, с локальным сохранением данных
- Удобство использования:
- Поддержка быстрого восстановления сессии после прерывания.
5. Пользовательские системы с повышенными требованиями к удобству
Для систем, рассчитанных на пользователей с минимальными техническими навыками, важен пользовательский опыт.
- Интерфейс:
- Ключевые пользовательские задачи должны выполняться в 3 клика.
- Совместимость с технологиями доступности (например, экранными дикторами).
- Подсказки и помощь:
- Встроенные пошаговые руководства.
- Установка:
- Время установки и настройки приложения не должно превышать 5 минут.
6. Архивные системы
Для приложений, работающих с редко используемыми данными, НФТ связаны с их хранением и управлением.
- Управление данными:
- Система должна автоматически перемещать редко используемые данные в холодное хранилище через 30 дней после последнего доступа к ним.
- Обеспечение резервного копирования данных с определенной периодичностью не реже одного раза в месяц.
Как определить нефункциональные требования?
Для успешного выявления нефункциональных требований важно задавать четкие, конкретные и контекстуальные вопросы, которые помогают уточнить характеристики системы.
Сфокусируйтесь на таких аспектах, как производительность, безопасность, масштабируемость, удобство использования и надежность.
Например, задайте вопросы:
- Производительность: «Какое максимальное время отклика системы приемлемо при пиковых нагрузках?»
- Безопасность: «Какие механизмы аутентификации и защиты данных должны быть предусмотрены?» Избегайте общих формулировок, которые могут привести к размытым ответам.
- Доступность: Уточняющие вопросы, например, «Какие данные требуют шифрования?» или «Какая доступность системы критична для бизнеса?», помогут выявить конкретные ожидания. Обязательно учитывайте разные сценарии использования и предпочтения конечных пользователей.
Правильная классификация и учёт НФТ на этапе проектирования — основа успешного проекта. Это снижает риски и создает надежный и конкурентоспособный продукт, соответствующий ожиданиям пользователей.
Другие статьи
Use Case vs. User Story: как выбрать правильный инструмент для проекта
Оба этих инструмента помогают командам лучше понять потребности пользователей и определить функциональные требования к продукту…
Влияние моделей ACID и BASE на выбор хранилища данных
Эти два подхода определяют степень консистентности данных и надежности системы…
NoSQL базы данных: основные виды и их отличия для системного аналитика
Когда речь заходит о хранении данных, есть два основных подхода — реляционные и нереляционные базы данных.