I know that functional requirements are requirements that tell the system what to do while non-functional requirements are about quality and constraints. For below requirements, which of these will fall under non-functional or functional?

  1. UI must be graphical in nature. I would put this under non-functional requirements because it talks about the quality of the system. I am not too sure.

  2. Users must be able to view information instantly. This could be functional but at the same time, the adverb 'instantly' could be related to performance. So that could also fall under non-functional requirements

  3. Every user should run on a separate client process. This tells the system to run a process for each user. This could be functional, although I am not too sure, as this could be related how the system is implemented.

  • 1
    Sharing your research helps everyone. Tell us what you've tried and why it didn’t meet your needs. This demonstrates that you’ve taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. Also see How to Ask
    – gnat
    Commented Sep 25, 2014 at 18:15

2 Answers 2

  1. This isn't a requirement, it's an implementation detail. Requirements say what needs to happen, not how.

  2. Amusingly impossible, this is a requirement that you need to push back on to see what people really want.

  3. Again, not a requirement.

In short, it doesn't matter how you label your requirements - it matters that they're good requirements.

  • 1
    1 could be a constraint (a limitation to your design choices) Commented Sep 25, 2014 at 18:20
  • @BartvanIngenSchenau - shrug, regardless of the label it shouldn't be something that business people dictate (even if, yes, the best UI is likely to be graphical).
    – Telastyn
    Commented Sep 25, 2014 at 18:21
  • For the second one, if it is written as " User must be able to click on a button and view the corresponding information in 5ms". Will that be functional requirement?
    – Manuel
    Commented Sep 25, 2014 at 18:21
  • @Manuel - yes, though requirements shouldn't know about buttons.
    – Telastyn
    Commented Sep 25, 2014 at 18:22
  • Apparently I acoidentally downvoted this at some point and now can't change it. :(
    – Weaver
    Commented Sep 26, 2014 at 11:36

These aren't very good requirements at all but unfortunately in real world it is quite common to get "requirements analysis" which contains "requirements" like those.

I would recommend to go trough available documentation and convert all the "requirements" to user stories. When converting, you will find out which really are requirements and which are something else. Only requirements can be written as user stories which make sense from the end user point of view. E.g. requirement 3: "As a user I want that the system runs a separate client process for me" does not really make sense. So it is not a requirement but implementation details. There however might exist a requirement that is trying to be meet with this detail and it should be written on requirements analysis.

After "requirement analysis" is converted to requirement analysis, the best thing to do is to discuss with the customer (if that's possible) to make sure that you have understood everything correctly. Understanding what is really needed and why is crucial to create great software. Classification to functional and non-functional requirements is minor details.

And the answer to your question:

None of those three "requirements" are functional. Requirement 2 will become quality (performance) requirement when time constraint is specified (e.g. 2 seconds).

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