These define system properties and constraints e.g. reliability, response time and storage requirements.
Constraints are I/O device capability, system representations, etc.
Process requirements may also be specified mandating a particular IDE, programming language or development method.
Non-functional requirements may be more critical than functional requirements. If these are not met, the system may be useless.
Non-functional requirements may affect the overall architecture of a system rather than the individual components.
For example, to ensure that performance requirements are met, you may have to organize the system to minimize communications between components.
A single non-functional requirement, such as a security requirement, may generate a number of related functional requirements that define system services that are required.
It may also generate requirements that restrict existing requirements.