If there is any one thing any project must have in order not to be doomed to failure, is a collection of both the functional and non-functional requirements. Any project’s requirements need to be well thought out, balanced and clearly understood.
A functional requirement is that it essentially specifies something the system should do.
Typically, functional requirements will specify a behavior or function, for example:
“Display the name, total size, available space and format of a flash drive connected to the USB port.
Non-functional requirement essentially specifies how the system should behave. It also specify the system’s ‘quality characteristics’ or ‘quality attributes’.
Non-functional requirements cover all the remaining requirements which are not covered by the functional requirements.
Difference: non-functional requirements describe how the system works, while functional requirements describe what the system should do.
References:
http://reqtest.com/requirements-blog/functional-vs-non-functional-requirements/