Non-functional requirements

Source: Internet
Author: User

Non-functional requirements refer to the features that software products must possess in addition to functional requirements to meet users' business needs. Non-functional requirements of software products include system performance, reliability, maintainability, scalability, and adaptability to technology and business. Some of these indicators are described below. Here we can see that non-functional requirements involve a wide range. Software products do not exist independently, but also involve the influence of many external environments. For non-functional requirements, software must be available and easy to use.

The difficulty in describing non-functional requirements is that it is difficult to clearly describe the non-functional requirements by using structured and quantified words. When describing such requirements, we often use good software performance, query the time in which results are generated, and the Software Robustness is better. These descriptive terms are separated from the execution environment of software and the descriptions of people and related scenarios. Therefore, it is difficult for information to be reflected in the software architecture design and implementation. The security, system development framework, concurrency, performance, and exception logs that we focus on in architecture design are not generated out of thin air, but are derived from our analysis of non-functional requirements.

A software system must be complete, so it not only includes executable programs, but also features related to online help, data and user management, log exception query, and automatic upgrades. These requirements are not only to meet user needs, but also to the needs of our subsequent maintenance and monitoring systems.

The reliability, maintainability, and adaptability of the system are inseparable. Whether the system can be recovered after a system fault or user error occurs, and whether the user can locate the problem immediately when an error occurs during use, whether the system supports changes in business scenarios and logic, and whether the system has corresponding fault tolerance measures when the network is unstable or the service is interrupted abnormally, these are all issues that need to be considered in non-functional requirements.

Usability is also a problem that must be taken into account in the development of non-functional requirements. Usability also involves the knowledge of art and ui, human-machine engineering, interactive design, psychology, and user behavior patterns. The three principles of usability are easy to see, easy to learn and easy to use, or known as discovery, easy to understand, and efficient. Easy to see is that you should not hide all kinds of function operations too deeply. Users can easily find the various operations they want to perform, wizard and other methods to ensure that the software is self-learning; easy to use, the focus is that the software should be able to perform operations more quickly after skilled use. These three also conflict with each other and need to be balanced. One of the key points of the balance is to truly achieve user-centric design and to segment scenarios and users.

The description of non-functional requirements must be adjusted to people, business scenarios, and environments. The purpose of the emphasis is to indicate that non-functional requirements are not unlimited. The realization of any non-functional requirements will often lead to greater R & D labor costs and hardware network costs. For example, when we describe the fuzzy query function of a form, if we simply describe the number of seconds for all queries, this requirement will be hard to meet, the following are optional descriptions.

1. The estimated number of users is 10 thousand. The number of login users per day is about 3000, and the network bandwidth is Mbps.
2. during off-peak hours, search based on the specified number and name conditions. The search results can be obtained within 3 seconds.
3. When you access the system through the Internet, you are expected to query the system by number or name for a maximum of less than 15 seconds.

With these scenarios and data, we can select our development framework and model, database, and, the software and hardware environment configuration has been implemented in a complex way. At the same time, these requirements can also better guide us to verify these non-functional requirements through performance testing and other tools.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.