Software Engineering – Software Requirement Tasks
Requirements engineering is a broad domain that focuses on being the connector between modeling, analysis, design, and construction. It is the process that defines, identifies, manages, and develops requirements in a software engineering design process. This process uses tools, methods, and principles to describe the system’s behavior and the constraints that come along with it.
Requirements engineering is the most important part every business must follow, in order to build and release a project successfully, as it is the foundation to key planning and implementation.
Requirements Engineering Tasks: The software requirements engineering process includes the following steps of activities:
- Requirements Management
Let’s discuss each of these steps in detail.
1. Inception: This is the first phase of the requirements analysis process. This phase gives an outline of how to get started on a project. In the inception phase, all the basic questions are asked on how to go about a task or the steps required to accomplish a task. A basic understanding of the problem is gained and the nature of the solution is addressed. Effective communication is very important in this stage, as this phase is the foundation as to what has to be done further. Overall in the inception phase, the following criteria have to be addressed by the software engineers:
- Understanding of the problem.
- The people who want a solution.
- Nature of the solution.
- Communication and collaboration between the customer and developer.
2. Elicitation: This is the second phase of the requirements analysis process. This phase focuses on gathering the requirements from the stakeholders. One should be careful in this phase, as the requirements are what establishes the key purpose of a project. Understanding the kind of requirements needed from the customer is very crucial for a developer. In this process, mistakes can happen in regard to, not implementing the right requirements or forgetting a part. The right people must be involved in this phase. The following problems can occur in the elicitation phase:
- Problem of Scope: The requirements given are of unnecessary detail, ill-defined, or not possible to implement.
- Problem of Understanding: Not having a clear-cut understanding between the developer and customer when putting out the requirements needed. Sometimes the customer might not know what they want or the developer might misunderstand one requirement for another.
- Problem of Volatility: Requirements changing over time can cause difficulty in leading a project. It can lead to loss and wastage of resources and time.
3. Elaboration: This is the third phase of the requirements analysis process. This phase is the result of the inception and elicitation phase. In the elaboration process, it takes the requirements that have been stated and gathered in the first two phases and refines them. Expansion and looking into it further are done as well. The main task in this phase is to indulge in modeling activities and develop a prototype that elaborates on the features and constraints using the necessary tools and functions.
4. Negotiation: This is the fourth phase of the requirements analysis process. This phase emphasizes discussion and exchanging conversation on what is needed and what is to be eliminated. In the negotiation phase, negotiation is between the developer and the customer and they dwell on how to go about the project with limited business resources. Customers are asked to prioritize the requirements and make guesstimates on the conflicts that may arise along with it. Risks of all the requirements are taken into consideration and negotiated in a way where the customer and developer are both satisfied with reference to the further implementation. The following are discussed in the negotiation phase:
- Availability of Resources.
- Delivery Time.
- Scope of requirements.
- Project Cost.
- Estimations on development.
5. Specification: This is the fifth phase of the requirements analysis process. This phase specifies the following:
- Written document.
- A set of models.
- A collection of use cases.
- A prototype.
In the specification phase, the requirements engineer gathers all the requirements and develops a working model. This final working product will be the basis of any functions, features or constraints to be observed. The models used in this phase include ER (Entity Relationship) diagrams, DFD (Data Flow Diagram), FDD (Function Decomposition Diagrams), and Data Dictionaries.
A software specification document is submitted to the customer in a language that he/she will understand, to give a glimpse of the working model.
6. Validation: This is the sixth phase of the requirements analysis process. This phase focuses on checking for errors and debugging. In the validation phase, the developer scans the specification document and checks for the following:
- All the requirements have been stated and met correctly
- Errors have been debugged and corrected.
- Work product is built according to the standards.
This requirements validation mechanism is known as the formal technical review. The review team that works together and validates the requirements include software engineers, customers, users, and other stakeholders. Everyone in this team takes part in checking the specification by examining for any errors, missing information, or anything that has to be added or checking for any unrealistic and problematic errors. Some of the validation techniques are the following-
- Requirements reviews/inspections.
- Test-case generation.
- Automated consistency analysis.
7. Requirements Management: This is the last phase of the requirements analysis process. Requirements management is a set of activities where the entire team takes part in identifying, controlling, tracking, and establishing the requirements for the successful and smooth implementation of the project.
In this phase, the team is responsible for managing any changes that may occur during the project. New requirements emerge, and it is in this phase, responsibility should be taken to manage and prioritize as to where its position is in the project and how this new change will affect the overall system, and how to address and deal with the change. Based on this phase, the working model will be analyzed carefully and ready to be delivered to the customer.