0% found this document useful (0 votes)
4 views39 pages

Chapter 3

Chapter 3 of the document focuses on requirements elicitation in software engineering, detailing its importance, processes, and techniques. It emphasizes the need for effective communication between developers and stakeholders to gather clear and concise requirements, which are crucial for project success. Various methods such as interviews, surveys, and brainstorming are discussed, along with the challenges faced during the elicitation process.

Uploaded by

abrhamalemu110
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views39 pages

Chapter 3

Chapter 3 of the document focuses on requirements elicitation in software engineering, detailing its importance, processes, and techniques. It emphasizes the need for effective communication between developers and stakeholders to gather clear and concise requirements, which are crucial for project success. Various methods such as interviews, surveys, and brainstorming are discussed, along with the challenges faced during the elicitation process.

Uploaded by

abrhamalemu110
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

Injibara University

College of Engineering and Technology


Software Engineering

Chapter 3

Requirements Elicitation
Presented By: Andualem M.
01/20/2025 Software Engineering -1-
Outlines
An overview of requirements elicitation.
Requirements elicitation concepts
– 3.2.1. Functional requirements
– 3.2.2. Nonfunctional and pseudo requirements
– 3.2.3. Levels of description
– 3.2.4. Correctness, completeness, consistency, clarity, and realism
– 3.2.5. Verifiability and traceability

01/20/2025 • Software Engineering 2


What is Requirement elicitation?
• It is the process of collecting the requirements of a system OR
• Requirement gathering from user, customers and stakeholders by conducting
meetings, interviews, questionnaires, brainstorming sessions, prototyping etc.
• It encompasses all activities involved in discovering the requirements of a
system.
• The system developers and engineers work in a close relationship with the
customers and end-users.
• To determine more about the problem to be solved and to bridge the gap between
the stakeholders and the developers.

01/20/2025 • Software Engineering 3


…cont’d
• It is the process of investigating and learning about a system’s
requirements from users, clients, and other stakeholders is known as
requirements elicitation.
• Requirements elicitation in software engineering is perhaps the most
difficult, most error-prone, and most communication-intensive
software development.

01/20/2025 • Software Engineering 4


Requirements elicitation concepts
• Requirement Elicitation can be successful only through an effective
customer-developer partnership.
• It is needed to know what the users require.
• It involves the identification, collection, analysis, and refinement of
the requirements for a software system.
• It is a critical part of the software development life cycle and is
typically performed at the beginning of the project.
• It involves stakeholders from different areas of the organization,
including business owners, end-users, and technical experts.

01/20/2025 • Software Engineering 5


…cont’d
• The output of the requirements elicitation process is a set of
 Clear,
 Concise, and
 Well-defined requirements that serve as the basis for the design
and development of the software system.
• Requirements elicitation is difficult because :
☞just questioning users and customers about system needs may not
collect all relevant requirements, particularly for safety and
dependability.
01/20/2025 • Software Engineering 6
…cont’d

 Interviews,
 surveys,
 user observation,
 workshops,
 brainstorming,
 use cases,
 role-playing,
 prototyping are all methods for eliciting requirements.

01/20/2025 • Software Engineering 7


Importance of Requirements Elicitation
1. Compliance with Business Objectives: The process of elicitation
guarantees that the software development endeavors are in harmony
with the wider company aims and objectives.
2. User Satisfaction: By actively involving stakeholders in the
elicitation process, it ensures that the final product meets or exceeds
their expectations, leading to higher satisfaction and acceptance.
3. Time and Money Savings: Having precise and well-defined
specifications aids in preventing miscommunication and rework
during the development phase.

01/20/2025 • Software Engineering 8


