Как определить и классифицировать нефункциональные требования в проекте

Нефункциональные требования (НФТ) определяют атрибуты качества системы, описывая, как она должна работать, определяя такие аспекты, как производительность, надежность, безопасность, удобство использования и масштабируемость, в отличие от функциональных требований, которые описывают её поведение.

Игнорирование НФТ — одна из ключевых проблем в системном анализе,  которая может привести к сбоям, низкой производительности и ухудшению пользовательского опыта. Основная цель НФТ — гарантировать, что разработанная система будет эффективной, безопасной и устойчивой в реальных условиях эксплуатации.

Примеры НФТ:

  • Надежность: Система должна быть доступна 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 дней после последнего доступа к ним.
    • Обеспечение резервного копирования данных с определенной периодичностью не реже одного раза в месяц.

Как определить нефункциональные требования?

Для успешного выявления нефункциональных требований важно задавать четкие, конкретные и контекстуальные вопросы, которые помогают уточнить характеристики системы.

Сфокусируйтесь на таких аспектах, как производительность, безопасность, масштабируемость, удобство использования и надежность.

Например, задайте вопросы:

  • Производительность: «Какое максимальное время отклика системы приемлемо при пиковых нагрузках?»
  • Безопасность: «Какие механизмы аутентификации и защиты данных должны быть предусмотрены?» Избегайте общих формулировок, которые могут привести к размытым ответам.
  • Доступность: Уточняющие вопросы, например, «Какие данные требуют шифрования?» или «Какая доступность системы критична для бизнеса?», помогут выявить конкретные ожидания. Обязательно учитывайте разные сценарии использования и предпочтения конечных пользователей.

Правильная классификация и учёт НФТ на этапе проектирования — основа успешного проекта. Это снижает риски и создает надежный и конкурентоспособный продукт, соответствующий ожиданиям пользователей.