Functional requirement is specified by User, while non-functional requirement is specified by technical peoples e.g. Architect,
Read more: http://javarevisited.blogspot.com/2015/01/difference-between-functional-and-nonfunctional-requirements-software-development.html#ixzz4M1xO7fQL