Functional and non functional requirements - alexanderteplov/computer-science GitHub Wiki

Functional vs Non-functional requirements

Difference between functional and non-functional requirements

Functional Requirements

Functional Requirements Non-Functional Requirements
They define a system or its component. They define the quality attribute of a system
It specifies, “What the system should do?” It specifies, “How should the system fulfill the functional requirements?”
User specifies functional requirement. Non-functional requirement is specified by technical peoples e.g. Architect, Technical leaders and software developers.
It is mandatory to meet these requirements. It is not mandatory to meet these requirements.
It is captured in use case. It is captured as a quality attribute.
Defined at a component level. Applied to a whole system.
Helps you to verify the functionality of the software. Helps you to verify the performance of the software.
Functional Testing like System, Integration, End to End, API testing, etc are done. Non-Functional Testing like Performance, Stress, Usability, Security testing, etc are done.
Usually easy to define. Usually more difficult to define.

Examples

Some of the more typical functional requirements

  • Business Rules
  • Transaction corrections, adjustments and cancellations
  • Administrative functions
  • Authentication
  • Authorization levels
  • Audit Tracking
  • External Interfaces
  • Certification Requirements
  • Reporting Requirements
  • Historical Data
  • Legal or Regulatory Requirements

Some typical non-functional requirements

  • Performance – for example Response Time, Throughput, Utilization, Static Volumetric
  • Scalability
  • Capacity
  • Availability
  • Reliability
  • Recoverability
  • Maintainability
  • Serviceability
  • Security
  • Regulatory
  • Manageability
  • Environmental
  • Data Integrity
  • Usability
  • Interoperability

Links

⚠️ **GitHub.com Fallback** ⚠️