What is a Requirement Specification and what are examples of Non-Functional Requirements?
A requirement specification is a systematically organised collection of requirements for a system; non-functional requirements are the "how well" qualities — performance, reliability, security, usability, and so on.
* Non-functional (quality) requirements describe how well a system behaves — its main categories shown as a single radial map. *
A Requirement Specification is a systematically represented collection of requirements, typically for a system or component, that satisfies given criteria.
Functional requirements say what the system does ("the user can transfer money"); Non-Functional Requirements (quality attributes) say how well it does it:
| Category | Examples |
|---|---|
| Performance | Response time, throughput |
| Scalability | Handle growth in users/data |
| Reliability | Uptime, fault tolerance |
| Availability | System accessible when needed |
| Security | Protection against unauthorized access |
| Usability | Ease of use, learnability |
| Maintainability | Ease of modification, debugging |
| Portability | Run on different platforms |
| Compatibility | Work with other systems |
Tip: Security is a non-functional requirement — it describes how well the system protects itself, not what it does.
Go deeper:
Vulnerability (computer security) — Wikipedia — grounds the "Security" non-functional requirement (how weaknesses are classified and scored).