НФТ (Нефункциональные требования)
Functional vs Non Functional Requirements - GeeksforGeeks
Нефункциональные требования (НФТ): Определяют ограничения, характеристики и требования к производительности, безопасности, надежности, доступности и т.д. Определяют качества системы
Функциональные требования описывают, ЧТО необходимо реализовать в продукте или системе, в т.ч. какие действия должны выполнять пользователи при взаимодействии с ними.
Нефункциональные требования описывают, КАК должна работать система или программный продукт, и какими свойствами или характеристиками она должна обладать.
НФТ - требования, определяющие свойства (атрибуты), которые система должна демонстрировать, и которые не относятся к поведению (функциональности) системы.
Нефункциональные требования описывают "как" система должна работать, включая аспекты, такие как производительность, безопасность, надежность, доступность и др.
Примеры нефункциональных требований:
Производительность: Система должна обрабатывать запросы от пользователей в течение 2 секунд.
Безопасность: Доступ к административным функциям системы должен быть защищен аутентификацией двухфакторным методом.
Надежность: Время между сбоями системы (время наработки на отказ) должно составлять не менее 500 часов.
Доступность: Система должна быть доступна для пользователей 99.9% времени, за исключением плановых работ, которые должны проводиться в ночное время.
Масштабируемость: Система должна поддерживать увеличение нагрузки на 50% без значительного ухудшения производительности.
Удобство использования: Интерфейс пользователя должен быть интуитивно понятным и удобным для работы.
Нефункциональные требования описывают качественные аспекты, которые определяют критически важные характеристики системы.
Картинка про НФТ к доступности:

Картинка про что из чего возникает и что во что выражается и транслируется:

В НФТ содержится много чего разного, но нас интересуют атрибуты качества, бизнес-правила и ограничения.
Виды НФТ:
-
Атрибуты качества - определяющие качественные характеристики ПО или системы (производительность, надежность, масштабируемость)
-
Ограничения - условия, ограничивающие возможности реализации требований или их наборов (Разработка должна вестись на платформе вендора X)
-
Бизнес-правила - правила, определяющие или ограничивающие некоторые аспекты бизнеса (Корпоративные политики, промышленные стандарты, правительственные постановления)
"Если оплата по счету не поступила в течение 15 дней, заказ считается отмененным",
"При отгрузке товара менеджер должен запросить у бухгалтера товарную накладную и счет-фактуру" -
Внешние интерфейсы - описание взаимодействия с другими системами и операционной средой (API, требования к API, других систем, с которыми осуществляется интеграция)
"Обеспечить запись в журнал операционной системы следующих событий: сообщения о запуске и остановке сервиса XX,"
"Обеспечить запись в журнал параметров модулей программы: сканера, ядра, антивирусных баз (информация должна заноситься в журнал при запуске программы и при обновлении модулей)"
-
Юридические требования - соблюдение законов (требования к лицензированию, патентной чистоте, другие юр. требования)
Общая классификация НФТ (4 большие группы)

ЭТО ОЧЕНЬ ВАЖНО!! (картинка снизу - ещё примеры НФТ)

Другие виды требований
Функциональные требования (Functional Requirements): Описывают конкретные функции, операции и возможности, которые должна выполнять система.
Нефункциональные требования (Non-Functional Requirements): Определяют ограничения и характеристики, такие как производительность, безопасность, надежность, доступность, удобство использования и другие.
Бизнес-требования (Business Requirements): Выражают потребности и цели бизнеса, которые система должна удовлетворить. Они обычно описывают контекст, в котором будет использоваться система.
Пользовательские требования (User Requirements): Определяют потребности и ожидания пользователей от системы, фокусируясь на том, как система будет использоваться в реальных сценариях.
Системные требования (System Requirements): Включают технические детали, такие как аппаратные и программные требования, системные архитектурные компоненты и т.д.
Требования к интерфейсам (Interface Requirements): Описывают, как система будет взаимодействовать с другими системами, сторонними сервисами и пользователями через различные интерфейсы.