Huawei trusted Design and Reconfiguration Professional-level examination (Subject 4) has always been an insurmountable obstacle for many Huawei employees. This examination covers the most core modules of the entire software engineering through several parts, such as requirement analysis, trusted design, software modeling, design pattern, and reconfiguration analysis. This requires us to spend a lot of time studying and thoroughly using the knowledge to pass the exam. I will walk you through these modules in a series of articles. In this article we will understand requirements analysis.
Demand analysis
In order to guide product and software design and development personnel to conduct requirement analysis in a correct and standardized way, we need to understand and complete requirement analysis from the following three aspects:
- The significance of carrying out demand analysis, and the concept related to demand analysis
- The basic process and method of requirement analysis
- Management of requirements
1. Understanding of requirements analysis
Pictured above, for the whole software engineering repair costs, the sooner you find defects, the smaller the cost of repair, there are other effects of repair costs, such as pseudo demand will lead to our overall direction error, requirements engineering is indispensable to the successful system development important activities, and respond to challenges the key elements of software-intensive system. Therefore, understanding and participating in requirements analysis is a required course for software developers to advance.
- Requirement definition: conditions and capabilities required by users to solve a problem or achieve a goal; The conditions or capabilities that a system or system component must meet in order to implement a contract, standard, specification, or other document to be followed
- Duality of requirements: requirements = problem + solution; The key is to find the root cause
- Definition of requirement analysis: the process of accurately understanding the requirements of users, conducting detailed investigation and analysis, transforming the user’s non-formal requirement statement into a complete requirement definition, and then transforming the requirement definition into the corresponding formal function specification (requirement specification).
The following figure shows the layering and classification of a requirement:In the process of huawei software requirement analysis, we are faced with the following problems:
- Requirements analysis output does not support design, development, testing, and data well. For example, the requirements document does not have the original requirements and does not explain the user’s usage scenarios, but directly describes the decomposed requirements and specifications. As a result, the development is directly implemented in accordance with AR coding, and the testing is designed according to the understanding of business and design, and the customer interface to be evaluated.
- Input is confusing and customer value is not focused. For example, version requirements change frequently and are difficult to control. Sometimes, the amount of requirement code landed by a version through RMT exceeds the version IR requirement package
- Requirements description is not clear. For example, uncertain description language with “roughly” and “etc” classes is used in requirement description. For example, “The device can provide real-time power, power consumption statistics, etc.”
- Demand decomposition is incomplete. For example, the requirement decomposition is omitted. For example, “The platform software needs to be normalized”, not only the platform needs to be normalized, but also the product needs to cooperate with the switch. However, the requirement is not decomposed to the product, leading to the abnormal matching during the release.
2. Discuss the process and method of demand analysis
Graph LR Problem Identification --> Analysis and Synthesis --> Specification --> Review
The main activities in the requirements analysis process are shown in the flowchart above. Firstly, collect user requirements, determine business objectives, and put forward the realization conditions of these requirements; Secondly, gradually refine the functional requirements, give a detailed logical model, determine the function priority; Once again standardize the description of the requirements of the design specification, that is, requirements specification; Finally, ensure a common understanding and understanding of requirements and evaluation of features. Requirements analysis methods include functional decomposition, structured analysis, information modeling, and object-oriented analysis. Huawei commonly uses the use-case analysis method.
2.1 Requirements analysis method based on use-case technology
Requirements analysis based on Use-Case technique is a method to capture, organize and describe requirements. Using the use case approach to describe system requirements is called use case modeling. Use cases are also a standardized expression of requirements in the UML specification. Each use-case describes a series of actions performed by the system that provide an observable and valuable result for the user.
2.2 Requirements for output quality of demand Analysis:
3 Demand Management
Common demand problems include unstable demand, untimely demand transmission, inaccurate demand description, inadequate demand decomposition and so on. The root cause of the problem lies in the lack of effective management of demand activities. Requirements management is a systematic approach to capturing, organizing, and documenting system requirements, as well as a process to enable customers and project teams to agree and align with changing system requirements.As shown in the preceding figure, huawei requirements management process consists of requirements collection, analysis, decision (change), and verification.The figure above shows the specific content of requirements management activities. Requirements change refers to the addition or supplement of new requirements on the basis of requirements, or modification or reduction of original requirements, which has a very important impact on software development:
- Frequent changes in requirements are the number one factor affecting the effectiveness of r&d
- Increase the personnel and expenses of the project and affect the development progress.
- Affects software quality.
- Impact the collaborative relationship between developers and users.
The key steps of requirement change can also be summarized as the following process:
Graph LR Requirements Assessment --> Change flow --> Requirements decision --> Import release synergy landing
What we need to understand is:
- The only constant in a software project is constant change, but within a given release, keep requirements as stable as possible through proper versioning and requirements management.
- Requirement management runs through the whole software requirement engineering. The most basic task of requirements management is to define requirements, so that the project team and users reach a consensus, that is, to establish requirements baseline.
- Demand management has an important impact on the success of the project. The change of demand requires standardized process control, and timely rejection of low-grade demand according to the demand sequencing can reduce the workload of subsequent scheme design and development.