Usually during system development, we place great emphasis on ensuring that all requirements function. While functional requirements are important, non-functional requirements are equally important.
Do you think we need to build a system that users can use without stress? By envisioning non-functional requirements at the beginning of system development we can reduce costs, shorten development time, and reduce operational problems. Here we will introduce to you 8 non-functional requirements
1. Functional Suitability
Functional suitability is achieved when the system provides functions that meet stated requirements when used under specified conditions. Basically, does the system do what we want it to do?
Three properties are listed:
- Functional completeness
- Functional correctness
- Functional appropriateness
For example, if a banking system builds an app that allows users to pay online, when using the bank's service app, customers must perform the desired operation.
2. Performance Efficiency
Operational performance is concerned with how the system behaves in certain situations with different load sizes. A high-performance system will be fast, scalable, and stable even with a large number of concurrent users.
Three properties are listed:
- Time behavior
- Resource utilization
- Capacity (Capacity)
For example, so that users are not disappointed and want to change to another application when chatting with AI chatbot, the response time must be calculated min/max when there are 100 people or 1000 people accessing the same information.
3. Compatibility
Compatibility refers to the degree to which software is compatible with hardware, browsers, operating systems, etc.
The listed properties include:
- Co-existence
- Interoperability
For example, if a program is IBM compatible, it can run on any Dell, IBM, Hewlett Packard, or other computer with the same set of Windows-compliant components. Apple computers using the macOS X operating system are not compatible with IBM.
4. Usability
Usability is the "easiness of use" of the system.
A system has a high system usability if the users tend not to make many mistakes, can learn to use the system quickly, perform tasks in a timely manner and be satisfied with it overall.
Its quality attributes include:
- Operability
- User-error protection
For example, in SAP software - a business planning software with full functions for accounting, purchasing, human resources, warehouse management, but complicated operation... then this ASP software will also become a minus point for users.
5. Reliability
Reliability refers to the probability of error-free operation for a specified period of time in a particular environment.
Its quality attributes include:
- Maturity
- Availability
- Recoverability
- Fault tolerance
Reliability - Reliability means "giving the same results", in other terms the word "reliable" means something is reliable and it will give the same results every time. For example, information about the date of birth of an employee when entered into the database, 1 day after or 3 years after retrieving the results must be the same.
6. Security
It is a requirement related to the security of information systems. Consider how to deal with user restrictions and unauthorized access.
Security attributes include:
- Confidentiality (Confidentiality)
- Integrity (Integrity)
- Non-repudiation
- Accountability
- Authenticity
Example, when security is guaranteed, the benefits we gain:
Avoiding data theft and identity theft, as well as avoiding legal consequences and ensuring the safest online data exchange, transactions and business.
7. Maintainability
Maintainability is the maintainability requirements of the system. That is, whether the system is: easy to detect and fix.
Four properties are listed:
- Modularity
- Analyzability
- Modifiability
- Testability
For example, "Easy to detect and fix" means that when an error is encountered, the administrator can easily know the reason why and know how to fix it immediately.
8. Portability
Portability refers to the ease of moving an application from one environment to another, such as moving an installed piece of software to another computer or building files on multiple platforms (running on multiple operating systems).
Three properties are listed:
- Installability
- Replaceability
- Adaptability
For example, recently, the Java programming language and runtime environment has made it possible to have programs that run on any operating system that supports the Java standard (from Sun Microsystems) without any porting work. Java applets in the form of precompiled bytecode can be sent from a server program in one operating system to a client program (your Web browser) in another operating system without change.
Conclusion
In a nutshell, let's make sure we know why the non-functional requirement is important to the user. When we proactively capture this information first, we can create better solutions.
Reference
https://iso25000.com/index.php/en/iso-25000-standards/iso-25010