Non-Functional-Requirements

Jörg Grote
4 min readFeb 13, 2024

In short, NFRs, are requirements that are not specific to the functionality of a system. They are more concerned with a system’s performance, security, usability, and maintainability. Non-functional requirements are often just as important as functional requirements because they can affect the overall quality of a system.

Non-Functional-Requirements Catalog

Here are some examples of non-functional requirements:

  • Performance: The system must maintain a certain speed and responsiveness.
  • Security: The system must be protected against security threats.
  • Usability: The system must be easy to use.
  • Maintainability: The system must be easy to maintain.

Non-functional requirements are usually defined in the specification of a system. The specification is a document that describes the requirements for a system. The specification is used by the developers of the system to ensure that the system meets the requirements.

Non-functional requirements are an important part of software development. They help to ensure that the systems that are developed meet the needs of the users and that they can be used successfully.

Characteristics

Although non-functional requirements are unspecific compared to functionalities, different attributes ​​should be considered depending on the project. Here are some examples:

Analytics projects often have NFRs like

  • Performance: The system must be able to process large amounts of data quickly and efficiently.
  • Security: The system must be protected against security threats.
  • Usability: The system must be easy to use to allow users to analyze their data.
  • Scalability: The system must be scalable in order to cope with the growing amount of data.

Customer portals often have NFRs like

  • Usability: The customer portal must be easy to use so that users can manage their accounts and carry out transactions.
  • Security: The customer portal must be protected against security threats to protect user data.
  • Performance: The customer portal must be able to serve many users at the same time.
  • Scalability: The customer portal must be scalable to accommodate the growing user base.

Business process projects often have NFRs like:

  • Performance: The system must be able to efficiently support the business processes.
  • Security: The system must be protected against security threats to protect business data.
  • Compliance: The system must meet legal requirements.
  • Scalability: The system must be scalable to meet growing business needs.

It is important to identify and document the specific NFRs for each project.

Lifecycle

The typical NFR lifecycle consists of the following phases:

Identification

The first step is to identify the NFRs. This is done by understanding the needs of the users and the business. The NFRs should be documented in a way that is clear, concise, and unambiguous.

Prioritization

Once the NFRs have been identified, they need to be prioritized. This means that the most important NFRs should be identified and given the highest priority. The prioritization process should be based on the business needs and the risks associated with not meeting the NFRs.

Specification

The next step is to specify the NFRs. This means that the NFRs need to be described in detail. The specification should include the following:

  • The objective of the NFR
  • The criteria for success
  • The measures that will be used to verify compliance
  • Verification

The NFRs need to be verified to ensure that they are met. This is done by testing the system to make sure that it meets the requirements. The verification process should be documented so that the results can be reviewed.

Monitoring

Once the system is in operation, the NFRs need to be monitored to make sure that they are still being met. This is done by collecting data on the system’s performance. The monitoring process should be documented so that the results can be reviewed.

Reassessment

The NFRs need to be reassessed periodically to make sure that they are still relevant. This is done by reviewing the business needs and the risks associated with not meeting the NFRs.

The NFR lifecycle is an iterative process. The NFRs may need to be modified or re-prioritized as the project progresses.

Here are some additional tips for managing the NFR lifecycle:

  • Use a structured approach to identify, prioritize, and specify the NFRs.
  • Use a clear and concise communication style when documenting the NFRs.
  • Get buy-in from all stakeholders on the NFRs.
  • Monitor the NFRs throughout the project lifecycle.
  • Reassess the NFRs periodically.

By following these tips, you can help to ensure that the NFRs are managed effectively and that the system meets the needs of the users and the business.

Reusability

Don’t reinvent the wheel — a typical IT-Project has usually over all the above categories, around 40 to 80 NFRs defined.

Of course, any NFR list can be reused very well for each project type — precisely because NFRs are function-unspecific.

--

--

Jörg Grote

Solution / Application Architect @ MHP – A Porsche Company, within the Area of: Data Architecture, Analytics & AI - Enabling you to shape a better tomorrow.