2

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?

atconway
  • 399
  • 1
  • 3
  • 12
  • 2
    See http://programmers.stackexchange.com/questions/118376/functional-or-non-functional-requirement. See also http://programmers.stackexchange.com/search?q=non-functional+requirement – Robert Harvey Jul 02 '13 at 22:01
  • Oh goodness I apologize. When I posted, I didn't see anything related on the right-hand side, nor with a Google search picking up those forum threads. That was helpful, thanks. – atconway Jul 02 '13 at 22:03

1 Answers1

3

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.
Julius
  • 568
  • 1
  • 3
  • 7
  • 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. – Robert Harvey Jul 02 '13 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. – Bart van Ingen Schenau Jul 03 '13 at 06: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. – James Anderson Jul 03 '13 at 09:58