В системной инженерии и разработке требований нефункциональное требование — это требование, определяющее критерии, которые можно использовать для оценки работы системы, а не конкретного поведения. Им противопоставляются функциональные требования, которые определяют конкретное поведение или функции.
Нефункциональные требования часто ошибочно называют «атрибутами качества» системы, однако между ними есть различие. Нефункциональные требования — это критерии оценки того, как должна работать программная система, и программная система должна иметь определенные атрибуты качества, чтобы соответствовать нефункциональным требованиям. Поэтому, когда мы говорим, что система должна быть «безопасной», «высокодоступной», «портативной», «масштабируемой» и т. д., мы имеем в виду ее качественные характеристики. Другими терминами для нефункциональных требований являются «качества», «цели в области качества», «требования к качеству обслуживания», «ограничения», «неповеденческие требования» или «технические требования».", исходя из таких атрибутов, как стабильность и переносимость.
Согласно стандарту ISO 9000, качество Х - это соответствие ожиданиям ключевых лиц. Или другими словами сугубо субъективная мера.
НФТ делятся на:
Уровни качества:
Производительность - сборный параметр, который может включать количество одновременно работающих пользователей, частоту запросов от пользователя в минуту и т.д. Определяет, насколько быстро программная система или ее конкретная часть реагирует на определенные действия пользователей при определенной рабочей нагрузке. В большинстве случаев эта метрика объясняет, сколько пользователь должен ждать, прежде чем произойдет целевая операция (отрисовка страницы, обработка транзакции и т. д.) с учетом общего количества пользователей в данный момент. Но это не всегда так. Требования к производительности могут описывать фоновые процессы, невидимые для пользователей, например резервное копирование.;
Эффективность - соотношения результатов к затратам. Обычно данный показатель аналитик не рассчитывает самостоятельно;
Масштабируемость - способность справляться с увеличением рабочей нагрузки. Оценивает самые высокие рабочие нагрузки, при которых система по-прежнему будет соответствовать требованиям к производительности;
Доступность ПО для взаимодействия пользователя или другой системы. Насколько вероятно, что система доступна для пользователя в данный момент времени. Хотя его можно выразить как процент вероятности, вы также можете определить его как процент времени, в течение которого система доступна для работы в течение некоторого периода времени. Например, система может быть доступна 98 процентов времени в течение месяца.;
Надежность - вероятность сбоя без ущерба, а также время восстановления после сбоя. ;
Этот атрибут качества указывает, насколько вероятно, что система или ее элемент будут работать без сбоев в течение заданного периода времени при заранее определенных условиях. Традиционно это выражается в процентах вероятности. Например, если система имеет 85-процентную надежность в течение месяца, это означает, что в течение этого месяца при нормальных условиях использования существует 85-процентная вероятность того, что система не испытает критических сбоев.
Довольно сложно определить критический сбой, время и нормальные условия использования. Другой, несколько более простой подход к этой метрике — подсчет количества критических ошибок, обнаруженных в рабочей среде за некоторый период времени, или расчет среднего времени до отказа. Три способа измерения:
Информационная безопасность - стоимость организации несанкционированного доступа к результатам взлома. Это нефункциональное требование гарантирует, что все данные внутри системы или ее части будут защищены от атак вредоносных программ или несанкционированного доступа.
<aside> 💡 Статья про внешнее качество Видео про НФТ (Производительность, масштабируемость, локализация)
</aside>
Условия, ограничивающие выбор возможных решений по реализации отдельных требований или их наборов. Они существенно ограничивают выбор средств, инструментов и стратегий при разработке внешнего вида и структуры (в т.ч. архитектуры) продукта или системы.
Типы ограничений: