Нефункциональные требования в системной инженерии: что это, чем отличаются от функциональных, роль в архитектуре системы. Оптимизация и качество системы.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Тип требования в системной инженерии
Type of requirement in systems engineering
В системной инженерии и инженерии требований нефункциональное требование (НФР) — это требование, которое определяет критерии, используемые для оценки работы системы, а не конкретные действия или поведение. Они противопоставляются функциональным требованиям, которые определяют конкретное поведение или функции. План реализации функциональных требований подробно описывается в проекте системы. План реализации нефункциональных требований подробно описывается в архитектуре системы, поскольку они обычно являются требованиями, имеющими архитектурное значение.
In systems engineering and requirements engineering, a non functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with functional requirements that define specific behavior or functions. The plan for implementing functional requirements is detailed in the system design. The plan for implementing non functional requirements is detailed in the system architecture, because they are usually architecturally significant requirements.
Определение
В общем, функциональные требования определяют, что система должна делать, а нефункциональные требования – каким образом система должна это делать. Функциональные требования обычно формулируются как "система должна выполнять <требование>", описывая отдельное действие или часть системы, возможно, в виде математической функции, модели "черного ящика", описывающей входные данные, выходные данные, процессы и управление, или модели "вход-процесс-выход" (IPO). В отличие от них, нефункциональные требования формулируются как "система должна обладать <требованием>", определяя общее свойство системы в целом или ее конкретного аспекта, а не отдельной функции. Именно общие свойства системы часто определяют успех или неудачу проекта разработки. Нефункциональные требования часто называют "атрибутами качества" системы. Другие термины для нефункциональных требований включают "качества", "цели в области качества", "требования к качеству обслуживания", "ограничения", "нефункциональные требования" или "технические требования". Неформально их иногда называют "илити" (ilities), от таких атрибутов, как стабильность и переносимость. Качества – то есть нефункциональные требования – можно разделить на две основные категории:
Broadly, functional requirements define what a system is supposed to do and non functional requirements define how a system is supposed to be. Functional requirements are usually in the form of "system shall do <requirement>", an individual action or part of the system, perhaps explicitly in the sense of a mathematical function, a black box description input, output, process and control functional model or IPO Model. In contrast, non functional requirements are in the form of "system shall be <requirement>", an overall property of the system as a whole or of a particular aspect and not a specific function. The system's overall properties commonly mark the difference between whether the development project has succeeded or failed. Non functional requirements are often called the "quality attributes" of a system. Other terms for non functional requirements are "qualities", "quality goals", "quality of service requirements", "constraints", "non behavioral requirements", or "technical requirements". Informally these are sometimes called the "ilities", from attributes like stability and portability. Qualities—that is non functional requirements—can be divided into two main categories:
Качества, проявляющиеся в процессе эксплуатации (во время выполнения), такие как безопасность, защищенность и удобство использования. Качества, определяющие эволюцию системы, такие как тестируемость, поддерживаемость, расширяемость и масштабируемость, которые заложены в ее статической структуре. Важно формулировать нефункциональные требования конкретно и измеримо.
Execution qualities, such as safety, security and usability, which are observable during operation (at run time). Evolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the system. It is important to specify non functional requirements in a specific and measurable way.