…cont’d
• 4. Compliance and Regulation Requirements: Requirements elicitation is
crucial for projects in regulated industries to guarantee that the software
conforms with applicable laws and norms. In industries like healthcare, finance,
and aerospace, this is crucial.
• 5. Traceability and Documentation: Throughout the
software development process, traceability is based on well-documented
requirements.
• Traceability helps with testing, validation, and maintenance by ensuring that
every part of the software can be linked to a particular requirement.
• 6. Risk Mitigation: Proper elicitation helps identify potential issues and
misunderstandings early in the project lifecycle, reducing the risk of project
failure due to unmet requirements.
01/20/2025 • Software Engineering 9
Requirements Elicitation Activities
• Requirements elicitation includes the subsequent activities:
1. Finding out more about the problem to be solved and where the systems are
applied .
2. Describing the functionalities of the system and non functional attributes
3. Interaction of system with external requirements.
4. Detailed investigation of user needs.
5. Define the constraints for system development.
6. Enhances the performance of the system.
7. Overcomes hardware constraints.
8. Bridges the gap between the stakeholders and the developers.

01/20/2025 • Software Engineering 10


Requirements Elicitation Process
1. Preparation: Before interacting with stakeholders, it’s crucial to
identify who they are, understand their background, and prepare
the right set of tools and techniques to facilitate effective elicitation.
2. Elicitation Techniques Application: Employ techniques tailored to
the project and stakeholders involved.
1. Interviews
2. focus groups
3. Surveys
4. document analysis
5. observation, and prototyping.
Each technique has its strengths and is chosen based on the specific context and requirements of the project.

01/20/2025 • Software Engineering 11


…cont’d
3. Requirements Documentation: The information gathered from
stakeholders is documented in a structured format.

4. Analysis and Negotiation: Analyzing the documented requirements


to identify conflicts, redundancies, and gaps.
This phase often involves negotiating with stakeholders to prioritize
requirements and resolve conflicts arising from differing needs or
constraints.
.

01/20/2025 • Software Engineering 12


…cont’d
5. Validation and Verification: Ensuring the requirements document is
complete, consistent, and acceptable to all stakeholders.
This includes validating that the requirements align with business
objectives and verifying that they are feasible within technical, time,
and budget constraints.
6. Baseline and Maintenance: Once validated, the requirements document is
often baselined as a reference point for future project activities.
• Requirements management continues throughout the project,
accommodating changes and refinements as the project evolves.

01/20/2025 • Software Engineering 13


Types of Requirements
• Functional Requirements:
 It Specify what the system should do. They describe the interactions between
the system and its environment, independent of the implementation.
 Examples: User login process, data processing logic, and report generation
capabilities.
• Non-Functional Requirements:
– It Outlines the quality attributes or constraints the system must exhibit.
– They are not about specific behaviors but how the system performs under
certain conditions or constraints.
– Examples: Performance metrics (response time, throughput), security
standards, usability, scalability, and compatibility.
01/20/2025 • Software Engineering 14
• System Requirements: …cont’d
– Detailed specifications describing the software system’s functions, features,
and constraints.
– These can be further divided into software and hardware requirements.
– Examples: Hardware specifications (CPU, memory, disk space),
– software (operating systems, middleware), system integrations, and system behaviors.
• User Requirements:
– Express the needs and desires of the end-users in terms of tasks they need to
perform with the system, often documented in natural language or through
use cases.
– Examples: Ability to export data into various formats, user-friendly interfaces
for non-technical users, and custom notification settings.
01/20/2025 • Software Engineering 15
Stakeholders in Requirements Elicitation
• Stakeholders are individuals or groups with an interest in the outcome of the project .
• In requirement elicitation, stakeholders typically include:
• End-users: Who will directly interact with the system?
• Business Managers: Those who make strategic decisions based on the system’s output.
• Project Managers: Who oversees the project’s execution.
• Development Team: This includes software engineers, designers, and testers
who build and maintain the system.
• Customers: Who commissions the software and funds the project?
• Regulatory Bodies: Whose standards and regulations must be met by the system.

01/20/2025 • Software Engineering 16


