Unit 3_PRK
Unit 3_PRK
Presentation
on
Software
Engineering
Presented by-
Prashant Kothari (36174)
Software Engineering
CHAPTER-3
Requirements Engineering
Requirement Practices : Loopholes
The tasks in requirement engineering are typically divided into several key
activities-
1. Requirement Inception
The initial phase where the idea of the project is explored, and a broad
understanding of the system is established.
Tasks Involved-
Identify key stakeholders.
Discuss the overall project goals and objectives.
Requirement Engineering tasks
2. Requirement Elicitation-
Requirement elicitation is the process of gathering information from
stakeholders (clients, end-users, and others).
Tasks Involved- Interviews, Workshops, Surveys/Questionnaires,
Observation, Document Analysis
Requirement Engineering tasks
3. Elaboration
Refining and expanding the gathered requirements into detailed and
structured formats.
Tasks Involved-
Analyze the gathered requirements for completeness and clarity.
Develop models, such as data flow diagrams or use cases, to represent the
system.
Requirement Engineering tasks
4. Negotiation
Resolving conflicts and prioritizing requirements while balancing
stakeholder needs and project constraints.
Tasks Involved-
Identify conflicting requirements among stakeholders.
Facilitate discussions to reach agreements on critical requirements.
Requirement Engineering tasks
5. Specification
Creating a formal and comprehensive document that outlines the system's
requirements in detail.
Tasks Involved-
Document functional requirements, describing what the system will do.
Document non-functional requirements, including performance, security,
and usability.
Requirement Engineering tasks
6. Validation
Ensuring that the specified requirements accurately represent stakeholders'
needs and are feasible to implement.
Tasks Involved-
Conduct reviews of the requirements with stakeholders.
Perform prototyping or simulation to validate key requirements.
Requirement Engineering tasks
7. Requirements Management
The continuous process of tracking and managing changes to the
requirements throughout the project lifecycle.
Tasks Involved-
Implement a change control process to handle modifications.
Maintain traceability of requirements to design, implementation, and
testing phases.
Requirement Engineering tasks
expectations of stakeholders.
It involves several interconnected activities that are performed iteratively
throughout the software development lifecycle.
Requirement Engineering Processes
1. Requirements Elicitation-
Goal: Gather and collect requirements from stakeholders.
Activities: Conduct interviews, workshops, surveys, and observations to
understand stakeholders' needs and expectations.
Outputs: Requirements elicitation document, stakeholder requirements, user
stories, use cases, etc.
Requirement Engineering Processes
2. Requirements Analysis-
Goal: Analyze and refine gathered requirements for clarity, completeness,
consistency and feasibility.
Activities: Review and prioritize requirements, identify dependencies, and
resolve conflicts or ambiguities.
Outputs: Refined requirements document, prioritized requirements list,
requirements models (e.g., use case diagrams, activity diagrams).
Requirement Engineering Processes
3. Requirements Specification-
Goal: Document requirements in a clear, unambiguous, and structured manner.
Activities: Write detailed descriptions of functional and non-functional
requirements, create system models (if applicable), and validate with
stakeholders.
Outputs: Requirements specification document, system models (e.g., class
diagrams, sequence diagrams), prototype (if used for validation).
Requirement Engineering Processes
4. Requirements Validation-
Goal: Ensure that the specified requirements are correct, consistent, complete,
and feasible.
Activities: Validate requirements through reviews, walkthroughs, prototyping,
simulations, and demonstrations.
Outputs: Validated requirements document, feedback from stakeholders,
identified changes or refinements.
Requirement Engineering Processes
5. Requirements Management-
Goal: Manage changes to requirements throughout the software development
lifecycle.
Activities: Establish baselines for requirements, manage version control, track
changes, and ensure traceability between requirements and other project artifacts.
Outputs: Baseline requirements document, traceability matrix, change requests
and impact analysis.
Requirement Engineering Processes
6. Requirements Communication-
Goal: Ensure that requirements are clearly communicated to all stakeholders.
Activities: Present requirements in formats understandable to different
stakeholders (e.g., technical specifications for developers, user stories for users),
conduct meetings and status updates.
Outputs: Updated project documentation, meeting minutes, communication
plans.
Requirement Engineering Processes
7. Requirements Traceability-
Goal: Maintain traceability links between requirements and other project.
Activities: Establish and manage traceability matrices, ensuring that every
requirement is traced to design elements, test cases, and implemented code.
Outputs: Traceability matrix, reports on traceability coverage, updated
documentation.
Requirement Engineering Processes
8. Requirements Evolution-
Goal: Manage changes in requirements over time.
Activities: Track changes in stakeholder needs, analyze impacts on existing
requirements and project scope, prioritize and implement changes.
Outputs: Updated requirements documentation, change requests, revised project
plans.
Software Requirement Specifications
A Software requirement specification (SRS) is a document that mentioned
complete description about how the system is expected to perform, behavior
of system, functional and non-functional requirements of the system.
SRS is a formal report, that enables the customers to review whether it (SRS) is
according to their requirements.
User of SRS
1. Client
2. Development team
3. Maintenance team
4. Technical writers
Need of SRS Document
It structures and formalizes all project requirements.
It helps the development team build a product that exactly meets customer and
target audience needs.
It provides all team members with the necessary information while working on the
project.
It minimize the possible misunderstanding between the members of the development
team and the customer.
It clearly define the scope of work and that allows developers to plan particular
iterations and release dates.
It allows estimating the required development budget.
Characteristics of good SRS
1. Correctness: provide accurate functional and non-functional requirements as
discussed with client.
2. Completeness: Should complete all essential features like functionality,
performance, features, design, constraints & external interfaces.
3. consistency: Same abbreviation, tabular format, diagram format, naming format
follow.
4. Unambiguousness: Should not be any confusion regarding understanding of the
requirements. Everything mentioned uniquely and clearly.
5. Ranking for importance and stability: Every requirement is important. But some
are urgent and must be fulfilled before other requirements and some could be delayed.
Characteristics of good SRS
6. Modifiability: It is capable of quickly obtain changes to the system without affecting
other.
7. Verifiability: the requirements are verified with the help of reviewers & stakeholders.
8. Traceability : Every requirements having unique number that is easy to use in future
development.
9. Design Independence: There should be an option to select from multiple design
alternatives for the final system. SRS should not contain any implementation details.
10. Design Independence: An SRS should be written in such a method that it is
simple to generate test cases and test plans from the report.
Requirements validation
The process of checking that the requirements accurately reflect the needs of
the stakeholders.
Ensures the software meets user expectations, prevents costly rework, and improves
overall project success.
Objectives of Requirements Validation
1. Ensure requirements are complete, consistent, unambiguous, and verifiable.
2. Identify and resolve errors, inconsistencies and omissions early in the
development process.
3. Improve stakeholder confidence in the project.
Requirements validation
Requirements Validation Techniques
1. Reviews and Inspections
2. Prototyping
3. Test Case Generation
4. Modeling and Simulation