- Non-functional requirements
In
systems engineering andrequirements engineering , non-functional requirements arerequirements which specify criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted withfunctional requirements that specify specific behavior or functions. In general, functional requirements define what a system is supposed to "do" whereas non-functional requirements define how a system is supposed to "be". Non-functional requirements are often called qualities of a system. Other terms for non-functional requirements are "constraints ", "quality attributes", "quality goals" and "quality of service requirements". Qualities, aka. non-functional requirements, can be divided into two main categories.
# Execution qualities, such as security and usability, are observable at run time.
# Evolution qualities, such as testability, maintainability, extensibility and scalability, 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
* Audit and control
*Availability (seeservice level agreement )
* Certification
* Dependency on other parties
*Documentation
* Efficiency (resource consumption for given load)
* Effectiveness (resulting performance in relation to effort)
*Escrow
* Extensibility (adding features, and carry-forward of customizations at next major version upgrade)
* Legal and licensing issues
*Interoperability
*Maintainability
*Open Source
* Performance / Response time (seePerformance Engineering )
* Platform compatibility
* Price
*Quality (e.g. Faults Discovered, Faults Delivered, Fault RemovalEfficacy )
*Reliability (e.g.Mean Time Between Failures -MTBF )
* Resilience
* Resource constraints (processor speed, memory, disk space, network bandwidth etc. )
*Robustness
*Scalability (horizontal, vertical)
*Security
* Software, tools, standards etc. Compatibility
* Stability
*Supportability
*Testability
*Usability by target user communityFor example: Online response times, timing of the company offices, security, back-up etc...
ee also
*
ISO 9126
*Requirements analysis
*List of System Quality Attributes
*Functional requirements
*Usability Requirements
*Non-Functional Requirements framework (NFR)
*URPS External links
Scientific Links
* [http://www.idi.ntnu.no/grupper/su/fordypningsprosjekt-2005/eide-fordyp05.pdf http://www.idi.ntnu.no/grupper/su/fordypningsprosjekt-2005/eide-fordyp05.pdf]Templates and Examples
* [http://www.csc.calpoly.edu/~jdalbey/SWE/QA/nonfunctional.html www.csc.calpoly.edu]
* [http://www.volere.co.uk/ Volere Requirements Resources]Modeling Non-Functional Properties in SOA
* [http://dssg.cs.umb.edu/projects/soa Modeling Non-Functional Properties in Service Oriented Architecture]
Wikimedia Foundation. 2010.