Requirements

Get introduced to different kinds of requirements.

Different kinds of requirements

In general, requirements can be categorized in two ways, functional and non-functional requirements.

Functional requirements

Functional requirements determine what the system should do. The interactivity of an interactive product mainly depends on functional requirements. It is very important to understand these requirements properly. For example, a functional requirement for a smartwatch might be that it monitors the heart rate of the person wearing it.

Non-functional requirements

Non-functional requirements cover the whole system and its development constraints. Non-functional is an umbrella term for all requirements that are not functional. We can classify non-functional requirements into several categories. A list of various categories that illustrate major requirements is as follow:

  • Data requirements: These refer to the data constraints for the product. The required data’s amount or size, type, volatility, accuracy, persistence, and worth must be defined. For example, in a banking system, the data to be stored might be large, valuable, must be accurate, and persist over many years.

  • Environmental requirements: These refer to the context of use. The circumstances in which the product is expected to be used must be defined. The following aspects must be considered while analyzing environmental requirements:

    • The physical environment, i.e. the amount of expected light and noise in the environment.
    • The social environment, i.e. will the users need to collaborate or coordinate on the system data and what kind of collaboration is required?
    • The organizational environment, i.e. the quality and amount of user support and training facilities that are expected to be available.
    • The technical environment, i.e. the technology required. Its compatibility and limitations need to be explored.
  • User requirements: These capture the intended user group’s characteristics. They may include the user’s abilities, skills, and expertise. For example, a novice user may require a step by step guide to perform a task along with constrained interaction with the system, while an expert user may demand accelerators, i.e. key shortcuts, to get the work done along with access to complex controls.

  • Usability requirements: These refer to the usability goals of a product and the associated usability measures. For example, a system should be memorable so that frequent users can use it easily.

Example

Let’s better understand each requirement with the help of a simple scenario.
Scenario: “We need a system to control the functioning of a nuclear power plant”
Our task is to identify at least one requirement for each category. You may have many different answers, but down below are some of the possible answers.

  • Functional: The system should be able to monitor and record the temperature of the reactors.
  • Data: The system will require access to the temperature reading of the reactors.
  • Environmental: The control room is less likely to be crowded.
  • User: The users will be well-trained scientists and engineers.
  • Usability: The system outputs must be clear and unambiguous, especially warning signals and measuring gauges.