Se Unit 2 Temp
Se Unit 2 Temp
Unit – II
Software Requirements Engineering and
Analysis
1. Modeling
Modeling in software engineering is the process of creating abstract representations of a
software system to understand, analyze, design, and communicate its structure and behavior
before actual development. These models help in visualizing the system from different
perspectives and ensure that all stakeholders have a clear understanding of the system.
Requirement
Types of Requirements
1. Functional Requirements – Define specific functions or features the system must have
(e.g., user authentication, data processing).
4. User Requirements – Define what users need from the system in terms of interaction and
experience.
2|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.
5. System Requirements – Detail the technical specifications for hardware, software, and
infrastructure.
1. Clear Understanding: Ensures a clear and shared understanding of project goals among
stakeholders.
2. Reduces Risks: Identifies potential issues early, minimizing project risks and failures.
3. Cost Efficiency: Prevents costly changes and rework by defining requirements upfront.
4. Improves Quality: Ensures the final product meets user needs and expectations.
8. Facilitates Scalability: Allows for future growth and adaptability of the system.
9. Boosts User Satisfaction: Delivers a product that aligns with user needs and expectations.
10. Supports Decision-Making: Provides a basis for prioritizing features and resources.
1. Inception: This is the initial phase where the need for a software system is identified, and
key stakeholders (clients, users, developers) are recognized.
Key Activities:
Example: A company wants to develop an e-learning app. In this stage, they identify teachers,
students, and administrators as stakeholders and define the goal of creating an interactive
learning platform.
Key Activities:
Example: Developers interview teachers to understand what features they need in the e-
learning app, such as quizzes, live sessions, and progress tracking.
3. Elaboration: This phase refines and expands the gathered requirements to make them more
detailed and structured.
Key Activities:
Example: After discussing with teachers, developers create detailed use case diagrams for user
roles like "Student," "Teacher," and "Admin," showing how they interact with the system.
4|Page © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.
4. Negotiation
Since different stakeholders may have conflicting requirements, this phase ensures a balanced
and mutually agreeable solution.
Key Activities:
Example: Teachers want real-time video streaming, but developers say it increases server costs.
They negotiate and agree to include pre-recorded video lectures as a cost-effective alternative.
5. Specification
Key Activities:
Example: Developers create an SRS document specifying that the system should support
"student login, course enrollment, and progress tracking" with detailed functionality
descriptions.
6. Validation
Ensures that the documented requirements are correct, complete, and feasible before
development begins.
Key Activities:
Example: Developers create a prototype of the e-learning app’s login and course dashboard.
Teachers and students test it and suggest improvements before finalizing the requirements.
7. Requirements Management
This phase deals with tracking, controlling, and updating requirements throughout the project
lifecycle.
Key Activities:
Example: After launching the app, users request a "dark mode" feature. This change is
evaluated, documented, and integrated into future updates while keeping track of
modifications.
Establishing the Groundwork in Software Engineering refers to the initial phase of a project
where the foundation is laid for successful development. This phase involves defining the
project's scope, objectives, and constraints, as well as identifying stakeholders and
understanding their needs. It sets the stage for all subsequent activities and ensures that the
team has a clear direction and shared understanding of what needs to be achieved.
Example Scenario:
A company wants to develop a mobile app for online food delivery. During the "Establishing
the Groundwork" phase:
The problem statement is defined: "Create an app to connect customers with local
restaurants for food delivery."
Objectives are set: "Provide a user-friendly interface, real-time order tracking, and
secure payment options."
The scope is determined: "The app will handle order placement and tracking but will
not manage restaurant inventory."
Feasibility studies confirm the project is viable within the budget and timeline.
o End-Users – The people who will use the software (customers, employees, students,
etc.).
o Quality Assurance (QA) Testers – Validate that the software meets requirements.
o Legal and Compliance Teams – Ensure adherence to laws, security standards, and
industry regulations.
4. External Stakeholders
Interviews & Surveys – Gather insights from business owners, end-users, and domain
experts.
o Example: Users may prioritize ease of use, while developers focus on technical
feasibility.
2. Avoiding Conflicts:
3. Comprehensive Solutions:
4. Improved Collaboration:
5. Better Decision-Making:
1. Identify Stakeholders:
o List all individuals or groups with an interest in the project (e.g., end users, clients,
developers, regulators).
2. Gather Viewpoints:
o Example: Ask users about their pain points and ask developers about technical
constraints.
3. Analyze Viewpoints:
o Compare and contrast the different viewpoints to identify commonalities and conflicts.
o Example: Users may want a feature that developers consider technically challenging.
4. Categorize Viewpoints:
5. Reconcile Conflicts:
6. Document Viewpoints:
7. Validate Viewpoints:
o Confirm with stakeholders that their viewpoints have been accurately understood and
addressed.
1. Clear Communication
2. Cross-Functional Teamwork
o Developers, designers, testers, and business analysts should work together rather than in
isolation.
3. Agile Methodology
o Use Agile practices like Scrum or Kanban to promote iterative development and
continuous collaboration.
10 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.
o Use Git, GitHub, or GitLab for managing code versions and enabling multiple
developers to work on the same project.
a
11 | P a g e © Haris Chaus | ALL RIGHTS ARE RESERVED as per copyright act.