Non-functional requirements
Encyclopedia
In systems engineering
Systems engineering
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed over the life cycle of the project. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more...

 and requirements engineering
Requirements engineering
Requirements engineering is a systems and software engineering process which covers all of the activities involved in discovering, documenting and maintaining a set of requirements for a computer-based system...

, a non-functional requirement is a requirement
Requirement
In engineering, a requirement is a singular documented physical and functional need that a particular product or service must be or perform. It is most commonly used in a formal sense in systems engineering, software engineering, or enterprise engineering...

 that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted with functional requirements
Functional requirements
In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

 that define specific behavior or functions. The plan for implementing functional requirements is detailed in the system design
Systems design
Systems design is the process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. One could see it as the application of systems theory to product development...

. The plan for implementing non-functional requirements is detailed in the system architecture
Systems architecture
A system architecture or systems architecture is the conceptual model that defines the structure, behavior, and more views of a system.An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structure of the system...

.

In general, functional requirements define what a system is supposed to do whereas non-functional requirements define how a system is supposed to be. Functional requirements are usually in the form of "system shall do ", while non-functional requirements are "system shall be ".

Non-functional requirements are often called qualities of a system. Other terms for non-functional requirements are "constraints", "quality attributes", "quality goals", "quality of service requirements" and "non-behavioral requirements". Qualities, that is non-functional requirements, can be divided into two main categories:
  1. Execution qualities, such as security and usability, which are observable at run time.
  2. Evolution qualities, such as testability
    Software testability
    Software testability is the degree to which a software artifact supports testing in a given test context....

    , maintainability, extensibility and scalability, which are embodied in the static structure of the software system.

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 up-to-date 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 updating the displayed record count within an acceptably short interval of the number of records changing.

Sufficient network bandwidth may also be a non-functional requirement of a system.