Challenges in Eliciting Requirements
• Communication Barriers: Misunderstandings between stakeholders and the
development team due to language, technical jargon, or cultural differences.
• Incomplete Requirements: Difficulty in capturing all requirements at the start, leading
to changes and revisions later in the project.
• Conflicting Requirements: Different stakeholders may have competing or
contradictory requirements, necessitating negotiation and prioritization.
• Changing Requirements: As the project progresses or external conditions change,
requirements may also need to be updated, adding complexity to the project
management.
• Identifying Tacit Knowledge: Uncovering unspoken or implicit requirements that
stakeholders assume but do not communicate.
• Stakeholder Engagement: Ensuring all relevant stakeholders are identified, available,
and willing to participate in the elicitation process.
01/20/2025 • Software Engineering 17
Requirements Elicitation Techniques
• Technique #1. Brainstorming
• Technique #2. Interviews
• Technique #3. Surveys/Questionnaires
• Technique #4. Prototyping
• Technique #5. Document Analysis
• Technique #6 – Storyboarding
• Technique #7: Ethnography
• Technique #8: Use Case Approach
• Technique #9: CRC (Class Responsibility Collaboration) in
requirements
01/20/2025 • Software Engineering 18
Technique 1.
Brainstorming

01/20/2025 • Software Engineering 19


Technique #1. Brainstorming
• Brainstorming, embodies a dynamic group activity focused on
generating a wide array of ideas, solutions, and requirements for a
project.
• It thrives on leveraging the collective intelligence and creativity of
the participants, usually comprising project stakeholders, team
members, and potential users.
• This technique is especially valuable in the initial phases of a project,
where the goal is to explore various possibilities and identify
innovative solutions without the constraints of criticism or feasibility
considerations.
01/20/2025 • Software Engineering 20
Key Objectives and Advantages:
• Idea Generation: Facilitates the rapid generation of a broad spectrum
of ideas.
• Enhanced Collaboration: Encourages active participation from all
stakeholders, and project team, and ensures a diverse set of
perspectives is considered.
• Creative Freedom: Creates a safe space for free thinking and sharing
out-of-the-box ideas, which can lead to innovative solutions and
uncover hidden requirements.
• Problem-Solving: Helps identify and solve complex problems by
allowing team members to build on each other’s ideas, leading to more
refined and comprehensive solutions.
01/20/2025 • Software Engineering 21
Process and Implementation:
• Preparation: Define the scope and objectives of the brainstorming session, select a diverse group
of participants, and choose a facilitator to guide the process.
• Idea Generation Phase: Participants are encouraged to freely express their ideas, no matter how
unconventional they may seem, without fear of immediate critique or evaluation.
• Encouragement of Diverse Ideas: The facilitator encourages the exploration of different angles
and perspectives, ensuring a wide-ranging discussion that can lead to innovative solutions.
• Building on Ideas: Participants build on each other’s suggestions, enhancing and expanding upon
initial concepts, often leading to more refined and creative outcomes.
• Documentation: All ideas are recorded verbatim, ensuring nothing is lost or overlooked during the
session. This record serves as a valuable resource for subsequent analysis and development phases.
• Analysis and Refinement: Following the session, ideas are categorized, evaluated, and refined.
This stage may involve prioritization techniques to identify the most promising or critical ideas for
further exploration or development.

01/20/2025 • Software Engineering 22


Challenges and Considerations:
• Group Dynamics: Managing group dynamics to ensure equal
participation and prevent dominance by more vocal participants is
crucial for the success of a brainstorming session.
• Idea Saturation: There may be points during the session where ideas
start to wane; the facilitator must employ strategies to reinvigorate the
group and stimulate further creativity.
• Quality vs. Quantity: While brainstorming emphasizes the quantity of
ideas over quality, it’s essential to eventually shift focus towards
filtering and refining ideas to ensure they align with project goals and
constraints.
01/20/2025 • Software Engineering 23
Technique #2. Interviews
• Interviews in requirements elicitation represent a fundamental, direct
method for gathering detailed information from stakeholders.
• This technique involves structured or semi-structured one-to-one or
group discussions with individuals, such as end-users, business
managers, project sponsors, and others who possess insights into the
system’s requirements.

01/20/2025 • Software Engineering 24


