Book No 2: Software Requirements Engineering Practical Approach By (Sardar Mudassar Ali khan)
Tags: webdev, softwareengineering, software, sre
Published: 2023-07-22 17:46:58

Software Requirements Engineering is a critical phase in the software development life cycle that focuses on gathering, analyzing, documenting, and managing the requirements for a software system. It involves understanding and defining what the software is expected to do, how it should behave, and the constraints it must follow. Effective requirements engineering is essential for successful software development, as it forms the foundation for the entire project.

Here are the key steps and concepts involved in Software Requirements Engineering:

1. **Requirements Elicitation:**
   - This is the process of gathering requirements from various stakeholders, such as users, customers, domain experts, and other project stakeholders. Techniques like interviews, surveys, workshops, and observations are used to elicit requirements.

2. **Requirements Analysis:**
   - Once the requirements are gathered, they need to be analyzed and refined to ensure clarity, completeness, consistency, and correctness. Conflicting or ambiguous requirements are resolved during this phase.

3. **Requirements Documentation:**
   - The requirements need to be documented in a structured and unambiguous manner. Commonly used documentation artifacts include a Software Requirements Specification (SRS) document, use cases, user stories, and mockups.

4. **Requirements Verification and Validation:**
   - Verification ensures that the documented requirements accurately represent the stakeholders' needs and expectations. Validation ensures that the developed software meets those requirements. Techniques like inspections, reviews, and walkthroughs are used for this purpose.

5. **Requirements Management:**
   - Requirements are likely to change throughout the software development process due to evolving business needs, changing market conditions, or new insights gained during development. A requirements management process helps track and control changes to requirements, ensuring that changes are properly evaluated, approved, and implemented.

6. **Traceability:**
   - Traceability refers to the ability to track the relationships between different artifacts throughout the development process. It helps ensure that each requirement is implemented, tested, and validated in the final software.

7. **Prioritization:**
   - Requirements often have different levels of importance. Stakeholders and the development team must prioritize requirements based on factors like business value, technical feasibility, and risk.

8. **Conflict Resolution:**
   - Sometimes, different stakeholders may have conflicting requirements. Effective requirements engineering involves resolving such conflicts in a way that satisfies the needs of all stakeholders or reaching a compromise that aligns with the project's objectives.

9. **Requirements Change Management:**
   - Throughout the development process, changes to requirements are almost inevitable. A change management process is necessary to handle these changes in a controlled manner, ensuring that the impact of changes on the project is well understood and managed.

By following a systematic and well-defined requirements engineering process, software development teams can ensure that they build software that meets the needs of their stakeholders and delivers value to users. Good requirements engineering lays the groundwork for successful software development and helps avoid costly rework and misunderstandings later in the project.

I welcome you all to software requirement engineering the topic discussed in this book based on practical knowledge of the industry. In this book we will study the complete project and discuss this project from start to end we will apply all the software requirement techniques software principles and other procedures that are very much beneficial for the development of software products.

Software Requirement Engineering is the practical approach to requirement engineering and the Development of Software product this book is divided into four parts every part have its dimension. In this book, we will explain the fully featured project for this project we will explain how we can do the following steps.

1. Requirement Elicitation
2. Requirement Implementation
3. Selection of process model
4. SRS Documentation
5. Result and Discussion
Project Name is (Online Law Firm Android App)
### PART 1: Laying the foundation.

1. Welcome to Software Requirement Engineering.
2. Metaphors of Rich Understanding of SRE.
3. Prerequisites for Software Requirement Engineering.
4. Key Requirement Decision.
### PART 2: Requirement Elicitation.

1. Introduction of requirement Elicitation.
2. Feasibility Study.
3. Requirement Elicitation Techniques.
4. Requirement Validation and Verification
5. Requirement Management.
### PART 3: Types of Software Requirement.

1. Introduction of Software Basic Requirement.
2. System Functional Requirement.
3. System Non-Functional Requirements.
4. Requirement Validation and Verification.
### PART 4: Selection of Software Process Model.

1. Introduction of the software process model.
2. Software Process Models.
3. Importance of Software Process Model.
4. Selection of Software Process Model.
5. How to use it in your system.
### PART 5: Software Requirement Specification.

1. System Design.
2. Development and Configuration Management.
3. Quality Assurance for the software products.
4. Results and Discussion of Software Product.
### PART 6: Results and Discussion.

1. Introduction to Result and Discussion of a Software product.
2. System Requirement Future Enhancement.

Software Requirement is the process of describing the features and functionalities of the targeted system. Software Requirements give us a clear picture of the targeted system i.e., what the expectation of the customer for his/her product requirements can be obvious or hidden known and unknown expected and unexpected according to the client's point of view.

Software requirement engineering is a very important phase of the software development process or simply Software development life cycle (SDLC). This phase is used to translate the unclear and incomplete idea of the customer into complete precise and formal specification this document is very must important and act as a bridge between the Customer, User, and Developers. Therefore, the importance of software requirement engineering is very much important for the development of effective and efficient software products.
How to Read this Book
This book is designed to be read either topic by topic or cover by cover. If you are a primary level programmer, then you should read this book topic by topic OR if you are an intermediate level programmer then you should read this book from chapter 2 OR if you are a High-level programmer then you should read this book from part 2. If you are a general reader, then read the book from start to end.


[Download My Complete Book About Software Requirements Engineering](https://www.amazon.com/dp/B0B94VRT2Y)