ArticleslgStudy

mathematics

Non-functional requirement

Non-functional requirement is a mathematics topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Non-functional requirement rather than just read about it. In short: 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.

Key takeaways

  • Non-functional requirement belongs to mathematics; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Non-functional requirement to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Non-functional requirement from memory before moving on to harder problems.

Reference excerpt

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. Non-functional requirements are also known as cross-functional requirements by some. In software architecture, 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 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. The emergent properties 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", 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. As non-functional requirements are all requirements that do not fall into the functional requirements category, they also include both characteristics of the functions and constraints on the system such as non-design items of statutory, regulatory, standards and protocols, or other external requirements. 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:

Criticism The term "non-functional requirement" is criticized for being seen as a misnomer diminishing of the importance of the set of requirements it covers. In its place, the term "cross-functional requirement" (CFR) has been proposed and adopted at ThoughtWorks.

See also ISO/IEC 25010:2011 Consortium for IT Software Quality ISO/IEC 9126 FURPS Requirements analysis Usability requirements Non-Functional Requirements framework Architecturally Significant Requirements SNAP Points

References

Notes

External links Petter L. H. Eide (2005). "Quantification and Traceability of Requirements". CiteSeerX 10.1.1.95.6464. {{cite CiteSeerX}}: Cite uses deprecated parameter |citeseerx= (help) Dalbey, John. "Nonfunctional Requirements". Csc.calpoly.edu. Retrieved 3 October 2017. "Modeling Non-Functional Aspects in Service Oriented Architecture" (PDF). Cs.umb.edu. Archived from the original (PDF) on 24 July 2011. Retrieved 3 October 2017. "Non-Functional Requirements: Do User Stories Really Help?". Methodsandtools.com. Retrieved 3 October 2017. "Non-Functional Requirements Be Here - CISQ - Consortium for IT Software Quality". it-cisq.org. Archived from the original on 26 September 2018. Retrieved 3 October 2017. ""Do Software Architectures Meet Extra-Functional or Non-Functional Requirements?"". 19 November 2020.

Worked examples

Example 1 — a first encounter with Non-functional requirement

Start with the simplest possible case. Write down what Non-functional requirement claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In mathematics, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Non-functional requirement before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Non-functional requirement ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Non-functional requirement

In research
Non-functional requirement appears in mathematics research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Non-functional requirement in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Non-functional requirement is common in secondary-school and first-year university syllabi. It links to neighbouring topics Software quality, Software requirements, Systems engineering, so understanding it makes those chapters shorter.
In everyday life
Look for Non-functional requirement outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Non-functional requirement in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Non-functional requirement means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Non-functional requirement out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Non-functional requirement in simple terms?

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 fu…

Why does Non-functional requirement matter?

Because it connects several mathematics ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Non-functional requirement?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Non-functional requirement.

Tags

  • Software quality
  • Software requirements
  • Systems engineering

Keep exploring