Software Engineering: Requirements Engineering Process PDF
Document Details
Uploaded by IngeniousTan
National University
Tags
Summary
This document provides an overview of the Software Engineering process, specifically focusing on the requirements engineering phase. It details the stages of feasibility, elicitation, specification, validation, and management of requirements. The document incorporates examples and diagrams for better understanding.
Full Transcript
SOFTWARE ENGINEERING CHAPTER 2 Requirements Engineering (Requirement Engineering Process) 1 Requirements Engineering Software Engineering Requirement Engin...
SOFTWARE ENGINEERING CHAPTER 2 Requirements Engineering (Requirement Engineering Process) 1 Requirements Engineering Software Engineering Requirement Engineering Process Requirements Engineering Software Engineering Requirement Engineering Process Feasibility study: Assess whether the project should proceed by examining technical, economic, legal, operational feasibility --- (Cost benefit Analysis) Requirement Elicitation (collection): Identify and analyze requirements to understand customers' needs. Software Requirement Specification: Document the requirements in detail. Software Requirement Verification/Validation: Ensure that the requirements are accurate and complete. Management of Software Requirements: Properly manage requirements to improve project clarity and reduce errors Requirements Engineering Software Engineering A. Feasibility Study Feasibility Concentrates on below five mentioned areas Technical Feasibility: Operational Feasibility: Economic Feasibility: Legal Feasibility: Schedule Feasibility: Requirements Engineering Software Engineering Feasibility Study 1. Economic Feasibility: Cost and benefit of the project are analyzed. 2. Operational Feasibility: Analyze the possibility of software to solve business problem according to customer requirements/scope 3. Technical Feasibility: Analyze current resources (hardware, software, skills/capabilities) with the required technology to develop the project. Note: The results will decide whether to continue with project or NOT Requirements Engineering Software Engineering B. Requirement Elicitation/Collection Requirement Elicitation /Collection: This is cyclic (iterative) process of gathering and analyzing requirements of stakeholders for a software. Its goal is to understand the problem that the software is intended to solve and the expectations of the stakeholders of software. Identifying stakeholders is first step in requirements collection. Users are the most important stakeholders in requirement collection. Requirements Engineering Software Engineering B. Requirement Elicitation/Collection Techniques used in Data Collection Interviews: one-on-one discussions with stakeholders Surveys: Questionnaires distributed to stakeholders Focus Groups: Small groups of stakeholders discuss requirements Observation: Observing stakeholders’ work to gather requirements Requirements Engineering Software Engineering C. Requirements Specification Requirement Specification (SRS): Process of documenting the collected and analyzed requirements in a clear, and consistent style. SRS describes functional requirements (FRs), Non-functional requirements (NFRs) /Software Quality Requirements, Users and system interfaces (HW,SW, external etc) SRS is a formal document enable customer to validate the system SRS is a contract between customer and developers of software Requirements Engineering Software Engineering C. Requirements Specification Requirements Engineering Software Engineering Understanding Requirements 1. Business Requirements A business requirements document (BRD) outlines Software goals for the business, users and other stakeholders. The BRD serves as the basis for more detailed document preparation with users and system. Example: “The online student record system (software) will allow NU to record students’ information, courses, reporting progress, do payments, and be available online to students/parents in order to save cost and time for parents and NU staffs” Requirements Engineering Software Engineering Understanding Requirements 2. User requirements: Statements in natural language and sometimes diagrams of the services the system should provide and its operational constraints Written for users/customers. Example: "The NU staffs should be able to register students, upload results and payments as needed in order to maintain a current and complete students information” Requirements Engineering Software Engineering Understanding Requirements 3. System/Software requirements A document with more detailed descriptions of the system’s functions It can also use models to describe the requirements It is a contract between developers and customers. It expands the Business Requirements Document and user requirements into features and functions that developers can understand and implement Requirements Engineering Software Engineering Understanding Requirements Requirements Engineering Software Engineering D. Requirements Verification and Validation Verification and Validation (V&V) is the process of checking that the requirements are complete, consistent, accurate and they meet the needs and expectations of the stakeholders. The aim of V&V is to ensure that the software system being developed meets the requirements and that it is developed on time, within budget, and to the required quality. Requirements Engineering Software Engineering D. Requirements Verification and Validation (V&V) Basically, Requirements Verification and Validation: Verification: checks that the requirements are correctly specified and error-free Validation: ensures that the requirements meet the needs and expectations of the stakeholders. If requirements are not validated, any error in the requirement definitions would be transmitted to the successive stages resulting in a lot of modification and rework. Requirements Engineering Software Engineering E. Requirements Management Requirement management is the process of tracking and controlling change requirements and the communication with stakeholders during the engineering process Requirements management is very important in the engineering process as it prevents scope creep (Exceed scope) and to ensure that the requirements are aligned with the project goals. Requirements Engineering Software Engineering E. Requirements Management Activities Tracking and controlling changes: Controlling changes of the requirements from customers. Version control: This involves keeping track of different versions of the requirements document (SRS). Requirements Engineering Software Engineering E. Requirements Management Activities Traceability: Linking the requirements to design, testing, and validation. Communication: Ensures the requirements are communicated effectively to all stakeholders and that any change is addressed on time. Monitoring and reporting: Monitors project process and reports on the status of the requirements. Requirements Engineering Software Engineering Benefits of Requirements Engineering Ensures that the software being developed meets the needs and expectations of the stakeholders Identify potential problems early in the process, which can be resolved before the software design and development begins Ensures that the software is developed in a cost-effective and efficient manner Ensure that the software system is delivered on time, within budget, and to the required quality standards. Requirements Engineering Software Engineering Challenges of Requirements Engineering Can be Time-consuming and costly, if the requirements-gathering process is not well- managed or complex It can be challenging to ensure that the requirements are clear, consistent, and complete There may be conflicts between stakeholders, which can be difficult to resolve. It may be challenging to make all stakeholders understand and agree on the requirements. Requirements Engineering Software Engineering