This is a common name for requirements that describe behaviours of a computer system that are not directly related to the line-of-business, or functional, operation of the system.
These are often captured in AgileDevelopment projects as TechnicalStories.
A list of NonFunctionalRequirements will often include things like:
- Scalability
- Robustness
- Maintainability
- Security
Actually NonFunctionalRequirements is a dreadful name for these things, because it implies that they don't add any functional value to the system - this is clearly not the case, how useful is a Web-application that only runs for one user? How useful is an Enterprise application that is unsupportable? How useful is a banking system that is not secure?
I agree that it is a poor choice of name because 'Non Functional' implies something that is not functioning. However, I have come to regard them as requirements whose activity or effect, are not initiated by end user action. They are properties of a system rather than discrete items of functionality. ~~~~ DerekParnell