Well that seems functional

So in any project that you’re working in something really important is to know how the project is going to work. With this said, having a clear knowledge of the functional and non-functional requirements for your project. Now, what are the differences between functional and non-functional requirements, you ask? Well let me explain. To have things crystal clear functional requirements are those that you have for your project’s functionality. In a more non software engineering example, it’s like when you have to prepare a presentation. Your information is your functional requirements. You need that stuff in order to properly portray what you are presenting. Now, the non-functional requirements is everything that makes your stuff pretty. Again, in the weird presentation analogy this would be making things pretty. Maybe using a Prezi for your visual aid. Using a whiteboard while you talk. Stuff that aren’t really necessary, but they are nice to have.

So functional requirements focus in what is the software meant to do, and the nonfunctional requirements in certain qualities of the software. This qualities can be divided into two categories:

  1. Execution qualities, such as security and usability, which are observable at run time.
  2. Evolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system.