Functional and Non-Functional Requirements

flowchart
http://infomatrix.com/?option=com_content&view=article&id=86

The first step in the Software Development Lifecyle is to define the requirements, and it’s pretty obvious why. You can’t start a project if you don’t know what it is going to be about and how it is going to work. Well, the “what” and the “how” are the Functional and Non-Functional Requirements, respectively.

Functional Requirements

The functional requirements specify what the system should do. Usually, it is easier to define these requirements because it’s about the final purpose of the project.

Types of functional requirements:

  • Interface
  • Business Requirements
  • Regulatory/Compliance
  • Security

Non-Functional Requirements

They specify how the system should behave. The fact that they’re non-functional can make us think that they are not important and can be ignored, but they pretty much define whether the user will like it or not. For example, a functional requirement of food is to feed, but I assume that most people will prefer to eat a chocolate bar than an onion, and that’s because of the flavor, a non-functional requirement.

Non functional requirements fall into many of these catgeories:

  • Accessibility
  • Capacity, current and forecast
  • Documentation
  • Efficiency
  • Effectiveness
  • Quality

It’s important to think about usability to avoid failure, at the end of the day, the user will say if it’s good software or not.

Source