Wa0000
Wa0000
Leading University
Department of
Assignment
On
Submitted To
Mohammad Soaib Rahman
Lecturer
Computer Science & Engineering
Leading University
Submitted by
Samira Tasneem Hussain
ID: 0182220012101075
Section: B Batch:60
Leading University, Sylhet
Collecting Software Requirements
Collecting software requirements is a crucial step in software development, ensuring that the final product meets user
needs and business goals. This process involves gathering, analyzing, and documenting the functionalities and constraints
of a system. Effective requirement collection minimizes misunderstandings, reduces development costs, and enhances
user satisfaction. Various techniques such as interviews, surveys, observations, document analysis, and workshops help
identify stakeholder expectations, technical constraints, and potential improvements. A well-defined requirement
collection process lays the foundation for a successful software project by ensuring clarity, feasibility, and alignment
with user expectations.
1. Interviews
Interviews are a common requirements elicitation technique used in software development to gather information
from stakeholders about their needs, expectations, and constraints for a software system. These interviews help
software engineers understand the system requirements more clearly before designing and developing the
application.
Types of Interviews
1. Structured Interviews
Example Scenario
Imagine developing an E-commerce App.
● A structured interview with the business owner may include questions about inventory management.
● An unstructured interview with customers may explore how they browse and purchase products.
● A semi-structured interview with delivery personnel may reveal challenges in tracking orders.
By conducting these interviews, developers can gather well-rounded requirements and design a system that meets user
needs effectively.
Surveys and questionnaires are requirement elicitation techniques used in software development to gather feedback
from stakeholders about their needs, preferences, and expectations. These methods help software engineers collect data
from a large audience efficiently.
1. Surveys
2. Questionnaires
1. Define Objectives
2. Design Questions
4. Collect Responses
5. Analyze Data
6. Report Findings
Example Scenario
Imagine developing a Ride-Sharing App.
● A survey could be sent to drivers and passengers to collect feedback on existing services.
● A questionnaire could ask passengers to rate app performance, ease of use, and pricing on a Likert scale.
By analyzing responses, developers can refine the system to better meet user expectations.
3. Observation
Observation is a requirements elicitation technique where analysts study users in their natural environment to understand how
they interact with a system, perform tasks, and encounter challenges. This method helps capture real-world usage patterns and
implicit requirements that stakeholders may not explicitly mention in interviews or surveys.
Types of Observation
1. Passive Observation
● The analyst watches users perform their tasks without interference.
● Example: Observing a cashier using a point-of-sale (POS) system to identify usability issues.
2. Active Observation
● The analyst interacts with users, asks questions, and seeks clarifications.
● Example: Observing and asking warehouse workers about inventory tracking challenges.
1. Define Objectives
● Determine what tasks and behaviors to observe.
● Identify which users or roles to study.
4. Analyze Findings
● Identify common patterns, bottlenecks, and user difficulties.
● Compare observations with stakeholder expectations.
Advantages of Observation
Captures Real Behavior – Shows how users actually work, not just how they describe it.
Identifies Hidden Issues – Reveals inefficiencies and unspoken challenges.
Provides Context – Helps understand workflow dependencies and constraints.
Example Scenario
Imagine developing a Hospital Management System.
● Passive Observation: Watching nurses and doctors use the existing patient record system to spot inefficiencies.
● Active Observation: Asking receptionists about challenges in scheduling appointments while observing their workflow.
By analyzing these observations, developers can refine system features to enhance usability and efficiency.
4. Document Analysis
Document analysis is a requirements elicitation technique where existing documents, such as reports, manuals, specifications,
and business process documents, are reviewed to gather information about the system requirements. It helps software engineers
understand the current system, business rules, and functional requirements without directly engaging with stakeholders.
5. Document Findings
● Organize and document the requirements in a structured format (e.g., use cases, user stories).
● Summarize the relevant information in a requirements specification document.
Example Scenario
Imagine developing a Customer Relationship Management (CRM) System.
● Business Documents: Analyzing the company’s sales strategies and customer service policies to understand business
goals.
● System Documents: Reviewing current CRM software documentation to identify existing features and gaps.
By analyzing these documents, developers can ensure the new system aligns with business objectives, integrates with existing
processes, and meets technical specifications.
Workshops and brainstorming sessions are collaborative techniques used to gather and refine software requirements through
group discussions and idea generation. These methods help stakeholders collaboratively explore needs, create solutions, and
prioritize features.
1. Workshops
● Structured meetings where stakeholders (users, developers, product managers) come together to define, refine, and
prioritize requirements.
● Facilitated by a requirements engineer or moderator to ensure focus and productive discussions.
● Example: A workshop with business users and IT teams to identify features and constraints for a new software tool.
2. Brainstorming Sessions
● Informal group discussions aimed at generating creative ideas and solutions.
● Encourages participants to share unconventional ideas to explore all possibilities.
● Example: A brainstorming session with the design team to identify innovative features for a mobile app.
5. Document Findings
● Summarize the results of the session, including key insights, decisions, and action items.
● Create a requirements document based on the session outcomes, ensuring that all stakeholders are aligned.
Example Scenario
Imagine developing a Project Management System.
● Workshop: Organizing a workshop with project managers, team leads, and developers to define critical features like task
management, timelines, and reporting.
● Brainstorming Session: Holding a brainstorming session with designers and users to explore creative ways to present
project data visually.