An important part of having functional and non-functional requirements is access 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).
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 scalable, the product built using that component is probably also not scalable.
The following sections are meant as aids in helping evaluate a project Functional and Non-FUnctional Requirements.