software-engineering

Definition

Non-functional Requirement

Defines criteria that can be used to judge the operation of a system, rather than specific behaviors. It describes how the system should be.

Nature of NFRs

  • They exist in relation to Functional Requirements.
  • They are often in conflict with each other (e.g., Security vs. Performance).
  • They are identified using checklists.

Categories

1. Performance

Constraints on the processing speed and resource usage.

  • Static: Capacity, Storage.
  • Dynamic: Throughput, Latency, Response Time.

2. Design Constraints

Restrictions on the design or implementation space.

  • Standard: Compliance with industry standards.
  • Implementation: Required tools, languages, or platforms.
  • Operation: Administration and management constraints.
  • Legal: Licensing, privacy (GDPR), and regulatory compliance.

3. Quality Criteria

Attributes that determine the quality of the requirements or the system itself.

  • Correctness: Meets the specification.
  • Consistency: No contradictions.
  • Completeness: Nothing is missing.
  • Clarity: Unambiguous.
  • Traceability: Can be linked back to origin.
  • Realism: Achievable.
  • Verifiability: Can be tested.