Role of Requirements Analysis in Software Engineering Process
Software engineering requirements analysis can be defined as the process of determining what is required to develop and use a particular software system. Analysis of software requirements is an integral part of software development. Requirements analysis is used before designing any system.
A requirements analysis is a detailed written document that contains an accurate description of a desired complete assessment of required functional requirements for a certain field or topic. Software engineering, also called software life cycle, is an excellent practice model, pet project, ian and citizen, John Pickering, Ewing, and sweet, 1997). Requirements analysis is considered the first step in the software lifecycle.
An analyst will perform requirements analysis. In the analysis phase, the analysts will meet with the stakeholders, describe the needs of the stakeholders, collect requirements data, select solutions, and evaluate technical work requirements. The goal of the analysis is to provide requirements data that satisfies the technical goals of the project and ensures the business effectiveness. The primary objective is to determine the technical debt relative to the expected future profits. In some projects, the analysis stage may also include a discussion of the business impact to existing and potential users of the developed product or technology.
The main benefits of requirements analysis are that it helps in software development, improves software quality, and minimizes the cost involved in software development and maintenance. It is usually performed on the client’s behalf by specialized software developers. In the software development industry, this process is normally referred to as “systems engineering”. One important advantage of requirements analysis is that it serves as a tool for testing and refocusing the system design after development. The analysis helps in establishing the client’s requirements, constraints, strengths, interests, and objectives, and enables the client to negotiate a compatible software design with the developers.
Requirements analysis plays an important role in integrating technical improvements in an application. A thorough analysis of the requirements enables the improvement of functionality and performance. Integration requirements are those that identify and specify the interdependent components of the system. Integration requirements often have a relationship with other component requirements but are most commonly associated with a change in one component of an application.
A software project team completes requirements analysis after choosing a software system for a particular customer. The analysis enables the software project team to build robust and efficient software applications that satisfy the customer’s specific requirements. The requirements must be specified in a formal process that describes the requirements in a stepwise manner with requirements being categorized into different levels of detail. This formalized approach makes it easier to compare and contrast the requirements of the software with those of the client, and ensures that the same requirements are being fulfilled.
The data stream analysis model is used to extract the business value from the requirements analysis process. The analysis model includes a model that generates the requirements from the analysis and a map specifying the relations between the requirements and the data stream. The map is then used to derive the requirements for each part of the software and the business value from those requirements. The data flow diagrams (DFD) used in the analysis model visualizes the relationships among the individual requirements in a way that can be understood by programmers and software engineers. Once the programmer understands the relationship among the DFDs, he can reuse the code from previous projects in a similar manner without complicating his design.
Software systems are developed based on analysis models used in software engineering. Both manual and automatic systems are applied in some projects and for implementing the required functionality in such projects, the requirement elicitation system is used. In a requirement elicitation system, a programmer submits a series of questions to the database, which is analyzed by the system administrator to generate the appropriate requirements based on the business requirements. With the help of this system, a programmer can easily identify the problems associated with software systems and easily solve them without much programming or knowledge of software development processes.