Software requirement engineering notes
Software requirement engineering notes
Table of Contents
1. Introduction to Requirements Engineering
1.1 Overview of Requirements Engineering
1.2 Importance of Software Requirements
2. Software Requirements
2.1 Classification of Requirements
2.2 Requirements Process
2.3 Levels/Layers of Requirements
2.4 Requirement Characteristics
2.5 Analyzing Quality Requirements
3. Software Requirements in the Context of Systems Engineering
3.1 Requirement Evolution
3.2 Requirement Traceability
3.3 Requirement Prioritization
3.4 Trade-Off Analysis
3.5 Risk Analysis and Impact Analysis
3.6 Requirement Management
3.7 Interaction Between Requirement and Architecture
4. Requirement Elicitation
4.1 Elicitation Sources
4.2 Elicitation Techniques
5. Requirement Specification and Documentation
5.1 Specification Sources
5.2 Specification Techniques
5.3 Requirements Validation and Techniques
6. Management of Requirements
6.1 Introduction to Requirements Management
6.2 Requirements Management Problems
6.3 Managing Requirements in Various Organizations
6.3.1 Acquisition-Oriented Organizations
6.3.2 Supplier-Oriented Organizations
6.3.3 Product-Oriented Organizations
6.4 Requirements Engineering for Agile Methods
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
• Clear Goals: Ensures everyone involved understands what the software aims to achieve.
• Avoids Errors: Reduces misunderstandings that could lead to costly mistakes.
• Saves Money: Fixing mistakes in planning is much cheaper than fixing them after development.
• Improves User Satisfaction: Ensures the software aligns with user needs.
1. Better Communication: Helps developers, clients, and users stay on the same page by defining
goals clearly.
2. Higher Quality Software: Ensures the final product meets user needs and expectations.
3. Reduced Project Risks: Minimizes chances of failure by addressing issues early in the process.
4. Cost Efficiency: Saves money by avoiding unnecessary changes later in development.
5. Easier Maintenance: A clear understanding of requirements makes updates and fixes easier.
1. Unclear Goals: If stakeholders are unsure of their needs, defining requirements becomes
harder.
2. Changing Requirements: Stakeholders may change their minds during the project, leading to
delays and rework.
3. Conflicting Stakeholder Interests: Different stakeholders may have opposing expectations.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
4. Limited Resources: Time and budget constraints can make it difficult to explore all
requirements.
5. Communication Gaps: Miscommunication between teams or stakeholders can lead to
misunderstandings.
2. Software Requirements
1. Functional Requirements
o Define what actions the system should perform.
o Example: "The app must allow users to reset their password."
o Focus: Tasks, behaviors, and functions of the software.
2. Non-Functional Requirements
o Define qualities or standards the system must meet.
o Examples:
▪ Performance: "The app should load in under 2 seconds."
▪ Security: "The system should encrypt all sensitive data."
o Focus: Speed, security, user experience, scalability, etc.
3. Domain Requirements
o Special rules or constraints specific to the industry.
o Example: In banking, "All transactions must be logged and stored for 5 years."
Functional Non-Functional
Aspect Domain Requirements
Requirements Requirements
Supports functional
Dependency Independent Tied to domain expertise
requirements
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
The process of handling requirements is done step-by-step to ensure clarity and accuracy. Here
are 7 key steps:
1. Gather Requirements
o Collect all the requirements from users, stakeholders, and other sources.
o Techniques include interviews, surveys, and observation.
2. Analyze Requirements
o Check if the requirements are complete, clear, consistent, and feasible.
o Look for conflicts and resolve them early.
3. Prioritize Requirements
o Rank requirements by importance (e.g., must-have, nice-to-have).
o Focus first on critical requirements.
4. Document Requirements
o Write all requirements in a clear and detailed format, such as a Software Requirements
Specification (SRS) document.
5. Validate Requirements
o Confirm with users and stakeholders that the requirements meet their needs.
o Use prototypes or models for validation.
6. Manage Changes to Requirements
o Track and handle any changes in requirements during the project.
7. Review and Approve Requirements
o Ensure all stakeholders agree on the requirements before moving forward.
1. Business Requirements
o High-level goals of the organization.
o Example: "Reduce customer complaints by 20% within one year."
2. User Requirements
o What users expect from the software.
o Example: "The app should allow users to search for products by name or category."
3. System Requirements
o Detailed and technical specifications developers use to build the system.
o Example: "The app must support 10,000 users simultaneously without performance
issues."
• Interface Requirements: Define how the system interacts with users or other systems.
Example: "The app must provide a search bar at the top of every page."
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
1. Clear
o Use simple, unambiguous language.
o Example: Instead of "Should be fast," write "Must respond in under 1 second."
2. Complete
o Cover every detail.
o Example: Include what happens during errors or failures.
3. Consistent
o No contradictions within requirements.
o Example: If one requirement says "Free user accounts," another shouldn’t say "All
accounts must be paid."
4. Feasible
o Must be achievable with available resources.
5. Testable
o Should be easy to check if it is met.
o Example: "The system must support 100 users at once" can be tested, but "The system
should be user-friendly" is vague.
6. Prioritized
o Clearly indicate importance.
o Example: Mark "Critical," "Important," or "Optional."
7. Traceable
o Must show a clear connection between the requirement and its source.
8. Adaptable/Changeable
o Should allow modifications if needed.
9. Manageable
o Easy to organize, monitor, and control.
o Example: Use tools like JIRA or Trello to track requirement progress.
10. Verifiable
Quality requirements ensure the software performs well and meets users’ expectations. Let’s
analyze each point in detail:
1. Performance:
o How fast should the system respond?
o Example: "The system should process up to 1,000 transactions per second."
2. Usability:
o Is the system easy to use?
o Example: "The interface should guide users with tooltips and clear labels."
3. Reliability:
o How stable is the system?
o Example: "The system should be operational 99.9% of the time."
4. Scalability:
o Can the system grow as user demand increases?
o Example: "The system should support up to 1 million users without performance
issues."
5. Security:
o Is the system safe from threats?
o Example: "All user data should be encrypted using AES-256."
6. Maintainability:
o How easy is it to fix bugs or add new features?
o Example: "The system should allow updates without downtime."
7. Interoperability:
o Can it work well with other systems?
o Example: "The software should integrate with popular payment gateways like PayPal."
1. Workshops:
o Group discussions to gather and refine requirements.
2. Prototyping:
o Creating a simple version of the system to gather feedback.
3. Observation:
o Watching users perform tasks to understand their needs.
4. Brainstorming:
o Generating ideas as a group to identify requirements.
5. Questionnaires/Surveys:
o Asking users and stakeholders questions to collect requirements.
6. Use Case Modeling:
o Writing scenarios that describe how users will interact with the system.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
In systems engineering, software requirements play a crucial role in guiding the design and
development of software. These requirements ensure that the software will integrate seamlessly
into the larger system and meet user needs. Here, we explore various aspects of software
requirements in the context of systems engineering.
Requirements evolve over time, which means that they can change as the project progresses, due
to shifting business needs, new technology, or user feedback. Managing this evolution properly
ensures the final product remains aligned with current goals and needs.
Requirement traceability involves tracking each requirement throughout its life cycle—from its
origin to its implementation and verification. This process ensures that each requirement is
accounted for and properly linked to its source.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
Not all requirements are of equal importance. Prioritization ensures that critical requirements are
addressed first, helping to allocate time and resources efficiently.
1. Methods of Prioritization:
o MoSCoW Method: Categorizes requirements into Must-have, Should-have, Could-have,
and Won’t-have. This helps in focusing on essential features first.
o Kano Model: Classifies requirements into Basic, Performance, and Excitement factors to
understand which features are essential and which will delight users.
o Cost-Benefit Analysis: Weighs the cost of implementing a requirement against the
benefits it will provide.
o Stakeholder Voting: Gets input from stakeholders on which features are most
important to them.
2. Benefits of Prioritization:
o Ensures Timely Delivery: Focuses on critical requirements to ensure the project stays on
schedule.
o Optimizes Resource Allocation: Helps ensure resources are used on the most valuable
features.
o Reduces Risks: Prioritizing requirements ensures the most crucial features are
addressed first, reducing the risk of missing out on important functionality.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
Trade-off analysis is the process of comparing different options to make informed decisions
when faced with conflicting requirements or limitations.
Risk analysis helps identify potential problems early in the project, while impact analysis helps
understand the effects of changes in requirements or the system.
1. Risk Analysis:
o Identifying Risks: Recognize potential risks like unclear requirements, changing
technology, or resource constraints.
o Assessing Risk Impact: Evaluate how these risks might affect the project (e.g., cost,
time, user satisfaction).
o Mitigation Strategies: Plan actions to reduce or avoid risks, such as adding buffers in the
schedule or using alternative technologies.
2. Impact Analysis:
o Assessing Changes: When a requirement changes, impact analysis helps understand
how that change will affect other parts of the project (e.g., design, cost, schedule).
o Example: A change in a requirement for a mobile app may affect its design, user
interface, and user experience.
3. Risk and Impact Management:
o Contingency Planning: Create backup plans for risks that are identified.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
o Constant Monitoring: Continuously monitor and reassess risks and impacts throughout
the project’s lifecycle.
Requirement management is the ongoing process of ensuring that all requirements are tracked,
updated, and met throughout the software development life cycle.
The relationship between requirements and the software architecture is crucial for ensuring that
the system is both functional and feasible.
4. Requirement Elicitation
Requirement elicitation is the process of gathering the needs and expectations of stakeholders,
including users, clients, and other people involved in the project. This is one of the first and most
important steps in the software development process because it ensures the software meets the
right goals and fulfills the necessary functions. Eliciting good requirements helps avoid problems
later in the project.
In this section, we’ll explore the sources from which requirements can be gathered (Elicitation
Sources) and the techniques used to gather them (Elicitation Techniques).
Elicitation sources refer to where the information for the software requirements comes from.
These sources help you understand what stakeholders need and expect from the system. They are
the people, documents, or processes that can provide important insights.
1. Stakeholders:
o Definition: Stakeholders are people or groups that have an interest in the project. This
includes users, customers, developers, business managers, and even external groups
like regulatory bodies.
o Examples:
▪ End Users: People who will actually use the software, and whose needs should
be the primary focus.
▪ Customers: People or companies that commission the project and pay for its
development.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
▪ Regulatory Authorities: Government bodies that may set legal standards for the
software (e.g., data privacy laws).
o Why Important: Stakeholders provide first-hand knowledge about what the software
needs to do, what they expect, and what limitations exist.
2. Existing Documentation:
o Definition: Existing documentation includes any documents that have already been
written about the system, such as project charters, business plans, or any previous
versions of the software.
o Examples:
▪ Business Plans: They often contain strategic goals, objectives, and business
needs.
▪ Old Software Specifications: If you're updating or upgrading software, previous
requirements may provide a starting point.
▪ Regulatory Documents: Legal or industry standards that the software must
comply with.
o Why Important: This documentation often has useful information and can save time,
especially when modifying existing systems or ensuring compliance.
3. Observations:
o Definition: Observing how users perform their tasks can help gather important
requirements by seeing how the current system (if any) works in real life.
o Examples:
▪ Watching Users: Observing how end users work with the existing software or
manual processes can help you identify what works well and what needs
improvement.
▪ Shadowing Employees: Following employees in their daily work to understand
how a new system can make their tasks easier.
o Why Important: It provides real-world insights that stakeholders may not express
directly.
4. Surveys and Questionnaires:
o Definition: Asking users or stakeholders to fill out forms or answer questions can help
collect their opinions and preferences.
o Examples:
▪ Online Surveys: Asking users to rate their current experience and provide
suggestions for new features.
▪ Questionnaires: Structured questions that allow for detailed responses about
user needs.
o Why Important: They help gather input from a large number of people in a quick and
structured manner.
5. Workshops and Focus Groups:
o Definition: These are group discussions where stakeholders discuss and clarify their
needs and expectations for the software.
o Examples:
▪ Workshops: Facilitated sessions where users and stakeholders come together to
define requirements, brainstorm ideas, and discuss problems.
▪ Focus Groups: Small groups of users or stakeholders are gathered to talk about
their needs and reactions to the proposed system.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
o Why Important: These collaborative sessions encourage brainstorming and help clarify
any unclear or conflicting requirements.
6. Competitor Systems and Market Research:
o Definition: Looking at similar systems in the market can provide ideas on what features
and functions your software should have.
o Examples:
▪ Competitor Analysis: Reviewing what similar software applications do and
seeing what works well or what can be improved.
▪ Market Research: Gathering information on trends, customer preferences, and
technology that might influence your project.
o Why Important: Provides insights into user expectations and industry standards.
Elicitation techniques are methods used to gather the requirements from the identified sources.
These techniques help ensure the collected requirements are complete, clear, and actionable.
1. Interviews:
o Definition: One-on-one conversations with stakeholders to gather detailed information
about their needs.
o Types:
▪ Structured Interviews: Follow a fixed set of questions to ensure consistency
across different interviews.
▪ Unstructured Interviews: More flexible, where the interviewer explores topics
as they arise.
o Why Important: They allow for in-depth understanding and clarification of stakeholder
needs.
o How to Use: Prepare a list of questions but be ready to explore responses in more
detail.
2. Brainstorming:
o Definition: A group activity where participants come up with ideas and solutions to
problems without worrying about limitations or feasibility.
o Why Important: Encourages creativity and allows for a wide range of ideas to be
generated quickly.
o How to Use: Gather a team of stakeholders, set a topic, and let everyone share their
thoughts freely. Afterward, evaluate and prioritize the ideas.
3. Use Case Modeling:
o Definition: Creating scenarios or stories to describe how users will interact with the
system. It helps to define functional requirements.
o Why Important: Use cases are easy to understand and describe specific system actions
based on real user interactions.
o How to Use: Write down a series of steps that show how users will perform tasks using
the system, such as logging in or submitting a form.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
4. Prototyping:
o Definition: Building a simple version (or prototype) of the system to gather feedback
from stakeholders.
o Why Important: Stakeholders can interact with the prototype and provide real-time
feedback, which helps refine requirements.
o How to Use: Develop a basic version of the system or feature, share it with
stakeholders, and gather their feedback on its design and functionality.
5. Observation (Job Shadowing):
o Definition: Observing how users perform their tasks can uncover hidden needs that
users might not directly express.
o Why Important: It reveals how users behave and interact with the current system,
providing insights that may not be captured in interviews.
o How to Use: Spend time with the user, watch them perform their tasks, and take notes
on how they interact with the existing system or process.
6. Document Analysis:
o Definition: Reviewing existing documentation (e.g., system manuals, business plans,
process descriptions) to identify requirements.
o Why Important: It’s a quick way to gather historical or background information on a
system, especially when updating existing software.
o How to Use: Go through the available documents to identify requirements or business
rules that are relevant to the new system.
7. Surveys and Questionnaires:
o Definition: These are structured forms that collect information from a large number of
people.
o Why Important: Helps gather input from many stakeholders quickly and in a structured
manner.
o How to Use: Distribute the survey/questionnaire and analyze the responses to identify
common requirements or preferences.
8. Workshops:
o Definition: Group discussions where stakeholders come together to clarify and define
requirements.
o Why Important: It fosters collaboration, reduces misunderstandings, and ensures
alignment among different stakeholders.
o How to Use: Plan and facilitate discussions to get input from users, business
representatives, and technical teams.
9. Focus Groups:
o Definition: A small group of users or stakeholders discuss their needs and expectations
in a controlled setting.
o Why Important: It provides a deeper understanding of user needs and their reactions to
ideas or concepts.
o How to Use: Select a group of representative stakeholders, ask open-ended questions,
and record feedback.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
Requirement specification and documentation is the process of clearly defining and recording the
requirements that the system should meet. Proper specification is essential because it provides a
clear and detailed description of what the software is expected to do. This ensures all
stakeholders understand the goals and features of the software and helps avoid mistakes,
miscommunications, or unmet expectations later in the project.
Specification sources are where you get the details to create your requirements specification.
These sources are crucial because they provide the information needed to ensure the software
will meet its objectives.
1. Stakeholders:
o Definition: These are the people who have a stake in the project’s success, such as
users, clients, and developers. Their needs and expectations form the foundation of the
specifications.
o Examples:
▪ End Users: Who will directly use the system.
▪ Customers: Those who requested or funded the project.
▪ Regulatory Bodies: Organizations that set standards that the system must meet.
2. Business Documents:
o Definition: These include documents such as business plans, project charters, and
contracts that outline the project’s goals, objectives, and constraints.
o Examples:
▪ Business Objectives: High-level goals the project should achieve, such as
improving customer satisfaction.
▪ Contracts: Agreements between the client and developers that outline the
system’s deliverables.
3. System and Software Documentation:
o Definition: This includes any previous or related documents from current or past
systems that provide insight into how the system should behave.
o Examples:
▪ Existing System Manuals: Useful for software updates or when improving an
existing system.
▪ Technical Specifications: Detailed descriptions of technical requirements and
standards.
4. User Feedback:
o Definition: Direct input from users and stakeholders gathered through surveys,
interviews, or workshops. This helps ensure the system is user-friendly and meets their
needs.
o Examples:
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
▪ Surveys: Gather feedback from a broad group of users about their needs and
challenges.
▪ Interviews: Direct conversations to understand specific user needs.
Specification techniques are methods used to organize and document requirements in a clear and
understandable way. Good specification techniques ensure that requirements are accurate, easy
to follow, and testable.
o How to Use: Draw diagrams that show where data comes from, how it moves, and
where it goes within the system.
Requirements validation ensures that the documented requirements accurately reflect the needs
of the stakeholders and that they are feasible and clear. Validating requirements helps avoid
costly mistakes later in the project.
6. Consistency Checks:
o Definition: Verifying that the requirements do not contradict each other and that they
are consistent with the overall system goals.
o Why Important: Conflicting requirements can lead to confusion and wasted effort.
o How to Use: Go through the requirements carefully to check for contradictions and
resolve any issues.
6. Management of Requirements
1. Tracking Requirements: Ensure that each requirement is tracked from its inception through to
its implementation, testing, and final delivery.
2. Managing Changes: Handle any changes in requirements, ensuring they are carefully reviewed,
communicated, and documented.
3. Prioritizing Requirements: Determine which requirements are the most critical and should be
addressed first.
4. Validation and Verification: Regularly check that requirements are still relevant and feasible,
and validate them against the stakeholders’ needs.
• Requirements Management Software: Tools like JIRA, Trello, or specialized software such as
IBM Engineering Requirements Management can help manage and track requirements.
• Traceability Matrix: This is a document that links requirements to specific parts of the system,
ensuring that all requirements are addressed.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
While managing requirements, several common problems can arise. Addressing these issues
early on can prevent project delays and cost overruns.
1. Ambiguity in Requirements:
o Description: Requirements that are unclear or vague can lead to confusion and errors.
o Solution: Use clear, simple language and involve stakeholders in the clarification
process.
2. Changing Requirements:
o Description: Requirements often change during the project, which can cause scope
creep (uncontrolled changes or continuous growth).
o Solution: Implement a change control process to track and approve changes.
3. Incomplete Requirements:
o Description: Missing or incomplete requirements can cause delays or lead to system
flaws.
o Solution: Ensure that all aspects of the system are covered in the requirements, and
regularly validate them with stakeholders.
4. Conflicting Requirements:
o Description: Requirements that contradict each other can lead to confusion about how
the system should behave.
o Solution: Regularly review requirements for conflicts and resolve them before
development begins.
5. Lack of Communication:
o Description: Poor communication between stakeholders, developers, and users can lead
to misunderstandings.
o Solution: Regular meetings, reviews, and feedback loops should be set up to keep
everyone informed.
Acquisition-oriented organizations are typically the ones purchasing software or systems from
suppliers. These organizations focus on acquiring products that meet specific requirements and
standards.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
1. Defining Clear, Detailed Requirements: Specifying what the system should do and what
standards it must meet.
2. Selecting Vendors: Managing the process of evaluating and choosing suppliers who can meet
these requirements.
3. Contract Management: Ensuring that the final product matches the agreed-upon requirements.
Supplier-oriented organizations are the ones developing or supplying systems to customers. They
focus on creating and delivering products that meet the requirements set by their clients.
• Primary Focus: Delivering a product that meets the requirements of the client.
• Requirements Management Approach: These organizations manage both customer
requirements and internal constraints (technical limitations, resources, etc.).
• Example: A software development company creating a mobile app for a client.
1. Client Requirements Analysis: Understanding the client’s needs and translating them into clear,
actionable requirements.
2. Internal Team Coordination: Managing communication within the development team to ensure
they understand and meet the requirements.
3. Delivering and Testing: Ensuring the product matches the requirements during testing phases.
Product-oriented organizations focus on creating and selling products to a broad market, often
with generic features that cater to multiple customers.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
• Primary Focus: Building a product with broad market appeal, potentially with customization
options for clients.
• Requirements Management Approach: Balancing the needs of different customers while
maintaining a standard product offering.
• Example: A company that develops and sells a customer relationship management (CRM)
software to multiple clients.
Agile methods are increasingly used for software development, and requirements engineering
must adapt to the flexible, iterative nature of Agile projects. In Agile, requirements are more
fluid and evolve over time through collaboration between developers, users, and stakeholders.
1. User Stories: Agile often uses "user stories" to describe the system’s functionality from
the perspective of the end-user. These are short, simple descriptions of what the user
wants to achieve.
o Example: "As a user, I want to be able to log in with my social media account to simplify
the login process."
2. Continuous Collaboration: Agile projects rely on continuous feedback from users and
stakeholders to refine and adjust requirements throughout the project.
3. Prioritization: In Agile, requirements are prioritized based on business value and the
customer’s needs, ensuring that the most important features are delivered first.
4. Iterative Development: Requirements are revisited and refined in each iteration of the
development cycle, allowing for flexibility and improvement.
5. Sprint Planning: In Agile, requirements are broken down into manageable pieces that
can be developed and tested during sprints (short development cycles, usually lasting 1-4
weeks).
6. Backlog Management: The product backlog is a prioritized list of all the user stories and
requirements that need to be developed and delivered in the project.
1. Scope Creep: Due to the evolving nature of requirements, there is a risk of the project’s scope
expanding without proper control.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
2. Unclear Requirements: Since Agile emphasizes flexibility, some requirements may be vague or
not fully defined at the start.
3. Stakeholder Involvement: Continuous collaboration requires frequent involvement from
stakeholders, which can be challenging to coordinate.
1. Frequent Communication: Regular meetings and reviews with stakeholders to ensure everyone
is aligned.
2. Clear Prioritization: Ensure that the most important requirements are addressed first.
3. Flexibility: Be prepared to adjust and refine requirements as the project evolves and new
insights emerge.
SUMMARY
IMPORTANT QUESTIONS
Task: Create a traceability matrix that links each requirement to the corresponding test
cases.
2. Requirement Prioritization
Scenario: You are working on a software project with the following requirements and
their respective business value (on a scale of 1 to 10):
o R1: User login (Business Value: 9)
o R2: Password reset (Business Value: 6)
o R3: Search functionality (Business Value: 8)
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES
Task: Rank these requirements based on their business value and justify the prioritization
order. Assume that the higher the value, the higher the priority.
Task: Calculate the risk score for each requirement (Risk Score = Probability * Impact)
and identify the most risky requirement based on the highest risk score.
Task: Create a requirement traceability matrix that links each requirement to the design
components that fulfill them. Also, indicate if any design component serves multiple
requirements.
These scenarios should provide a more practical application for creating traceability matrices,
performing risk analysis, and prioritizing requirements.
BASE ACADEMY – SOFTWARE REQUIREMENT ENGINEERING NOTES