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?
-
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.
-
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
-
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
-
This isn’t a requirement, it’s an implementation detail. Requirements say what needs to happen, not how.
-
Amusingly impossible, this is a requirement that you need to push back on to see what people really want.
-
Again, not a requirement.
In short, it doesn’t matter how you label your requirements – it matters that they’re good requirements.
5
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).