Notes#8
Notes#8
Software
Engineering
Requirements
Engineering
Learning Objectives
Students will be able to: Understand the importance of requirements engineering
in software development.
1. Clarifies Project Goals: Clearly defined requirements help the development team understand the
project scope and goals, reducing confusion and scope creep.
2. Minimizes Risk: By understanding requirements early, teams can mitigate risks related to unclear or
changing expectations.
4. Cost and Time Efficiency: Addressing requirements issues early prevents costly redesigns or project
delays later.
1. Requirements Elicitation:
• Objective: Gather information from stakeholders to understand their needs and expectations for the
system.
• Techniques: Interviews, surveys, observation, and brainstorming sessions are commonly used to
gather requirements.
• Challenges: Stakeholders may not fully understand or articulate their needs, or requirements may
conflict with each other.
2. Requirements Analysis:
• Objective: Analyze and prioritize the gathered requirements to identify conflicts, gaps, and feasibility.
• Key Activities: Clarifying ambiguous requirements, resolving conflicts, and determining the priority of
different requirements.
• Outcome: A refined set of requirements that can be realistically implemented.
3. Requirements Specification:
• Objective: Document the requirements in a structured format that all stakeholders can understand.
• Key Deliverable: The Software Requirements Specification (SRS), a detailed document that defines
functional and non-functional requirements.
By: Engineer Sonia Rafaqat
• Importance: The SRS serves as a blueprint for the development team, ensuring that they build the
Introduction to
Requirements Engineering 6
Process
cont.
4. Requirements Validation:
• Objective: Ensure that the documented requirements accurately reflect stakeholder needs and are
feasible to implement.
• Techniques: Prototyping, reviews, and walkthroughs can be used to validate the requirements with
stakeholders.
• Outcome: Validation reduces the likelihood of miscommunication and ensures that the system will meet
user expectations.
5. Requirements Management:
• Objective: Handle changes to the requirements over the course of the project.
• Challenges: Requirements can change due to evolving business needs or market conditions, and these
changes must be managed to prevent project disruption.
• Techniques: Version control, change impact analysis, and traceability matrices help track changes and
assess their impact.
Types of Stakeholders:
End Users: Those who will interact with the system directly.
Project Managers: Individuals responsible for ensuring the project stays on time
and within budget.
Regulators: Agencies or individuals who ensure the system complies with laws and
regulations.
Requirements Engineering
for the London Ambulance
System
(Case Study
1)
In the early 1990s, the **London Ambulance Service (LAS)** attempted to implement a new
computer-aided dispatch system to improve response times. However, the project failed due to
poorly managed requirements and miscommunications between stakeholders and developers.
Introduction to
Requirements Engineering
Process
9
2. Surveys/Questionnaires:
Written sets of questions sent to stakeholders to gather requirements.
• Best For: Projects with many stakeholders or users where direct interaction with each one is impractical.
• Example: A survey might be used to gather feedback from potential users of a mobile app to
understand which features are most desired.
3. Workshops:
• Group meetings with stakeholders and team members to collaboratively discuss and define
requirements.
• Best For: Projects that involve multiple stakeholders with potentially conflicting requirements.
• Example: A workshop for a hospital management system might include doctors, nurses, and
administrators to gather a broad range of requirements and perspectives.
By: Engineer Sonia Rafaqat
Introduction to
Requirements Engineering
Process
10
cont.
4. Focus Groups:
A small group of stakeholders or users is brought together to discuss their needs and expectations for the
system.
• Best For: Projects where feedback from representative users or stakeholders is needed to validate ideas
or prototypes.
• Example: A focus group might be used to gather input from a select group of teachers for an online
education platform to refine specific features like grading systems or attendance tracking.
6. Prototyping:
Building a simple, working version of the system (or part of it) to help stakeholders visualize the end
product and provide feedback.
• Best For: Projects where requirements are not well understood or where stakeholders need help
By: Engineer articulating
Sonia Rafaqattheir needs.
• Example: A prototype of a banking app might be created to demonstrate the interface and transaction
Introduction to
Requirements Engineering
Process
11
cont.
7. Document Analysis:
Reviewing existing documentation, such as manuals, reports, or regulations, to
gather information about the system requirements.
• Best For: Projects where detailed documentation exists that can inform the
requirements process.
• Example: Analyzing existing system documentation for a legacy inventory
management system to gather baseline requirements for an upgrade.
3. Prioritize Requirements:
• Not all requirements have the same importance. Use prioritization techniques
(such as MoSCoW) to identify "Must-have" versus "Nice-to-have" requirements.
4. Validate Requirements:
• After gathering requirements, validate them with stakeholders through reviews,
prototypes, or walk-throughs to ensure accuracy and completeness.
5. Document Clearly:
• Use clear, unambiguous language to document requirements, avoiding technical
jargon where possible to ensure that all stakeholders understand the
requirements.
1. Ambiguous Requirements:
Sometimes requirements are not clear or specific enough, leading to misunderstandings.
Solution: Use prototypes, user stories, and detailed descriptions to clarify requirements.
2. Changing Requirements:
Requirements may evolve due to changes in the business environment or user needs.
Solution: Implement a solid requirements management process to track changes and assess their impact.
3. Conflicting Requirements:
Different stakeholders may have conflicting needs or expectations.
Solution: Prioritize requirements based on the overall goals of the project and involve stakeholders in resolving
conflicts.
4. Communication Gaps:
Miscommunication between stakeholders and the development team can lead to inaccurate requirements.
Solution: Regular meetings, reviews, and feedback loops can ensure alignment between stakeholders and
developers.
By: Engineer Sonia Rafaqat
Introduction to
Requirements 14
Engineering Process
Key Characteristics:
Describes System Behavior: Functional requirements define specific tasks or actions
the system should carry out.
User-Oriented: These requirements are often written from the perspective of what the
user expects the system to do.
Can Be Tested: Functional requirements can be validated through testing to ensure the
system behaves as expected.
Examples:
1. User Authentication: The system must allow users to log in using a username and
password.
2. Search Functionality: The system must provide a search feature to allow users to
find items by keyword.
3. Data Entry and Validation: The system must allow users to input personal
information and validate the data for correctness (e.g., email format validation).
4. Payment Processing: The system must process credit card transactions securely.
System-Oriented: These requirements are often technical and describe how well the
system must perform under certain conditions.
Key Characteristics:
1. Performance: The system must handle 1000 concurrent users without performance
degradation.
2. Security: The system must encrypt all sensitive user data using AES-256 encryption.
3. Usability: The system must allow a new user to learn how to navigate and use core
functions within 10 minutes.
4. Availability: The system must have an uptime of 99.99% over a one-month period.
5. Scalability: The system must be able to scale to accommodate a 50% increase in traffic
during peak hours.
By: Engineer Sonia Rafaqat
Functional & Non-Functional
Requirements 17
Importance:
Both functional and non-functional requirements are critical to the success of a software
project. While functional requirements define what the system should do, non-functional
requirements ensure that the system performs those tasks efficiently, securely, and reliably.
Below are a few reasons:
1. Completeness: If you only capture functional requirements, you may build a system
that works but fails to meet user expectations for performance, reliability, or
security.
2. Prioritize Requirements:
• Not all requirements are equally important. Work with stakeholders to prioritize both functional and non-functional
requirements, focusing first on "must-have" items. Example: Prioritize security requirements for a financial
application while performance might be more critical for an entertainment platform.
Lecture Task!
Why is stakeholder involvement critical to the success
of the requirements engineering process?
Lecture Task!
Why is stakeholder involvement critical to the success
of the requirements engineering process?
Food for
Thought!
Without self-
discipline
success is
By: Engineer Sonia Rafaqat