What Is the Needs Approach?
Requirements analysis is also known as software requirements analysis, system requirements analysis, or requirements analysis engineering. It is a detailed and detailed investigation and analysis by developers to accurately understand the specific requirements of users and projects in terms of functions, performance, and reliability. The process of transforming a requirement statement into a complete requirement definition that determines what the system must do. [1]
- Requirement analysis is an important activity in the software planning phase, and an important link in the software life cycle. This phase is to analyze the function of the system "what to achieve", rather than considering how to "implement" it. The goal of the requirements analysis is to analyze and sort out the "requirements" or "needs" that the users have towards the development of the software, and after confirmation, form a complete, clear and standardized document, and determine which functions the software needs to implement and which tasks to complete. In addition, software non-functional requirements (such as software performance, reliability, response time, scalability, etc.), software design constraints, and the relationship between the runtime and other software are also the goals of software requirements analysis. [2]
- In order to promote the standardization and scientificization of software research and development, many software development and description methods have been proposed in the software field, such as structured methods, prototype methods, and object-oriented methods. Some of these methods are very similar. In the actual needs analysis work. Each demand analysis method has its own unique ideas and representations, and basically applies the following basic principles of demand analysis.
- (1) Focus on the data and functional domains that express understanding issues. For the data processed by the new system program, its data fields include data flow, data content, and data structure. Functional domains reflect the control processing information of their relationship.
- (2) Demand problems should be decomposed and detailed to establish a problem hierarchy. Complex problems can be broken down according to specific functions, performance, etc., and detailed and analyzed layer by layer.
- (3) Establish an analysis model. The model includes various diagrams and is an important expression of the characteristics of the research object. The logical view can give the relationship between the target function and the information processing, rather than the implementation details. The physical view is determined by the system's operating and processing environment, and the actual representation of processing functions and data structures is determined by it. [1]
- The content of the requirements analysis is to provide complete, clear and specific requirements for the software to be developed, and to determine what tasks the software must implement. Specifically divided into three aspects of functional requirements, non-functional requirements and design constraints.
- 1. Functional requirements
- Functional requirements are what the software must do, what functions it must implement, and the actions it needs to perform to provide its users with useful functions. Functional requirements are the main body of software requirements.
- The work of the requirements analysis phase can be divided into four aspects: problem identification, analysis and synthesis, formulation of specifications, and review.
- Problem identification: It is to understand the software from a system perspective, determine the comprehensive requirements for the developed system, and propose the conditions for the implementation of these requirements and the standards that the requirements should meet. These requirements include: functional requirements (what to do), performance requirements (what indicators to achieve), environmental requirements (such as models, operating systems, etc.), reliability requirements (probability of no failure), security requirements, user interface requirements , Resource usage requirements (memory, CPU, etc. required for software operation), software cost consumption and development progress requirements, and estimates in advance what the system may achieve in the future.
- Analysis and synthesis: gradually refine all software functions, find out the connections between system elements, interface characteristics and design constraints, analyze whether they meet the requirements, remove unreasonable parts, and add required parts. Finally, the system solution is synthesized, and a detailed logical model (model of what to do) of the system to be developed is given.
- Formulate a specification: that is, a document is prepared, and the document describing the requirements is called a software requirements specification. Please note that the result of the requirements analysis phase is the requirements specification, which is submitted to the next phase.
- Review: Evaluate the correctness, completeness and clarity of the function, and other requirements. Only after passing the review can the next stage of work be carried out, otherwise the needs analysis will be carried out again.
- At present, there are many methods for analysis and design of software requirements, some of which are similar, while others have very different basic ideas. Starting from the development process and characteristics, software development generally uses
- The characteristics and difficulties of demand analysis are mainly reflected in the following aspects.
- (1) It is difficult to determine the problem. The main reasons are: first, the complexity of the application field and business changes, which are difficult to determine specifically; the second is caused by multiple factors involved in user needs, such as the operating environment and system functions, performance, reliability, and interfaces.
- (2) Demand changes from time to time. Software requirements often change with time and business throughout the software life cycle. Some user needs change frequently, and some enterprises may be in the period of change and growth of system reform and corporate reorganization. Their immature, unstable, and non-standard enterprise requirements make the demand dynamic.
- (3) Communication is difficult to reach consensus. Requirements analysis involves many people and related factors. When communicating with users, business experts, requirements engineers, and project administrators, different background knowledge, roles, and perspectives make communication consensus difficult.
- (4) The demand for acquisition is difficult to achieve completeness and consistency. Because different people have different understandings of the requirements of the system, the expression of the problem is not accurate enough, and there may be contradictions in various needs. It is difficult to eliminate contradictions and form a complete and consistent definition.
- (5) It is difficult to conduct in-depth analysis and improvement of requirements. Requirement understanding For incomplete and accurate analysis, changes in customer environment and business processes. Changes in market trends, etc. It will also continue to improve with analysis, design, and implementation, and software requirements may be revised at the end. Analysts should recognize the necessity of changing requirements and take steps to reduce the impact of changing requirements on software. Necessary change requirements can only be implemented after careful review, tracking and comparative analysis. [1]