First of all… What are requirements? They are specified conditions that are demanded by clients or stakeholders in the creation of a project.
The logical aspects of a product, system or software are defined as functional requirements. In other words, what does it need to do to function?
These requirements are not Non-Functional at all, they focus on quality factors and effectiveness. These factos are what guve value to the software and make the functional requirements function appropriately.
Some non-functional requirements may be:
Requirements are interchangeable depending on the type of project that must be built. Some software may not be able to limit what functionalities are categorized in which type of requirements.
When a software programmer starts out a project, normally the client has and idea of what functionality they want their software to have, but it is very common to forget about non-functional requirements or as some people call them “Quality Factors”. Both of these are a type of “High-Level” design.
For a product/system both of these type of requirements must match the business requirements of the market.