An important part of having functional and non-functional requirements is access to a particular effort to determine if the effort complies with the requirements. The approach is slightly different between Functional and Non-Functional requirements.
For Functional Requirements, it is important to think about what requirements need to be covered for a particular effort. For example, which Networks need to be supported? (Wired Network, Wireless Network. Bluetooth, ZigBee, Near-Field-Communication (NFC), etc).
For Non-functional Requirements often have a large impact on the components that are selected as part of the infrastructure. For example, if a component is not Scalability, then it becomes product that is build using that product is probably not scalable.
The following sections are meant as aids in helping evaluate a project Functional and Non-Functional Requirements.