The IEEE defines requirements as: ① the conditions or abilities that users need to solve problems or achieve certain goals. ② a condition or capability required by a system or system component to meet the requirements set forth in a contract, standard, specification, or other official document. ③ a document representation of a condition or a capability in a ① or ②. Through this definition to understand the need is not what the user wants, want to achieve, understand the essence of the requirements of the connotation.
Functional requirements are the most common, primary and important requirements of software systems, and are also the most complex requirements. Functional requirements are usually embodied in three levels: business needs, user requirements, system requirements.
Business requirements describe why organizations develop systems to meet the business needs of their users. Business requirements are the needs of users to make their work more convenient in their business.
User Requirements express the user's expectations of the system, but to understand the user's true intentions thoroughly and comprehensively, it is not enough to have expectations, but also to expect background knowledge. Therefore, for all user needs, should have sufficient knowledge of the problem domain as background support. In the actual work, when users express their expectations, usually do not mention the requirements involved in the problem domain knowledge, so demand engineering needs to be based on the needs of users to organize a complete knowledge of the problem domain.
System requirements is the user's expectations of the system behavior, a series of requirements linked together can help users to complete the task, to meet the needs of users, thus meeting business needs. Requirements engineering can directly map to system behavior, define the functions that need to be implemented in the system, and describe what developers need to achieve.
In this process, we need to analyze the characteristics of the problem domain and discover the shared knowledge of the problem area and computer system, and establish the knowledge model of the system. The user requirements are then deployed into the system model, which defines the system behavior of the series, allowing them to unite to implement user requirements, and each system behavior is a system requirement.
Directions for Demand Engineering: 1. Problem Analysis: Identify issues, define business requirements, develop solutions and system features. 2. Demand acquisition 3. Demand Analysis 4. Documentation and validation. The execution route of the demand project concisely shows how a demand engineering works and the whole process of demand engineering.
The book also lists the common requirements definition errors, better explain the definition of the previous requirements, and gives us more insight into the definition of requirements and the reasons why the requirements are defined incorrectly, which can be noticed and avoided in the actual process by analyzing the causes. There can also be better ways to avoid these errors.
Requirements Engineering Activities: 1. Demand acquisition; 2. Demand analysis; 3. Requirements specification; 4. Requirements verification; 5. Demand management
Demand acquisition is the process of acquiring requirements from people, documents, or the environment. In demand acquisition, the tasks required by the requirements engineer include: 1. Collection of background information; 2. Define the project foreground and scope; 3. Select the source of the information; 4. Select Get method, execute fetch; 5. Record the results.
The main studios of demand analysis use modeling to integrate information so that people can better understand the problem. In the requirements analysis phase, the main tasks of the requirements engineer include: 1. Background analysis; 2. Identify system boundaries; 3. Demand modelling; 4. Refinement of requirements; 5. Prioritization; 6. Demand negotiation
Requirements Specification: The acquisition needs need to be written into a document, where the project foreground and scope document records the business requirements, the user needs analysis records the user requirements, the system requirements are written to the requirements specification documentation system requirements. The main work of the requirement engineer at this stage includes: 1. Customizing the document template; 2. Writing a document
Requirements verification: In order to ensure that the above standards, to meet the requirements of specification documents, especially the final version of the requirements Specification document, before passing to the relevant personnel to carry out rigorous validation. The main tasks in the requirements verification phase include: 1. Perform validation; 2. Bug fixes
Demand management: Demand management changes control, incorporates and implements reasonable change requests, rejects unreasonable change requests, and controls the cost and impact of changes. The main tasks in the requirements Management phase include: 1. Establish and maintain a baseline set of requirements; 2. Establish requirements tracking information; 3. Change control
This section details the definition and classification of requirements, the activities of the demand process, so that we understand the role and significance of demand engineering, clear the source and whereabouts of software requirements. The theory, technique and practice are fused according to the actuality of both theory and practice in demand engineering.
"Requirements Engineering-software modeling and analysis" one of the reading notes