Other examples:
  • Accessibility
    Accessibility
    Accessibility is a general term used to describe the degree to which a product, device, service, or environment is available to as many people as possible. Accessibility can be viewed as the "ability to access" and benefit from some system or entity...

  • Audit and control
  • Availability
    Availability
    In telecommunications and reliability theory, 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 an unknown, i.e., a random, time...

     (see service level agreement
    Service Level Agreement
    A service-level agreement is a part of a service contract where the level of service is formally defined. In practice, the term SLA is sometimes used to refer to the contracted delivery time or performance...

    )
  • Backup
    Backup
    In information technology, a backup or the process of backing up is making copies of data which may be used to restore the original after a data loss event. The verb form is back up in two words, whereas the noun is backup....

  • Capacity, current and forecast
  • Certification
    Certification
    Certification refers to the confirmation of certain characteristics of an object, person, or organization. This confirmation is often, but not always, provided by some form of external review, education, assessment, or audit...

  • Compliance
    Compliance (regulation)
    In general, compliance means conforming to a rule, such as a specification, policy, standard or law. Regulatory compliance describes the goal that corporations or public agencies aspire to in their efforts to ensure that personnel are aware of and take steps to comply with relevant laws and...

  • Configuration management
    Configuration management
    Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...

  • Dependency on other parties
  • Deployment
  • Documentation
    Documentation
    Documentation is a term used in several different ways. Generally, documentation refers to the process of providing evidence.Modules of Documentation are Helpful...

  • Disaster recovery
    Disaster recovery
    Disaster recovery is the process, policies and procedures related to preparing for recovery or continuation of technology infrastructure critical to an organization after a natural or human-induced disaster. Disaster recovery is a subset of business continuity...

  • Efficiency (resource consumption for given load)
  • Effectiveness (resulting performance in relation to effort)
  • Emotional factors (like fun or absorbing)
  • Environmental protection
    Environmental protection
    Environmental protection is a practice of protecting the environment, on individual, organizational or governmental level, for the benefit of the natural environment and humans. Due to the pressures of population and our technology the biophysical environment is being degraded, sometimes permanently...

  • Escrow
    Escrow
    An escrow is:* an arrangement made under contractual provisions between transacting parties, whereby an independent trusted third party receives and disburses money and/or documents for the transacting parties, with the timing of such disbursement by the third party dependent on the fulfillment of...

  • Extensibility
    Extensibility
    In software engineering, extensibility is a system design principle where the implementation takes into consideration future growth. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension...

     (adding features, and carry-forward of customizations at next major version upgrade)
  • Failure management
  • Legal and licensing
    Software license agreement
    A software license agreement is a contract between the "licensor" and purchaser of the right to use software. The license may define ways under which the copy can be used, in addition to the automatic rights of the buyer including the first sale doctrine and .Many form contracts are only contained...

     issues or patent-infringement-avoidability
  • Interoperability
    Interoperability
    Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to...

  • Maintainability
    Maintainability
    In engineering, maintainability is the ease with which a product can be maintained in order to:* isolate defects or their cause* correct defects or their cause* meet new requirements* make future maintenance easier, or* cope with a changed environment...

  • Modifiability
  • Network topology
    Network topology
    Network topology is the layout pattern of interconnections of the various elements of a computer or biological network....

  • Open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

  • Operability
    Operability
    Operability is the ability to keep an equipment, a system or a whole industrial installation in a safe and reliable functioning condition, according to pre-defined operational requirements....

  • Performance
    Computer performance
    Computer performance is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.Depending on the context, good computer performance may involve one or more of the following:...

     / response time (performance engineering
    Performance Engineering
    Performance engineering within systems engineering, encompasses the set of roles, skills, activities, practices, tools, and deliverables applied at every phase of the Systems Development Life Cycle which ensures that a solution will be designed, implemented, and operationally supported to meet the...

    )
  • Platform
    Platform (computing)
    A computing platform includes some sort of hardware architecture and a software framework , where the combination allows software, particularly application software, to run...

     compatibility
  • Price
    Price
    -Definition:In ordinary usage, price is the quantity of payment or compensation given by one party to another in return for goods or services.In modern economies, prices are generally expressed in units of some form of currency...

  • Privacy
    Privacy
    Privacy is the ability of an individual or group to seclude themselves or information about themselves and thereby reveal themselves selectively...

  • Portability
    Software portability
    Portability in high-level computer programming is the usability of the same software in different environments. The prerequirement for portability is the generalized abstraction between the application logic and system interfaces...

  • Quality (e.g. faults discovered, faults delivered, fault removal efficacy
    Efficacy
    Efficacy is the capacity to produce an effect. It has different specific meanings in different fields. In medicine, it is the ability of an intervention or drug to reproduce a desired effect in expert hands and under ideal circumstances.- Healthcare :...

    )
  • Recovery
    Recovery
    -Health:* Healing* Cure* The Recovery model of mental distress/disorder* Recovery International, a self-help mental health program based on the work of the late Abraham A...

     / recoverability (e.g. mean time to recovery
    Mean time to recovery
    Mean time to recovery is the average time that a device will take to recover from any failure. Examples of such devices range from self-resetting fuses , up to whole systems which have to be repaired or replaced.The MTTR would usually be part of a maintenance contract, where the user would pay...

     - MTTR)
  • Reliability
    Reliability engineering
    Reliability engineering is an engineering field, that deals with the study, evaluation, and life-cycle management of reliability: the ability of a system or component to perform its required functions under stated conditions for a specified period of time. It is often measured as a probability of...

     (e.g. mean time between failures - MTBF)
  • Reporting
  • Resilience
    Resilience (network)
    In computer networking: “Resilience is the ability to provide and maintain an acceptable level of service in the face of faults and challenges to normal operation.”These services include:* supporting distributed processing* supporting networked storage...

  • Resource constraints (processor speed, memory, disk space, network bandwidth, etc.)
  • Response time
  • Robustness
    Robustness (computer science)
    In computer science, robustness is the ability of a computer system to cope with errors during execution or the ability of an algorithm to continue to operate despite abnormalities in input, calculations, etc. Formal techniques, such as fuzz testing, are essential to showing robustness since this...

  • Scalability
    Scalability
    In electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...

     (horizontal, vertical)
  • Security
    Security
    Security is the degree of protection against danger, damage, loss, and crime. Security as a form of protection are structures and processes that provide or improve security as a condition. The Institute for Security and Open Methodologies in the OSSTMM 3 defines security as "a form of protection...

  • Software, tools, standards etc. Compatibility
    Backward compatibility
    In the context of telecommunications and computing, a device or technology is said to be backward or downward compatible if it can work with input generated by an older device...

  • Stability
    Stability Model
    Stability Model is a method of designing and modelling software. It is an extension of Object Oriented Software Design methodology, like UML, but adds its own set of rules, guidelines, procedures, and heuristics to achieve a more advanced Object Oriented software.The motivation is to achieve a...

  • Safety
    Safety
    Safety is the state of being "safe" , the condition of being protected against physical, social, spiritual, financial, political, emotional, occupational, psychological, educational or other types or consequences of failure, damage, error, accidents, harm or any other event which could be...

  • Supportability
    Supportability
    Supportability can refer to:*Supportability **Supportability...

  • Testability
    Testability
    Testability, a property applying to an empirical hypothesis, involves two components: the logical property that is variously described as contingency, defeasibility, or falsifiability, which means that counterexamples to the hypothesis are logically possible, and the practical feasibility of...

  • Usability
    Usability
    Usability is the ease of use and learnability of a human-made object. The object of use can be a software application, website, book, tool, machine, process, or anything a human interacts with. A usability study may be conducted as a primary job function by a usability analyst or as a secondary job...

     by target user community

See also

  • ISO/IEC 9126
  • Requirements analysis
    Requirements analysis
    Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...

  • List of system quality attributes
  • Functional requirements
    Functional requirements
    In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

  • Usability requirements
  • Non-Functional Requirements framework
    Non-Functional Requirements framework
    NFR is a framework on Goal Modelling. The analysis begins with softgoals that represent NFR which stakeholders agree upon. Softgoals are goals that are hard to express, but tend to be global qualities of a software system. These could be usability, performance, security and flexibility in a given...

  • URPS
    URPS
    URPS is short for usability, reliability, performance and supportability which are the most important forms of non-functional requirements of a software or software-intensive system.-See also:*Requirements analysis...


External links

Scientific links

Templates and examples

Modeling non-functional properties in SOA

Agile non-functional requirements
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK