non-functional requirements
The so-called non-functional requirements, refers to the software products in order to meet the needs of users of the business must have and in addition to functional requirements of the characteristics. The non-functional requirements of software products include system performance, reliability, maintainability, extensibility, and adaptability to the technology and business. Some of these indicators are described below. There is a wide range of non-functional requirements that can be seen here, and software products are not inherently isolated, but also involve the impact of many external environments. Non-functional requirements must consider software to be both usable and easy to use.
The difficulty in describing non-functional requirements is that it is difficult to describe it as a functional requirement, which can be described in terms of structured and quantifiable words, which we often use in software performance when describing such requirements, how much time the query is expected to produce, and the more obscure descriptive words such as robustness of the software. Such descriptive words are separated from the software execution environment, the human and the related scene description, so the information is difficult to reflect the software architecture design and concrete implementation. The security we focus on in the architecture design, the system development Framework, concurrency and performance, and exception logs are not generated in a vacuum, but from our analysis of non-functional requirements.
A software system must be complete, so it not only includes the executable program, but also includes the online Help, data and user management, log exception query, automatic upgrade and other related functional features. These requirements are not only to meet the needs of users, but also for our subsequent maintenance and monitoring system needs.
The reliability, maintainability and adaptability of the system are inseparable. When the system fails and the user has an error, whether to support recovery, when the user encountered an error in the process can immediately locate the problem, but the business scenario and logic changes when the system is supported, when the network is unstable or the use of abnormal interruption in the case of the system has appropriate fault-tolerant measures, These are the issues that need to be considered in non-functional requirements.
Ease of use is also an issue that we must take into account in the development of non-functional requirements, as well as the knowledge of the art and UI interface, human-computer engineering, interactive design, psychology, and user behavior patterns. The three principle of ease of use is easy to see, easy to learn and easy to use or called for discovery, ease of understanding, efficiency. Easy to see is the operation of a variety of functions do not hide too deep, users can easily find their expected to carry out a variety of operations; easy to learn the software system through online Help, navigation, wizards and other means to ensure that the software is self-learning; the easy-to-use focus is that the software should be able to operate more quickly after it has been used There are conflicts between the three, need to balance, and a key point of the balance is to truly user-centric design, need to subdivide the scene and users.
For non-functional requirements of the description, in the description process must be emphasized to people, business scenarios, environment and other aspects of the content. The purpose of this emphasis is to demonstrate that non-functional requirements are not unlimited, and that the realization of any non-functional requirement tends to cost a lot more research and development manpower and hardware network costs. For example, when we describe the fuzzy query function of a form, if the simple description of how many seconds to complete the query, then this requirement will be difficult to be satisfied, the following are some optional description.
1. The estimated number of users is 10,000 people, the number of users logged on every day is about 3000, the network bandwidth is 100M bandwidth.
2. Search results can be obtained within 3 seconds based on the number and name-specific criteria that are searched during off-peak hours.
3. When accessing the system over the Internet, it is expected that the maximum query time <15 seconds when searching for numbers and names.
With these scenarios and data, we in the design of the architecture can be targeted to choose our development framework and model, database, hardware and software environment configuration has complex features of the specific implementation of the way. At the same time, these requirements can also better guide us through the performance testing and other tools to verify these non-functional requirements.