In my breakdown of work I have to define work against 'Functional' and 'Non-Functional' design elements / work in my applications. I read the description from Wikipedia here: https://en.wikipedia.org/wiki/Non-functional_requirement but as typical the description did not speak exactly to me to clear up my understanding.

Can someone please explain in terms of an example when creating an application from scratch, what would be defined as a 'Non-Functional' requirement?


1 Answer 1


Requirements like performance, response times, data integrity and security are non-functional. Actually any requirement that is not related to direct user interaction.

  • You could agree with your client that all pages have to be fully loaded within 2 seconds if you are building a website.
  • You could agree with your client that the application can give only 5 security flaws when tested with vulnerability scanner x.
  • You could even agree with your client that your code must pass a code review by an independent reviewer.
  • So basically anything that the end user can't see is a non-functional requirement. I'm beginning to see that breaking down requirements by "functional" and "non-functional" categories could cause more harm than good; if all pages have to load in 2 seconds, that's a requirement, really. Commented Jul 2, 2013 at 23:35
  • @RobertHarvey: Basically, yes, non-functional == not observable to the user. And page load time is then indeed a functional requirement, because an observant user will be able to observe that. Commented Jul 3, 2013 at 6:46
  • 1
    Plus: adhere to a particular set of standards, use of a particular API/protocol, conform to a set of visual guidelines, minimum hardware/software to be supported, support of minimum maximum screen size, consume less than nK memory, etc. etc. are all non-functional requirements I have seen. Commented Jul 3, 2013 at 9:58

Not the answer you're looking for? Browse other questions tagged or ask your own question.