Functional and Non Functional Requirements

I’ve already wrote about the Software development lifecycle, in that post I mentioned the steps in the SDL, the first of those steps is Software specification. Is here when we define the requirements of our project, the requirements we define for it must be well thought. There are two kinds of requirements, functional and non functional, both are equally important and I’ll talk about them in this post.

 

Functional requirements

Functional requirements specify something the system should do, according to the SQA, they are a description of the required functions, outlines of associated reports or online queries, and details of data to be held in the system.

Some examples are:

  • 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

 

Non Functional requirements

On the other hand, Non Functional requirements describe how the system should behave SQA says they should have a description and, where possible, target values of associated non-functional requirements. Non-functional requirements detail constraints, targets or control mechanisms for the new system.

Some examples are:

  • Performance – for example Response Time, Throughput, Utilization, Static Volumetric
  • Scalability
  • Capacity
  • Availability
  • Reliability
  • Recoverability
  • Maintainability

 

The following video illustrates this topic really well, I recommend you to watch it.