One of the classifications of software system requirements is functional requirements. Broadly speaking, functional requirements answer the question, “What should the software system do?” In technical terms, functional requirements are defined as follows:
The above diagram describes the functional requirements of a monitor. The functionalities of the monitor, such as turning on/off, brightness control, hue control, sleep, displaying the input, and saturation control, fall under functional requirements. These are services that the monitor system provides to the user.
Requirements such as performance, security, interface, and portability fall under non-functional requirements, which are constraints on the services/functions provided by the monitor system.
As clean as these definitions of functional and non-functional requirements may sound, in reality, the distinction between two different requirements may not be as clear-cut.
For example, the security requirement seems to be a non-functional requirement. However, when it is developed in detail, this requirement may generate other requirements that could be functional. For instance, to provide security, you add a user authentication system, which turns out to be a functional requirement. Therefore, requirements may not be independent of each other.
Free Resources