HOME

TheInfoList



OR:

In
systems engineering Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their Enterprise life cycle, life cycles. At its core, systems engineering uti ...
and
requirements engineering Requirements engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It is a common role in systems engineering and software engineering. The first use of the term ''requiremen ...
, a non-functional requirement (NFR) is a
requirement In engineering, a requirement is a condition that must be satisfied for the output of a work effort to be acceptable. It is an explicit, objective, clear and often quantitative description of a condition to be satisfied by a material, design, pro ...
that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with
functional requirement In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a summary (or specification or statement) of behavior between inputs and outputs. Functiona ...
s 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 Architecturally significant requirements are those requirements that have a measurable effect on a computer system’s architecture. This can comprise both software and hardware requirements. They are a subset of requirements that affect a system ...
. In
software architecture Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
, non-functional requirements are known as "architectural characteristics". Note that synchronous communication between software architectural components entangles them, and they must share the same architectural characteristics.


Definition

Broadly, functional requirements define what a system is supposed to ''do'' and non-functional requirements define how a system is supposed to ''be''.
Functional requirement In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a summary (or specification or statement) of behavior between inputs and outputs. Functiona ...
s are usually in the form of "system shall do ", an individual action or part of the system, perhaps explicitly in the sense of a
mathematical function In mathematics, a function from a set (mathematics), set to a set assigns to each element of exactly one element of .; the words ''map'', ''mapping'', ''transformation'', ''correspondence'', and ''operator'' are sometimes used synonymously. ...
, a
black box In science, computing, and engineering, a black box is a system which can be viewed in terms of its inputs and outputs (or transfer characteristics), without any knowledge of its internal workings. Its implementation is "opaque" (black). The te ...
description input, output, process and control
functional model In systems engineering, software engineering, and computer science, a function model or functional model is a structured representation of the Function (engineering), functions (Activity diagram, activities, Task analysis, actions, wikt:process, pr ...
or IPO model. In contrast, non-functional requirements are in the form of "system shall be ", 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. The emergent propertiesSee definition i
SeBoK Glossary
/ref> of a system are classified as non-functional requirements. 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 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 functio ...
", 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 Testability is a primary aspect of science and the scientific method. There are two components to testability: #Falsifiability or defeasibility, which means that counterexamples to the hypothesis are logically possible. #The practical feasibilit ...
, 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.


Classification of non-functional requirements

Common non-functional classifications, relevant for all types of systems include * Performance * Reliability, availability, maintainability and safety * Scalability * Testability Specific type of systems explicitly enumerate categories of non-functional requirements in their standards * Hardware systems * Embedded systems * Safety-critical systems * Software systems


Examples

A system may be required to present the user with a display of the number of records in a database. This is a functional requirement. How current this number needs to be, is a non-functional requirement. If the number needs to be updated in real time, the system architects must ensure that the system is capable of displaying the record count within an acceptably short interval of the number of records changing. Sufficient network bandwidth may be a non-functional requirement of a system. Other examples include: * Accessibility *
Adaptability Adaptability ( "fit to, adjust") is a feature of a system or of a process. This word has been put to use as a specialised term in different disciplines and in business operations. Word definitions of adaptability as a specialised term differ littl ...
*
Auditability An audit is an "independent examination of financial information of any entity, whether profit oriented or not, irrespective of its size or legal form when such an examination is conducted with a view to express an opinion thereon." Auditing al ...
and control *
Availability In reliability engineering, the term availability has the following meanings: * The degree to which a system, subsystem or equipment is in a specified operable and committable state at the start of a mission, when the mission is called for at ...
(see
service level agreement A service-level agreement (SLA) is an agreement between a service provider and a customer. Particular aspects of the service – quality, availability, responsibilities – are agreed between the service provider and the service user. T ...
) *
Backup In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "wikt:back ...
* Boot up time * Capacity, current and forecast *
Certification Certification is part of testing, inspection and certification and the provision by an independent body of written assurance (a certificate) that the product, service or system in question meets specific requirements. It is the formal attestatio ...
* Compliance *
Configuration management Configuration management (CM) is a management process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. ...
* Conformance * Cost, initial and life-cycle cost *
Data integrity Data integrity is the maintenance of, and the assurance of, data accuracy and consistency over its entire Information Lifecycle Management, life-cycle. It is a critical aspect to the design, implementation, and usage of any system that stores, proc ...
*
Data retention Data retention defines the policies of persistent data and records management for meeting legal and business data archival requirements. Although sometimes interchangeable, it is not to be confused with the Data Protection Act 1998. The differe ...
* Dependency on other parties * Deployment * Development environment *
Disaster recovery IT disaster recovery (also, simply disaster recovery (DR)) is the process of maintaining or reestablishing vital infrastructure and systems following a natural or human-induced disaster, such as a storm or battle. DR employs policies, tools, ...
*
Documentation Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance, and use. As a form of knowledge managem ...
*
Durability Durability is the ability of a physical product to remain functional, without requiring excessive maintenance or repair, when faced with the challenges of normal operation over its design lifetime. There are several measures of durability in us ...
*
Efficiency Efficiency is the often measurable ability to avoid making mistakes or wasting materials, energy, efforts, money, and time while performing a task. In a more general sense, it is the ability to do things well, successfully, and without waste. ...
(resource consumption for given load) *
Effectiveness Effectiveness or effectivity is the capability of producing a desired result or the ability to produce desired output. When something is deemed effective, it means it has an intended or expected outcome, or produces a deep, vivid impression. Et ...
(resulting performance in relation to effort) * Elasticity * Emotional factors (like fun or absorbing or has "wow factor") *
Environmental protection Environmental protection, or environment protection, refers to the taking of measures to protecting the natural environment, prevent pollution and maintain ecological balance. Action may be taken by individuals, advocacy groups and governments. ...
*
Escrow An escrow is a contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transact ...
* Ethics * Exploitability *
Extensibility Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be t ...
(adding features, and carry-forward of customizations at next major version upgrade) * Failure management *
Fault tolerance Fault tolerance is the ability of a system to maintain proper operation despite failures or faults in one or more of its components. This capability is essential for high-availability, mission-critical, or even life-critical systems. Fault t ...
(e.g. operational system monitoring, measuring, and management) * Flexibility (e.g. to deal with future changes in requirements) * Footprint reduction - reduce the exe files size * Integrability (e.g. ability to integrate components) *
Internationalization and localization In computing, internationalization and localization (American English, American) or internationalisation and localisation (British English, British), often abbreviated i18n and l10n respectively, are means of adapting to different languages, regi ...
*
Interoperability Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
* Legal and
licensing A license (American English) or licence ( Commonwealth English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit). A license is granted by a party (licensor) to another par ...
issues or patent-infringement-avoidability *
Maintainability Maintainability is the ease of maintaining or providing maintenance for a functioning product or service. Depending on the field, it can have slightly different meanings. Usage in different fields Engineering In engineering, maintainability ...
(e.g.
mean time to repair Mean time to repair (MTTR) is a basic measure of the maintainability of repairable items. It represents the average time required to repair a failed component or device. Expressed mathematically, it is the total corrective maintenance time for ...
– MTTR) * Management * Memory optimization * Modifiability *
Network topology Network topology is the arrangement of the elements (Data link, links, Node (networking), nodes, etc.) of a communication network. Network topology can be used to define or describe the arrangement of various types of telecommunication networks, ...
*
Open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
* Operability *
Performance A performance is an act or process of staging or presenting a play, concert, or other form of entertainment. It is also defined as the action or process of carrying out or accomplishing an action, task, or function. Performance has evolved glo ...
/ response time (
performance engineering Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance (such as throughput, latency, or memory usage) will be met. It may be alternatively refe ...
) * Platform compatibility *
Privacy Privacy (, ) is the ability of an individual or group to seclude themselves or information about themselves, and thereby express themselves selectively. The domain of privacy partially overlaps with security, which can include the concepts of a ...
(compliance to
privacy law Privacy law is a set of regulations that govern the collection, storage, and utilization of personal information from healthcare, governments, companies, public or private entities, or individuals. Privacy laws are examined in relation to an ind ...
s) * Portability *
Quality Quality may refer to: Concepts *Quality (business), the ''non-inferiority'' or ''superiority'' of something *Quality (philosophy), an attribute or a property *Quality (physics), in response theory *Energy quality, used in various science discipli ...
(e.g. faults discovered, faults delivered, fault removal
efficacy Efficacy is the ability to perform a task to a satisfactory or expected degree. The word comes from the same roots as '' effectiveness'', and it has often been used synonymously, although in pharmacology a distinction is now often made betwee ...
) * Readability * Reliability (e.g. mean time between/to failures – MTBF/MTTF) * Reporting * Resilience * Resource constraints (processor speed, memory, disk space, network bandwidth, etc.) * Response time *
Reusability In computer programming, reusability describes the quality of a software asset that affects its ability to be used in a software system for which it was ''not'' specifically designed. An asset that is easy to reuse and provides utility is conside ...
*
Robustness Robustness is the property of being strong and healthy in constitution. When it is transposed into a system A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, ...
*
Safety Safety is the state of being protected from harm or other danger. Safety can also refer to the control of recognized hazards in order to achieve an acceptable level of risk. Meanings The word 'safety' entered the English language in the 1 ...
or
factor of safety In engineering, a factor of safety (FoS) or safety factor (SF) expresses how much stronger a system is than it needs to be for its specified maximum load. Safety factors are often calculated using detailed analysis because comprehensive testing i ...
*
Scalability Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system. In an economic context, a scalable business model implies that ...
(horizontal, vertical) *
Security Security is protection from, or resilience against, potential harm (or other unwanted coercion). Beneficiaries (technically referents) of security may be persons and social groups, objects and institutions, ecosystems, or any other entity or ...
(cyber and physical) * Software, tools, standards etc. Compatibility *
Stability Stability may refer to: Mathematics *Stability theory, the study of the stability of solutions to differential equations and dynamical systems ** Asymptotic stability ** Exponential stability ** Linear stability **Lyapunov stability ** Marginal s ...
* Supportability *
Testability Testability is a primary aspect of science and the scientific method. There are two components to testability: #Falsifiability or defeasibility, which means that counterexamples to the hypothesis are logically possible. #The practical feasibilit ...
*
Throughput Network throughput (or just throughput, when in context) refers to the rate of message delivery over a communication channel in a communication network, such as Ethernet or packet radio. The data that these messages contain may be delivered ov ...
* Transparency *
Usability Usability can be described as the capacity of a system to provide a condition for its users to perform the tasks safely, effectively, and efficiently while enjoying the experience. In software engineering, usability is the degree to which a softw ...
(human factors) by target user community * Volume testing


See also

* ISO/IEC 25010:2011 * Consortium for IT Software Quality *
ISO/IEC 9126 ISO/IEC 9126 ''Software engineering — Product quality'' was an international standard for the evaluation of software quality. It has been replaced by ISO/IEC 25010:2011. The fundamental objective of the ISO/IEC 9126 standard is to address som ...
* FURPS *
Requirements analysis In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the v ...
* Usability requirements * Non-Functional Requirements framework *
Architecturally Significant Requirements Architecturally significant requirements are those requirements that have a measurable effect on a computer system’s architecture. This can comprise both software and hardware requirements. They are a subset of requirements that affect a system ...
* SNAP Points


References


Notes


External links

* * * * * * {{Authority control Software requirements Systems engineering Software quality Management cybernetics