Key Objectives and Advantages:
• Depth of Insight: Interviews provide an opportunity to explore complex issues
in detail, allowing for a deeper understanding of stakeholder needs and the
nuances of their requirements.
• Clarification and Verification: They offer a direct channel for clarifying
ambiguities and verifying assumptions, ensuring the elicited requirements are
accurate and fully understood.
• Flexibility: The format of interviews can be adapted to suit the stakeholder’s
familiarity with the subject matter and the specific goals of the elicitation
process, ranging from open-ended discussions to more structured question-and-
answer formats.
• Personal Engagement: Interviews facilitate personal interaction, building trust
and rapport with stakeholders, which can encourage openness and sharing of
critical insights that might not emerge
01/20/2025 through
• Software Engineering other elicitation techniques. 25
Process and Implementation:
• Planning: Identify the stakeholders to be interviewed and the objectives for each interview.
Prepare a list of questions or topics to be covered, tailored to the interviewee’s role and level
of expertise.
• Conducting Interviews: Depending on the chosen format (structured, semi-structured, or
unstructured), the interviewer guides the conversation through prepared questions or topics
while remaining open to exploring new insights that emerge.
• Active Listening: It’s crucial for the interviewer to practice active listening, paying close
attention to the interviewee’s responses and asking follow-up questions to probe deeper into
key areas.
• Documentation: Detailed notes or recordings (with the interviewee’s consent) should be
taken to ensure that all information is captured accurately for later analysis.
• Analysis: The collected data is analyzed after the interview to identify and document the
requirements. This may involve coding responses, identifying themes, and prioritizing the
requirements based on the information gathered.
01/20/2025 • Software Engineering 26
Challenges and Considerations:
• Bias and Influence: Interviewers must be aware of potential biases and
strive to maintain neutrality, ensuring that the interviewee’s responses are
not unduly influenced by how questions are phrased or presented.
• Time and Resource Intensive: Conducting and analyzing interviews can
be time-consuming, particularly for projects with many stakeholders.
• Interpretation and Accuracy: The subjective nature of personal
communication requires careful interpretation of responses, particularly for
open-ended questions, to ensure that the requirements are accurately
understood and documented.

01/20/2025 • Software Engineering 27


Technique #3. Surveys/Questionnaires
• Surveys and questionnaires stand as highly scalable and efficient
techniques for requirement elicitation, enabling data collection from a
broad audience in a relatively short period of time.
• This method is particularly useful when the project stakeholders are
numerous or geographically dispersed, and there’s a need to gather a
wide range of opinions, preferences, and requirements for the system
under development.
• This technique facilitates the quantitative and qualitative stakeholder
needs analysis by deploying structured questions.

01/20/2025 • Software Engineering 28


01/20/2025 • Software Engineering 29
Key Objectives and Advantages of Surveys/Questionnaires
• Broad Reach: Surveys and questionnaires can be distributed to many
stakeholders simultaneously, making it possible to gather diverse perspectives
efficiently.
• Quantitative and Qualitative Data: They can be designed to collect
quantitative data (e.g., ratings, rankings) and qualitative insights (e.g., open-
ended responses), providing a balanced view of stakeholder requirements.
• Anonymity and Honesty: Respondents might be more willing to provide honest
feedback when anonymity is assured, leading to more accurate and truthful
responses.
• Cost-Effective: Compared to other elicitation methods such as interviews and
workshops, surveys and questionnaires are more cost-effective, especially when
stakeholders are widespread.
01/20/2025 • Software Engineering 30
Process and Implementation of Surveys/Questionnaires
• Designing the Survey/Questionnaire: Carefully craft questions that align with the objectives
of the requirements elicitation. The survey should include a mix of closed-ended questions for
statistical analysis and open-ended questions to capture detailed comments and suggestions.
• Pilot Testing: Before widespread distribution, conduct a pilot test with a small, representative
segment of the target audience to identify any ambiguities or issues in the questionnaire.
• Distribution: Choose the most effective means to distribute the survey, considering the
stakeholders’ access to and familiarity with digital tools. In some settings, options include
email, online survey platforms, or even paper-based questionnaires.
• Data Collection: Set a reasonable response deadline, and consider sending reminders to
maximize the response rate.
• Analysis: Analyze the collected data to identify trends, patterns, and outliers.
• Feedback and Validation: Share the findings with key stakeholders for validation and to
ensure that the interpreted requirements accurately reflect their needs and expectations.

