SRE 20 pages for mid
SRE 20 pages for mid
Software
Requirement
Engineering
1
Lecture 1: Requirement Engineering
Topics:
1. Classification of requirements
2. Requirements process
3. Levels/layers of requirements
4. Requirement characteristics
5. Analyzing quality requirements
6. Requirement evolution
7. Requirement traceability
8. Requirement prioritization
9. Trade-off analysis
10. Risk analysis and impact analysis
12. Interaction between requirement and architecture
13. Requirement elicitation & Elicitation sources and techniques
14. Requirement specification and documentatin & Specification sources and techniques
15. Requirements validation and techniques
16. Management of Requirements
17. Requirements management problems
19. Managing requirements in various organizations
20. Requirements engineering for agile methods
Lecture 1: Requirement Engineering
I .Classification of Requirements
1. Functional Requirements
2. Non-functional Requirements
3. Domain Requirements
4. Stakeholder Requirements
1. Functional Requirements
2. Non-functional Requirements
different quality attributes. For example, improving security may impact system
performance, requiring a balance between competing objectives.
3. Domain Requirements
Domain requirements are specific to the industry or domain in which the system
operates. They address unique needs, regulations, or conventions relevant to that
domain. Key aspects of domain requirements include:
4. Stakeholder Requirements
II.Requirement Process
Requirements Engineering
Identification
Analysis
Specification
Validation
Management
Traceability
Prioritization and Trade-off Analysis
Risk Analysis and Impact Analysis
Interaction between Requirements and Architecture
Elicitation and Specification for Agile Methods
1.Identification:
Definition: This initial stage involves identifying stakeholders, understanding their
needs, and determining the scope of the project.
Techniques: Techniques such as stakeholder interviews, surveys, brainstorming
sessions, and market analysis are used to gather information and identify requirements.
2.Analysis:
Definition: In this stage, collected requirements are analyzed to ensure clarity,
consistency, and feasibility. It involves breaking down high-level needs into detailed,
actionable requirements.
Techniques: Requirement analysis techniques include use case modeling, user stories,
prototyping, and requirements workshops. The goal is to understand the context,
constraints, and dependencies associated with each requirement.
3.Specification:
Definition: Specification involves documenting requirements in a clear, unambiguous
manner. It includes defining functional and non-functional requirements, as well as
any constraints or assumptions.
Techniques: Specification techniques include natural language descriptions, formal
modeling languages (e.g., UML diagrams), and requirement traceability matrices. The
specification serves as a contract between stakeholders and development teams,
guiding the implementation process.
4.Validation:
Definition: Validation ensures that the specified requirements accurately reflect
stakeholder needs and expectations. It involves reviewing requirements with
stakeholders to confirm their correctness, completeness, and consistency.
Techniques: Validation techniques include requirements reviews, walkthroughs,
prototyping, and simulations. Feedback from stakeholders is gathered and
incorporated to refine and improve the requirements.
5.Management:
Definition: Requirement management involves organizing, prioritizing, and
controlling changes to requirements throughout the project lifecycle. It ensures that
Requirements Engineering
6.Traceability:
Definition: Traceability establishes links between requirements and other project
artifacts, such as design documents, test cases, and code. It ensures that changes to
requirements are properly reflected throughout the development process.
Techniques: Traceability matrices, requirement management tools, and automated
traceability tools are used to establish and maintain traceability links. Traceability
enhances transparency, facilitates impact analysis, and supports regulatory compliance.
1. Business Requirements:
Business requirements represent the overarching objectives and needs of the
organization or stakeholders initiating the project. They focus on the strategic
goals and outcomes the system is intended to achieve from a business perspective.
Business requirements typically originate from stakeholders such as executives,
business analysts, or project sponsors.
Scope Setting: Business requirements set the scope and boundaries of the project
by defining the desired business outcomes. They help stakeholders and project
teams understand the expected benefits and impacts of the project.
2. User Requirements:
User requirements specify the needs, preferences, and expectations of the end-
users who will interact directly with the system. They describe the functionalities
and features required to support user tasks and achieve user objectives. User
requirements are typically gathered through interviews, surveys, observations, or
workshops with representative users.
User Stories and Personas: User requirements are often expressed in the form of
user stories, scenarios, or personas to provide context and empathy for the users.
They help stakeholders and development teams understand the goals, motivations,
and behaviors of end-users.
efficient, and enjoyable to use. They define criteria such as user interface design,
navigation, responsiveness, and error handling.
3. System Requirements:
4. Software Requirements:
1. Consistency:
Definition: Consistency ensures that requirements do not conflict with each other and
align with external constraints or standards.
Importance:
2. Completeness:
Definition:
Completeness ensures that all essential functionalities and behaviors of the system are
captured in the requirements documentation.
Importance:
Complete requirements help prevent oversights and ensure that the final product
meets stakeholder expectations.
They provide a comprehensive foundation for system design, development,
Requirements Engineering
3. Unambiguity:
Definition: Unambiguity ensures that requirements are expressed clearly and precisely,
leaving no room for interpretation or misunderstanding.
Importance:
4. Verifiability:
Definition: Verifiability ensures that requirements can be objectively tested or verified
to determine whether they have been successfully implemented.
Importance:
Traceability:
Definition: Traceability establishes relationships between requirements and other
project artifacts, such as design documents, test cases, and source code.
Importance:
6. Modifiability:
Definition: Modifiability refers to the ease with which requirements can be
modified or updated to accommodate changes in stakeholder needs, technology,
or business conditions.
Importance:
Ensuring Modifiability:
Modular Design: Adopt a modular design approach that separates concerns and
minimizes dependencies between system components, making it easier to modify
individual requirements without impacting the entire system.
Requirement Refactoring: Regularly review and refactor requirements to identify
and eliminate redundant or obsolete elements, making the system more adaptable
to changes.
Flexibility: Design requirements with flexibility in mind, allowing for
parameterization, configuration, and customization to accommodate variations in
stakeholder needs and preferences.
Definition:
“Analyzing quality requirements involves a comprehensive examination of each
requirement to ensure it meets certain standards of clarity, measurability, achievability,
relevance, and timeliness. It's not merely about understanding what the requirement
states but also assessing its effectiveness in driving the project towards its goals. This
process often involves breaking down requirements into smaller, more manageable
components and evaluating them against established criteria.”
Importance:
Alignment with Stakeholder Needs: Quality requirements ensure that the system
being developed aligns closely with the needs and expectations of stakeholders.
This alignment is crucial for delivering a product that adds value and meets user
satisfaction.
Clear and Concise: Clear requirements leave no room for interpretation and
ambiguity. They are easily understandable by all stakeholders involved in the
project.
Continuous Improvement:
VI.Requirement Evolution
Definition
Importance
Factors Influencing Requirement Evolution
Changing Stakeholder Needs
Technological Advances
Regulatory Changes
Market Conditions
Challenges of Requirement Evolution
Strategies for Managing Requirement Evolution
Regular Communication
Agile Development Methodologies
Flexible Requirement Management Processes
Version Control and Documentation
Continuous Improvement
Definition:
Requirements Engineering
Importance:
Relevance: It helps ensure that the final product meets current market demands
and technological standards, enhancing its value and competitiveness.
Scope Creep: Requirement evolution may lead to scope creep if changes are not
managed effectively, resulting in project delays and budget overruns.
projects.
Version Control and Documentation: Utilize version control systems and robust
documentation practices to track changes to requirements, ensuring transparency,
accountability, and auditability.
Continuous Improvement:
VII.Requirement Traceability
Definition
Importance
Elements of Requirement Traceability
Forward Traceability
Backward Traceability
Bidirectional Traceability
Benefits of Requirement Traceability
Challenges of Requirement Traceability
Strategies for Achieving Requirement Traceability
Requirement Identification and Labeling
Establishing Relationships
Using Traceability Tools
Requirements Engineering
Definition:
Requirement traceability is the ability to track and manage the relationships between
different project artifacts throughout the software development lifecycle. It involves
tracing requirements from their origins through development, testing, implementation,
and maintenance phases, ensuring that each requirement is satisfied by the appropriate
design, code, and test cases.
Importance:
Change Management: Requirement traceability helps manage changes by
identifying the impact of requirement changes on other project artifacts, enabling
better decision-making and risk management.
Tooling Limitations: The availability and usability of traceability tools may vary,
making it challenging to implement and maintain traceability practices effectively.
Regular Reviews and Audits: Conduct regular reviews and audits to ensure the
accuracy and completeness of traceability relationships and address any
discrepancies or inconsistencies.
Continuous Improvement:
Continuous improvement involves:
Learning from past traceability experiences and applying lessons learned to refine
traceability practices.
VII.Requirement prioritization
Requirement prioritization is the process of ranking requirements based on their
importance, value, and urgency to the project stakeholders. Prioritization helps in
allocating resources effectively, focusing on high-value features first, and ensuring
that the most critical functionality is delivered within the project constraints. Here's a
detailed explanation of requirement prioritization with all its points presented in
bullets:
Ensures that limited resources are allocated to the most critical and valuable features.
Helps in managing project scope and delivering essential functionality within
constraints.
Facilitates better decision-making and trade-offs during the development process.
Enables stakeholders to align on project goals and expectations.
Business Value: How much value does the requirement add to achieving project
objectives or meeting stakeholder needs?
Urgency: How soon is the requirement needed to address critical business needs
or respond to market demands?
Risk: What is the potential impact if the requirement is not implemented or
implemented incorrectly?
Dependencies: Are there dependencies between requirements that may affect
prioritization?
Cost and Effort: How much effort and resources are required to implement the
requirement?
Techniques for Requirement Prioritization:
perspectives.
Collect Requirements: Gather all requirements and ensure they are documented
and well-understood.
Define Prioritization Criteria: Establish criteria such as business value, urgency,
risk, and dependencies for prioritization.
Apply Prioritization Technique: Select and apply a prioritization technique that
aligns with project goals and stakeholder preferences.
Assign Priorities: Rank requirements based on the chosen technique and criteria.
Review and Adjust: Review prioritization results with stakeholders, identify any
discrepancies or conflicts, and adjust priorities as needed.
Communicate Priorities: Communicate the prioritized list of requirements to the
development team and stakeholders to guide implementation.
Priorities may change over time due to evolving business needs, market conditions, or
stakeholder feedback.
Regularly review and re-prioritize requirements to ensure alignment with project
objectives and changing circumstances.
Maintain open communication channels with stakeholders to address new priorities or
shifting requirements effectively.
VIII.Trade-off analysis
Trade-off analysis involves evaluating and making decisions among competing
objectives or requirements, considering the impact of choices on various project
constraints such as cost, schedule, scope, and quality. Here's an explanation of trade-
off analysis with all its points presented in bullets:
Objective:
1. Risk Analysis:
Definition: Risk analysis involves identifying, assessing, and mitigating potential
risks that may impact the success of a project. Risks are events or situations that could
occur and have a negative impact on project objectives, such as delays, cost overruns,
or failure to meet requirements.
Process:
Requirements Engineering
Risk Register: A document that records identified risks, their likelihood, impact,
and planned responses.
Risk Matrix: A visual representation of risks based on their likelihood and impact,
often used to prioritize risks for further analysis.
Probability and Impact Assessment: Assigning probabilities and impact levels to
identified risks to quantify their overall risk exposure.
SWOT Analysis: Assessing project strengths, weaknesses, opportunities, and
threats to identify potential risks and opportunities.
Delphi Technique: Iterative consensus-building method used to gather expert
opinions on potential risks and their likelihood.
2. Impact Analysis:
Definition: Impact analysis evaluates the potential consequences of changes to project
requirements, design decisions, or external factors on project objectives, schedule, and
budget. It helps in understanding the ripple effects of changes and making informed
decisions.
Process:
Change Impact Matrix: A matrix that maps proposed changes to affected project
elements and their potential impact.
Root Cause Analysis: Identifying the underlying causes of proposed changes and
assessing their potential consequences.
Simulation Models: Using simulation tools to predict the effects of proposed
changes on project outcomes.
Scenario Analysis: Evaluating different scenarios or future states to anticipate
potential impacts and plan accordingly.
Stakeholder Analysis: Identifying stakeholders affected by proposed changes and
assessing their concerns, interests, and potential reactions.
Understanding Requirements:
Requirements capture what the system needs to do, its functionalities, constraints,
and qualities.
They may include functional requirements (what the system should do) and non-
functional requirements (qualities like performance, security, and usability).
Translating Requirements into Architecture:
They make decisions about which architectural styles, patterns, and technologies
to use based on the requirements.
Architecture Driven by Requirements:
The architecture must align closely with the requirements to ensure that the
system meets stakeholders' needs and expectations.
Architecture serves as a bridge between requirements and implementation,
ensuring that the final system reflects the desired functionalities and qualities.
Interaction:
Iterative Process:
Ensures that the architecture reflects the intended functionalities and qualities
desired by stakeholders.
Risk Mitigation:
Elicitation Sources:
Stakeholders: Stakeholders are individuals or groups who have a vested interest
in the project's outcome. They include end-users, customers, sponsors, domain
experts, managers, and regulatory bodies. Stakeholders provide valuable insights
into their needs, preferences, and constraints.
Elicitation Techniques:
Interviews: One-on-one or group discussions with stakeholders to gather their
perspectives, preferences, and concerns. Interviews provide an opportunity to
delve deeper into stakeholders' requirements and clarify ambiguities.
Importance:
Specification Sources:
Stakeholder Inputs:
Understanding the overarching business objectives and goals helps align the
system's requirements with the organization's strategic priorities.
Business documents, strategic plans, and organizational policies provide insights
into business drivers and objectives.
Regulatory Requirements:
Compliance with legal and regulatory standards is often mandatory for software
systems, especially in regulated industries like healthcare, finance, and aviation.
Regulatory documents, standards, laws, and industry-specific guidelines provide
requirements related to data security, privacy, accessibility, and other regulatory
aspects.
Industry Standards and Best Practices:
Industry standards and best practices provide guidelines and benchmarks for
designing and implementing software systems.
Adhering to standards such as ISO, IEEE, and SEI ensures that the system meets
industry-accepted norms for quality, interoperability, and reliability.
Existing Documentation and Artifacts:
Specification Techniques:
Natural Language:
Basis for Validation and Verification: Specification documentation serves as the basis
for validating and verifying the system's functionality, ensuring that it meets
stakeholders' expectations and quality standards.
Purpose:
Ensure that the documented requirements accurately represent stakeholders' needs
and expectations.
Identify and address any inconsistencies, ambiguities, or gaps in the requirements.
Verify that the requirements are feasible, achievable, and aligned with project
objectives.
Benefits:
Reduces the risk of building the wrong system by validating requirements before
development begins.
Improves communication and collaboration among stakeholders by ensuring a
shared understanding of project requirements.
Minimizes rework and cost overruns by detecting and addressing issues early in
the project lifecycle.
Techniques for Requirements Validation:
Prototyping:
Simulation Models: Using simulation tools to model and simulate the behavior of
the system based on the documented requirements.
Process Modeling: Creating process models, such as flowcharts or state diagrams,
to visualize and analyze system workflows and interactions.
Traceability Analysis:
Validation Workshops:
Importance:
Risk Mitigation: Identifying and addressing issues early in the project lifecycle
helps mitigate the risk of building the wrong system or delivering subpar
solutions.
Cost and Time Savings: Detecting and resolving issues early in the requirements.
XIV.Introduction to Management & Requirement
Management :
Requirements Engineering
Planning: This involves setting goals and determining the best course of action to
achieve those goals. It includes creating strategies, policies, and procedures.
Organizing: Once the plan is in place, organizing involves arranging resources
and tasks to carry out the plan effectively. It includes creating an organizational
structure, delegating tasks, and establishing processes.
Leading (Directing): Leading involves guiding, motivating, and influencing
employees to work towards organizational goals. It includes effective
communication, motivation, and conflict resolution.
Controlling: Controlling involves monitoring performance, comparing it with
goals, and taking corrective actions if necessary. It includes setting standards,
measuring performance, and implementing changes.
Requirement Management:
Requirement management is a crucial part of project management and systems
engineering. It involves identifying, documenting, prioritizing, and managing the
requirements of a project or a system. Here's a detailed look:
Incomplete Requirements:
Issue: Incomplete requirements occur when stakeholders fail to articulate all their
Requirements Engineering
a. Corporate Enterprises:
In large corporate enterprises, managing requirements involves multiple
stakeholders across various departments and business units.
There is often a formalized process involving dedicated teams or departments
responsible for requirements management.
Tools like Enterprise Requirement Planning (ERP) systems are commonly used to
streamline the process.
The requirements management process is integrated with project management
and product development methodologies like Agile or Waterfall, depending on
the nature of the project.
c. Government Organizations:
Requirements Engineering
d. Non-Profit Organizations:
Non-profit organizations often operate with limited budgets and rely heavily on
volunteers and donors.
Requirement management focuses on aligning project goals with the
organization's mission and maximizing the impact with limited resources.
Stakeholder engagement is crucial, involving volunteers, donors, beneficiaries,
and other relevant parties.
Clear communication and transparency are essential to maintain trust and support
from stakeholders.
b. Acquisition Planning:
Once the requirements are defined, the acquisition planning phase begins.
This involves developing acquisition strategies, selecting procurement methods,
and establishing evaluation criteria.
Requirements play a critical role in shaping the acquisition strategy and
determining the best approach to meet organizational needs.
c. Supplier Selection:
During supplier selection, requirements are used to evaluate potential suppliers
and their offerings.
Requests for Proposals (RFPs) or Requests for Quotes (RFQs) are issued,
outlining the requirements and evaluation criteria.
Suppliers' responses are evaluated based on their ability to meet the specified
requirements, as well as factors like cost, quality, and past performance.
The contract should clearly define the scope of work, deliverables, acceptance
criteria, and any other relevant requirements.
Negotiations may involve adjusting requirements, timelines, or costs to reach
mutually beneficial agreements.
a. Changing Requirements:
Requirements in acquisition projects often evolve due to changing organizational
needs or market conditions.
Managing these changes requires flexibility while ensuring that they are properly
documented and communicated to all stakeholders.
d. Risk Management:
Requirements are closely tied to project risks, and failure to meet requirements
can lead to project failure.
Effective risk management strategies must be in place to mitigate risks associated
with requirements.
Conclusion:
Managing requirements in various organizations, including acquisition, requires a
structured and collaborative approach. By effectively identifying, documenting,
prioritizing, and tracking requirements throughout the project lifecycle, organizations
can ensure successful project outcomes and deliver products and services that meet
stakeholder needs and expectations.
Supplier Selection:
Once the requirements are defined, the organization selects suppliers through a
rigorous evaluation process.
Requests for Proposals (RFPs) or Requests for Quotes (RFQs) are issued,
detailing the requirements and evaluation criteria.
Suppliers' proposals are evaluated based on their ability to meet the specified
requirements, as well as factors like cost, quality, reliability, and past performance.
Contract Negotiation:
After selecting a supplier, the organization negotiates contracts based on the
agreed-upon requirements.
Contract terms should clearly define the scope of work, deliverables, acceptance
criteria, payment terms, and any other relevant requirements.
Negotiations may involve adjusting requirements, timelines, or costs to reach
mutually beneficial agreements.
Further Points:
Risk Management:
Supplier-oriented organizations need to manage risks associated with supplier
performance, delivery delays, quality issues, and dependency on external vendors.
Risk assessment is conducted to identify potential risks, and mitigation strategies
are developed to address them.
Contingency plans are established to minimize the impact of unforeseen events
on the organization's operations.
Quality Assurance:
Quality assurance processes are implemented to ensure that suppliers meet the
organization's quality standards and specifications.
Inspections, audits, and quality control measures are conducted to verify
compliance with requirements and identify any deviations.
Cost Management:
Managing costs effectively is essential for supplier-oriented organizations to
maintain profitability.
Cost-benefit analysis is conducted to evaluate different supplier options and
optimize procurement decisions.
Negotiating favorable terms and pricing with suppliers helps in controlling costs
and maximizing value for the organization.
Continuous Improvement:
Supplier-oriented organizations strive for continuous improvement in their
procurement processes and supplier relationships.
Lessons learned from past projects and experiences are used to refine
requirements, enhance supplier selection criteria, and improve contract
management practices.
Feedback from suppliers and stakeholders is actively sought to identify areas for
improvement and implement corrective actions.
Requirements Engineering
Product Development:
Requirements drive the product development process, guiding design,
engineering, and manufacturing activities.
Cross-functional teams collaborate to translate requirements into product features,
functionalities, and specifications.
Agile methodologies are commonly used to adapt to changing requirements and
deliver incremental improvements.
Regulatory Compliance:
Product-oriented organizations must comply with regulatory requirements
applicable to their industry.
Requirements related to safety, quality, environmental standards, and
certifications are integrated into the product development process.
Compliance checks and audits are conducted to ensure adherence to regulatory
requirements.
Further Points:
User Experience (UX) Design:
Product-oriented organizations focus on delivering a great user experience to
their customers.
Requirements include usability, accessibility, and user interface design
Requirements Engineering
Conclusion:
In both supplier-oriented and product-oriented organizations, effective requirement
management is critical for success. While supplier-oriented organizations focus on
sourcing external goods or services to meet organizational needs, product-oriented
organizations focus on developing and delivering products that meet customer
expectations. By effectively managing requirements, organizations can ensure that
products and services meet quality standards, regulatory requirements, and customer
needs, leading to satisfied stakeholders and business success.
1. User Stories:
Explanation: Agile development relies heavily on user stories, which are short, simple
descriptions of a feature or functionality told from the perspective of the user.
Detail: User stories are written collaboratively with stakeholders and developers and
are typically structured as "As a [user], I want to [do something], so that [achieve a
goal]."
Benefits: User stories promote user-centric thinking and help teams focus on
delivering value to users.
2. Product Backlog:
Explanation: The product backlog is a prioritized list of user stories and tasks that
need to be completed in the project.
Detail: Product backlog items are continuously refined and reprioritized based on
feedback and changing requirements.
Benefits: The product backlog serves as a single source of truth for all project
requirements and guides the team's work during each sprint.
3. Sprint Planning:
Explanation: At the beginning of each sprint, the team selects a set of user stories
from the product backlog to work on.
Detail: During sprint planning, the team breaks down user stories into smaller tasks
and estimates the effort required to complete them.
Benefits: Sprint planning ensures that the team has a clear understanding of what
needs to be done and how it will be accomplished during the sprint.
4. Continuous Collaboration:
Explanation: Agile emphasizes ongoing collaboration between stakeholders, product
owners, and development teams.
Detail: Requirements are refined and clarified through regular communication and
feedback loops between all parties involved.
Benefits: Continuous collaboration ensures that requirements remain aligned with
business goals and user needs throughout the project.
6. Acceptance Criteria:
Explanation: Each user story includes acceptance criteria that define the conditions
that must be met for the story to be considered complete.
Detail: Acceptance criteria are used to validate that the implemented feature meets the
user's requirements and expectations.
Benefits: Clear acceptance criteria help prevent misunderstandings and ensure that the
Requirements Engineering
7. Iterative Refinement:
Explanation: Agile development follows an iterative approach, allowing for
continuous refinement and improvement of requirements.
Detail: As the project progresses, requirements are refined based on user feedback,
changing market conditions, and new insights.
Benefits: Iterative refinement ensures that the product remains relevant and adaptable
to evolving needs and priorities.
Sprint Reviews:
At the end of each sprint, the team holds a sprint review meeting to demonstrate
completed work to stakeholders.
Stakeholders provide feedback on the delivered features, which informs future
iterations and helps refine requirements.
Retrospectives:
Agile teams conduct retrospectives at the end of each sprint to reflect on what went
well, what could be improved, and what changes should be made.
Retrospectives provide an opportunity to identify and address issues related to
requirements engineering processes.
Adaptability to Change:
Agile methodologies embrace change and welcome evolving requirements throughout
Requirements Engineering
the project.
Agile teams are responsive to changing market conditions, customer feedback, and
emerging opportunities, adjusting requirements and priorities accordingly.
Documentation:
Agile documentation is lightweight and focused on capturing essential information.
Documentation includes user stories, acceptance criteria, and other artifacts that
support understanding and implementation of requirements.
Scalability:
Agile requirement engineering practices can scale to accommodate projects of various
sizes and complexities.
Agile frameworks like Scrum, Kanban, and Extreme Programming (XP) provide
guidance on how to adapt requirement engineering practices to different project
contexts.
Conclusion:
The requirement engineering in Agile methodologies emphasizes collaboration,
flexibility, and iterative refinement to ensure that project requirements are effectively
captured, prioritized, and delivered to meet customer needs and business objectives.
By following Agile principles and practices, teams can respond to change, deliver
value incrementally, and build high-quality products that exceed customer
expectations.