В системной инженерии и инженерии требований нефункциональное требование ( NFR ) — это требование , которое определяет критерии, которые могут быть использованы для оценки работы системы, а не конкретные поведения. Они противопоставляются функциональным требованиям , которые определяют конкретное поведение или функции. План реализации функциональных требований подробно описан в проекте системы . План реализации нефункциональных требований подробно описан в архитектуре системы , поскольку они обычно являются архитектурно значимыми требованиями . [1]
В архитектуре программного обеспечения нефункциональные требования известны как «архитектурные характеристики». Обратите внимание, что синхронная связь между компонентами архитектуры программного обеспечения запутывает их, и они должны иметь одни и те же архитектурные характеристики. [2]
Определение
В широком смысле функциональные требования определяют, что система должна делать , а нефункциональные требования определяют, как система должна быть . Функциональные требования обычно имеют форму «система должна делать <требование>», отдельное действие или часть системы, возможно, явно в смысле математической функции , черного ящика , описания ввода, вывода, процесса и управления функциональной модели или модели IPO . Напротив, нефункциональные требования имеют форму «система должна быть <требование>», общее свойство системы в целом или конкретного аспекта, а не конкретная функция. Общие свойства системы обычно отмечают разницу между тем, был ли проект разработки успешным или неудачным.
Нефункциональные требования часто называют « атрибутами качества » системы. Другие термины для нефункциональных требований — «качества», «цели качества», «требования к качеству обслуживания», «ограничения», «неповеденческие требования» [3] или «технические требования». [4] Неформально их иногда называют «илитиями» от таких атрибутов, как стабильность и переносимость. Качества — то есть нефункциональные требования — можно разделить на две основные категории:
Качества исполнения, такие как безопасность, надежность и удобство использования, которые можно наблюдать в процессе эксплуатации (во время выполнения).
Качества эволюции, такие как тестируемость , поддерживаемость, расширяемость и масштабируемость, воплощенные в статической структуре системы. [5] [6]
Важно указать нефункциональные требования конкретным и измеримым образом. [7] [8]
Система может быть обязана предоставить пользователю отображение количества записей в базе данных. Это функциональное требование. Насколько актуальным должно быть это число, является нефункциональным требованием. Если число должно обновляться в режиме реального времени , системные архитекторы должны гарантировать, что система способна отображать количество записей в течение приемлемо короткого интервала изменения количества записей.
Достаточная пропускная способность сети может быть нефункциональным требованием системы. Другие примеры включают:
^ Глинц, Мартин (2008). «Подход к требованиям к качеству, основанный на оценке рисков и ценностно-ориентированный» (PDF) . IEEE Software . 25 (2): 34–41. doi :10.1109/MS.2008.31. S2CID 19015424.
Dalbey, John. "Нефункциональные требования". Csc.calpoly.edu . Получено 3 октября 2017 г. .
"Моделирование нефункциональных аспектов в сервисно-ориентированной архитектуре" (PDF) . Cs.umb.edu . Архивировано из оригинала (PDF) 24 июля 2011 г. . Получено 3 октября 2017 г. .
«Нефункциональные требования: действительно ли помогают пользовательские истории?». Methodsandtools.com . Получено 3 октября 2017 г. .
«Нефункциональные требования здесь — CISQ — Консорциум по качеству ИТ-ПО». it-cisq.org . Получено 3 октября 2017 г. .
««Соответствуют ли архитектуры программного обеспечения дополнительным функциональным или нефункциональным требованиям?»». 19 ноября 2020 г.