01/20/2025 • Software Engineering 31


Challenges and Considerations:
• Design Complexity: Crafting clear, unbiased questions capable of
eliciting useful information requires careful consideration and
expertise in survey design.
• Response Rate and Bias: Achieving a high response rate can be
challenging, and the results may be biased toward the views of those
who chose to respond.
• Interpretation of Responses: Analyzing open-ended responses and
translating them into actionable requirements necessitates a deep
understanding of the context and the ability to interpret stakeholder
feedback accurately.
01/20/2025 • Software Engineering 32
Question Types
• Closed-Ended Questions: These questions limit responses to a set of
predefined options. They are useful for gathering quantitative data that can
be easily analyzed. Examples multiple-choice questions, and yes/no
questions.
• Open-Ended Questions: These allow respondents to answer in their own
words, providing qualitative insights that can reveal nuanced understanding
and novel ideas.
• Ranking and Rating Questions: These questions ask respondents to
prioritize or rate different items according to their preferences or
importance.
• They are useful for understanding the relative significance of various
requirements.
01/20/2025 • Software Engineering 33
Technique #4. Document Analysis
• Document Analysis is a technique that involves reviewing and
interpreting existing documentation.
• This method is particularly useful in projects with significant written
material, such as reports, manuals, existing system specifications,
business plans, and user documentation.

01/20/2025 • Software Engineering 34


Purpose and Benefits:
• Leverage Existing Knowledge: It uses documented information, reducing the
need for extensive stakeholder consultations in the initial phase.
• Identify System Requirements: By analyzing existing documentation, analysts
can uncover detailed information about the current system’s capabilities,
limitations, and areas for improvement.
• Understand Business Processes: Documents related to business processes
provide insights into how the organization operates, which is crucial for ensuring
the new system aligns with business objectives.
• Gap Analysis: Reviewing documents can help identify discrepancies between
the current state and the desired future state, guiding the development of
requirements to bridge these gaps.

01/20/2025 • Software Engineering 35


Process and Implementation:
• Identify Relevant Documents: The first step involves identifying and gathering all
documents that could provide insights into the system and its requirements. This
includes both technical documentation and business-related materials.
• Review and Analyze Documents: Conduct a thorough review of the collected
documents, extracting relevant information related to the system’s functionality,
business processes, user interactions, and any known issues or constraints.
• Synthesize Findings: Consolidate the information extracted from the documents to
understand the existing system and the operational context. This synthesis helps in
identifying key requirements for the new system.
• Validate and Refine Requirements: The preliminary requirements identified
through document analysis should be validated with stakeholders and refined based
on feedback. This ensures that the requirements accurately reflect the needs and
constraints of the project.
01/20/2025 • Software Engineering 36
Challenges and Considerations:
• Quality and Relevance of Documentation: Outdated, incomplete, or inaccurate documents
can lead to misunderstandings or misinterpreting requirements.
• Over-reliance on Existing Material: While existing documents are a valuable source of
information, relying solely on document analysis can result in missed opportunities for
innovation or improvement.
• Integration with Other Techniques: To obtain a comprehensive and accurate set of
requirements, document analysis should be used in conjunction with other elicitation
techniques such as interviews, workshops, and prototyping.
• This blended approach ensures that both explicit knowledge contained in documents and tacit
knowledge held by stakeholders are captured.

01/20/2025 • Software Engineering 37


Assignment
• Explore more about the following Req. Elicitation Technique
– Technique #5. Prototyping
– Technique #6 – Storyboarding
– Technique #7: Ethnography
– Technique #8: Use Case Approach
– Technique #9: CRC (Class Responsibility Collaboration) in requirements

01/20/2025 • Software Engineering 38


01/20/2025 • Software Engineering 39

You might also like