About functional an non functional requirements

Hello there! Today we are talking a little bit about Functional and non fuctional requirements in Software.

Original at: http://www.startxconsulting.com

First of all, lets define what a requirement is:

Requirement: menas what needs to be covered to achieve the project,it cover the description and conditions in which the project must work and the things that needs to be covered.

We have User, System and Software requirements, user requirements are the ones stablished from the user, the main idea prototype of work and the main “characteristics” of the project.

The system requirements are the functionality of the project, all the services and specs joined thogether.

The software requirements are the details of which the software work, usually for the developers and Engineers to understand what is happening.

Let´s check what functional and non fucntional software requirements means with the help of a chapter of CS2 Software Engineering note 2 at CS2Ah Autumn 2004:

Functional requirements: Statements of services that the system should provide, how the system should react to particular inputs and how the system should behave in particular situations

Describe functionality or system services.

Depend on the type of software, expected users and the type of system where the software is used.

Functional user requirements may be high-level statements of what the system should do; functional system requirements should describe the system services in detail


  • The user shall be able to search either all of the initial set of databases or select a subset from it.
  • The system shall provide appropriate viewers for the user to read documents in the document store.
  • Every order shall be allocated a unique identifier (ORDER ID) which the user shall be able to copy to the account’s permanent storage area

Non-functional requirements: Constraints on the services or functions offered by the system

as timing constraints, constraints on the development process, standards, etc.

  • Product requirements
    • – Requirements which specify that the delivered product must behave in a particular way, e.g. execution speed, reliability etc.
  • Organisational requirements
    • – Requirements which are a consequence of organisational policies and procedures, e.g. process standards used, implementation requirements etc.
  • External requirements
    • – Requirements which arise from factors which are external to the system and its development process, e.g. interoperability requirements, legislative requirements etc.




Now that we saw what functional and non functional means, I think we can offer a better description of our work. Not only programming is the deal, but also maintain a good documentation and maintenance of the project in words that anybody can understand. Remember, a good developer is the one that makes code easy to understand to anybody and this includes somebody with basic or null coding knowledge.