0% found this document useful (0 votes)
28 views50 pages

Module2 - PArt1 (Software Engineering)

Uploaded by

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

Module2 - PArt1 (Software Engineering)

Uploaded by

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

Understanding

Requirements
Module2

-Anuradha Pai
- BTI College of Engineering
1. Challenges in Understanding Requirements
1. Initial Assumptions vs. Reality:
o Common Misconception: It's often assumed that customers and end-users
have a clear understanding of their needs and can articulate them precisely.
o Reality:
▪ Many customers may lack clarity about what they want.
▪ End-user needs and priorities can be vague or evolve over time.
2. Dynamic Nature of Requirements:
o Requirements tend to change throughout the project due to:
▪ Evolving business goals.
▪ New insights gained during development.
▪ Market or technological changes.
1. Challenges in Understanding
Requirements
3. Communication Gaps:
o Misinterpretation often occurs between what customers say and what
engineers understand.
o As projects progress, differing interpretations lead to delays and
dissatisfaction.
2. The Nightmare Scenario
• Illustrative Anecdote:
o A customer revisits requirements late in the project, claiming the development
team misunderstood their original intent.
o Consequences include:
▪ Broken deadline commitments.
▪ Reputational damage to the team or organization.
▪ Financial losses due to rework and overruns.
• Lessons from Experience:
o Many experienced professionals encounter these challenges but fail to learn or
implement effective solutions to mitigate them.
3. Requirements Engineering
• The Nature of Software Building: • Detailed requirements gathering is
• Involves creativity, problem-solving, and unnecessary in a rapidly changing
collaboration, making it exciting but also environment.
complex. • The primary goal is delivering a working
• Developers often feel eager to dive into program; everything else is secondary.
coding without fully understanding the
• Risks of Skipping Requirements
problem.
Engineering:
• Common Misconceptions: • Misalignment between stakeholders'
• Requirements will become clear during expectations and deliverables.
development. • Increased likelihood of project failure
• Stakeholders can only articulate needs due to incomplete or misunderstood
after seeing prototypes. requirements
3. What is Requirements Engineering?
• Definition:
o A systematic approach to understanding, documenting, and managing software
requirements.
• Purpose:
o Acts as a foundation for software design and construction.
o Ensures alignment between stakeholders and the software development team.
• Scope:
o Begins during the communication phase and extends into modeling.
o Adapts to the specific needs of the process, project, and product.
3.1 Importance of Requirements
Engineering
• Building the Foundation:
o Establishes the scope, priorities, and constraints of the project.
o Helps identify functions, features, and behaviors needed in the software.

• Bridging Stakeholders and Developers:


o Translates business needs into actionable technical requirements.
o Enables stakeholders to visualize the system context and its functionality.

• Facilitating Decision-Making:
o Provides clarity for prioritizing tasks and managing project risks.
4. Seven Key Tasks of
Requirements Engineering
1. Inception
• Objective:
o Understand the problem and identify preliminary solutions.
• Activities:
o Define business needs and potential markets.
o Develop a rough feasibility analysis.
o Establish the project scope and initiate discussions with stakeholders.
• Outcomes:
o Basic understanding of the problem, stakeholders, and solution requirements.
4.2 Elicitation
• Objective:
o Gather and document detailed requirements from stakeholders.
• Challenges:
o Scope Problems:
▪ Undefined system boundaries or unnecessary technical details.
o Understanding Problems:
▪ Stakeholders may lack clarity or knowledge of technical constraints.
▪ Miscommunication can lead to conflicting or ambiguous requirements.
o Volatility:
▪ Requirements often evolve due to changing business needs.
• Solution:
o Use structured methods for requirements gathering (e.g., interviews, workshops).
4.3 Elaboration
• Objective:
o Refine and expand the information gathered during inception and elicitation.

• Activities:
o Create user scenarios describing system interactions.
o Identify analysis classes, their attributes, and required services.
o Develop supplementary diagrams for detailed modeling.

• Outcome:
• A refined requirements model describing software functions, behaviors, and information.
4.4 Negotiation
• Objective:
o Reconcile conflicting requirements and prioritize stakeholder needs.

• Challenges:
o Stakeholders often request conflicting or unrealistic features.

• Activities:
o Rank requirements based on priority, feasibility, and risk.
o Iteratively address conflicts through discussions and trade-offs.

• Outcome:
• A balanced set of requirements acceptable to all parties.
4.5 Specification
• Objective:
o Document the system requirements in a clear, unambiguous, and consistent manner.

• Formats:
o Written documents, graphical models, mathematical models, usage scenarios, or prototypes.

• Guidelines:
o Use a "standard template" for consistency in complex projects.
o Be flexible for smaller systems, using lightweight formats like scenarios or prototypes.
4.6 Validation
• Objective:
o Ensure the requirements are complete, consistent, and error-free.

• Activities:
o Conduct technical reviews involving stakeholders.
o Identify and address inconsistencies, ambiguities, and omissions.

• Outcome:
o Validated requirements that serve as a reliable foundation for design and development.
4.7 Requirements Management
• Objective:
o Track, control, and adapt requirements as they evolve throughout the project lifecycle.

• Challenges:
o Managing frequent changes while maintaining project focus.

• Activities:
o Maintain a requirements repository for tracking.
o Use software configuration management (SCM) techniques for version control.
5. Key Insights for Effective
Requirements Engineering
1. Proactive Communication: 4. Iterative Process:
o Engage stakeholders early and frequently o Revisit and refine requirements as the
to minimize misunderstandings. project progresses.

2. Organized Documentation: 5. Robust Validation:


o Clearly record and refine requirements to o Regularly review requirements to ensure
avoid misinterpretation. alignment with stakeholder goals.

3. Adaptability: 6. Change Management:


o Tailor techniques to the project's o Implement mechanisms to handle
complexity, size, and stakeholders' needs. evolving requirements systematically.
5.1 Practical Outcomes of
Requirements Engineering
• A well-defined foundation for design and development.

• Increased stakeholder satisfaction by aligning deliverables with expectations.

• Reduced risk of project failure due to clear, validated requirements.

• Enhanced ability to adapt to changes while maintaining control over the project.
6. Establishing the Groundwork in
Requirements Engineering
• Effective groundwork is essential for understanding software requirements.

• Ideally, stakeholders and engineers work as a team; however, real-world scenarios


often present challenges:
• Stakeholders might be geographically dispersed.
• They may lack a clear idea of their needs or have conflicting requirements.
• Limited technical expertise and time constraints can hinder effective
interaction.
6.1 Key Steps to Establish Groundwork:
Identifying Stakeholders
• Definition of Stakeholders:
• According to Sommerville and Sawyer, stakeholders are individuals or groups that directly or
indirectly benefit from the developed system.
• Examples include business managers, product managers, marketing teams, internal/external
customers, end-users, engineers, and maintenance personnel.
• Key Insights:
• Stakeholders often have varying expectations, benefits, and risks associated with the system.
• Different stakeholders may have conflicting opinions or unclear requirements.
• Steps:
• Initial Identification:
• Create an initial list of stakeholders likely to provide input during the elicitation process.
• Iterative Expansion:
• Ask each stakeholder, “Who else should I talk to?” to expand the stakeholder list.
6.2Recognizing Multiple Viewpoints
• Diverse Perspectives:
• Different stakeholders bring varying priorities and expectations:
• Marketing Teams: Focus on features that excite potential customers and boost sales.
• Business Managers: Prioritize budget-friendly features that align with deadlines.
• End-Users: Desire ease of use, familiarity, and intuitive interfaces.
• Software Engineers: Ensure robust infrastructure for system scalability and functionality.
• Support Engineers: Seek maintainable and stable software solutions.
• Handling Conflicting Requirements:
• Collect and categorize requirements, including conflicting ones, for further analysis.
• Use a structured approach to reconcile inconsistencies and select a consistent set of
requirements.
6.3 Working Toward Collaboration
• Challenges in Collaboration:
• Multiple stakeholders often have conflicting opinions, making consensus difficult.
• Turf wars or individual biases can hinder effective teamwork.
• Role of Requirements Engineer:
• Identify common requirements agreed upon by all stakeholders.
• Highlight areas of conflict or inconsistency for resolution.
• Facilitation of Decision-Making:
• Stakeholders provide their input, but a “project champion” (e.g., senior manager or
lead technologist) may make the final decision.
• Key Techniques:
• Encourage open communication to promote mutual understanding.
• Use tools like priority points (explained below) to resolve conflicts.
6.4 Asking the First Questions
• Context-Free Questions:
• Designed to gain a broad understanding of the project without preconceived assumptions.
• Examples:
• Who initiated this project?
• Who will use the final product?
• What economic benefits does this project aim to achieve?
• Are there existing solutions for this problem?
• Problem-Focused Questions:
• Aim to clarify the specific issues the solution will address.
• Examples:
• What problems will the software solve?
• How will the solution integrate into the business environment?
• Are there performance constraints to consider?
6.4 Asking the First Questions
• Meta-Questions for Feedback:
• Evaluate the elicitation process to improve stakeholder interaction.
• Examples:
• Are you the right person to answer these questions?
• Are my questions relevant to the problem?
• Can anyone else provide additional insights?
6.5 Resolving Conflicts Using Priority
Points
• Voting Mechanism:
• Stakeholders are given a fixed number of priority points to allocate across requirements.
• Points reflect the relative importance of each requirement from their perspective.
• Benefits:
• Ensures stakeholders focus on the most critical requirements.
• Helps identify high-priority features while revealing differences in stakeholder priorities.
• Process:
• Create a list of all requirements.
• Each stakeholder distributes their points among the requirements based on importance.
• Aggregate the points to identify overall priorities.
6.6 Key Outcomes of Establishing the
Groundwork
1. Comprehensive Stakeholder List
• Ensures all relevant voices are considered during the project.
2. Categorized Viewpoints
• Facilitates conflict resolution and prioritization of requirements.
3. Collaborative Decision-Making Framework
• Promotes stakeholder alignment and minimizes disputes.
4. Structured Elicitation Process
• Leads to a well-rounded understanding of the project goals and constraints.
7. Requirements Elicitation Overview
• Requirements elicitation, or gathering, involves:Problem-solving,
elaboration, negotiation, and specification.
• Collaboration among stakeholders to define the problem, propose
solutions, and negotiate approaches.
• A preliminary set of solution requirements is specified.
7.1 Key Methods for Requirements
Elicitation
Collaborative Requirements Gathering
• Guidelines for Collaboration:
• Meetings include both software engineers and stakeholders.
• Rules for preparation and participation are established.
• Meetings have a structured but flexible agenda.
• A facilitator controls the discussion and ensures focus.
• A definition mechanism (e.g., flip charts, virtual forums) organizes and
records ideas.
7.2 Steps in Collaborative Gathering:
1.Preparation:
• A "product request" document outlines initial problem scope and potential
solutions.
• Meeting logistics (date, time, attendees) and facilitator are decided.
2.Discussion:
• Stakeholders review the product request and prepare lists of:
• Objects related to the system.
• Services or functions interacting with those objects.
• Constraints and performance criteria.
3.Post-Meeting:
• Lists are consolidated and refined through discussion.
• Mini-specifications are created for clarity.
• Unresolved issues are added to an "issues list" for follow-up.
7.3 Quality Function Deployment (QFD)
• Purpose: Align customer needs with technical requirements for the software.
• Types of Requirements Identified:
• Normal Requirements: Explicit goals stated by the customer.
• Expected Requirements: Implicit requirements assumed by the customer
(e.g., reliability, usability).
• Exciting Requirements: Features exceeding customer expectations, creating
delight (e.g., innovative functionalities).
• Methods:
• Customer interviews, surveys, and data analysis.
• Use of the "customer voice table" and evaluation tools to categorize and
prioritize requirements.
7.4 Usage Scenarios
• Objective: Understand how system functions and features will be used.
• Methodology:
• Develop scenarios, or use cases, that describe interactions between the system
and different user classes.
• Provide insight into system usage under various conditions.
7.5 Elicitation Work Products
• Outcome of Requirements Gathering:
• Statement of Need and Feasibility: Clarifies why the system is needed and if
it is achievable.
• Scope Definition: Bounded description of the system's functionalities.
• Stakeholder List: Details participants involved in elicitation.
• System Environment Description: Specifies technical constraints and
settings.
• Requirements List: Organized by functionality and associated domain
constraints.
• Usage Scenarios: Demonstrate the system's operation in different contexts.
• Prototypes: May be developed to clarify requirements.
7.6 Example: SafeHome Project
• Initial Product Request:
• A home security system function as the first feature, addressing common
safety concerns (e.g., fire, flood, break-ins).
• Wireless sensors and automatic alerts to monitoring agencies.
• Pre-Meeting Preparation:
• Stakeholders list objects (e.g., sensors, control panels) and services (e.g.,
monitoring, alarms).
• Constraints (e.g., cost, user-friendliness) and performance criteria (e.g., event
recognition speed) are identified.
• Meeting Activities:
• Lists are presented, combined, and refined.
• Consensus is achieved on features, constraints, and performance metrics.
• Mini-specifications are developed for critical components (e.g., control panel
dimensions and features).
7.7 Summary
• Collaborative Process: Requirements elicitation emphasizes teamwork,
structured communication, and iterative refinement.
• Focus Areas:
• Identifying diverse stakeholder needs.
• Addressing ambiguities, omissions, and conflicts.
• Balancing technical feasibility with customer satisfaction.
• Outputs: Clearly defined, reviewed, and agreed-upon requirements ensure
alignment and project success.
8. Developing Use Cases
What is a Use Case?
• Definition:
• A use case describes the system's behavior in response to requests from
stakeholders under specific conditions.
• It is a "contract" that captures how the system behaves in various scenarios.
• Purpose:
• Tells a story about how an end-user (actor) interacts with the system.
• Depicts the system from the user’s perspective.
• Formats:
• Narrative text.
• Task or interaction outline.
• Template-based description.
• Diagrammatic representation.
8. Steps to develop Use Case
1. Identify Actors: 2. Define Actor Goals:
•Definition: An actor is any external entity •Understand the objectives that each actor
(person, device, or system) interacting with wants to achieve.
the system. •Example: A homeowner’s goal in a home
•Types of Actors: security system could be activating the
•Primary actors: Interact directly with system or checking its status.
the system to perform its main
functions.
•Secondary actors: Support system
operations indirectly (e.g., maintenance
or monitoring).
•Roles: An actor represents a role rather
than a specific user (e.g., a machine operator
may act as a programmer, tester, or
monitor).
8. Steps to develop Use Case
3. Establish Preconditions: 5. Consider Exceptions:
• Define the conditions that must exist • Address scenarios where standard
before the use case begins (e.g., a system operations might fail or behave
differently.
must be powered on, sensors must be
• Example: What happens if the
operational). password is incorrect?
4. Outline Main Tasks/Functions: 6. Describe Variations:
• Identify the core actions that an actor • Highlight alternative paths or
performs with the system. variations in interactions (e.g.,
• Example: Entering a password or activating only perimeter sensors vs.
selecting "stay" or "away" mode.? all sensors).
8. Steps to develop Use Case
7. System Information:
• Specify what information the actor acquires, produces, or modifies
in the system.
• Example: Status of security zones or activated alarms.
8. Open Questions:
•Explore unresolved issues or ambiguities, such as:
•Should additional messages be displayed?
•What is the time limit for entering a password?
8. Use Case Template Example
1. Use Case Name: Initiate Monitoring. 7. Exceptions:
2. Primary Actor: Homeowner. • System not ready (sensors open): Close
3. Goal in Context: To activate the security open windows/doors.
system. • Incorrect password: Reenter the correct
4. Preconditions: System is programmed with a password.
password and recognizes sensors. • Control panel not functional: Contact
5. Trigger: Homeowner decides to activate the support.
alarm. 8. Priority: Essential.
6. Scenario: 9. Frequency of Use: Multiple times daily.
• Homeowner observes the control panel. 10. Channels to Actor: Via the control panel.
• Enters a password.
11. Secondary Actors: Sensors, support
• Selects "stay" or "away" mode.
• Observes the red alarm light indicating technicians.
activation. 12. Open Issues:
•Should an abbreviated password option exist?
•Is a deactivation option needed before full
activation?
8. UML Use Case diagram for
SafeHome home security function
8. Reviewing and Refining Use Cases
• Ambiguities: Review use cases to identify unclear interactions or incomplete
descriptions.
• Feedback: Engage stakeholders to ensure accuracy and clarity.
• Iteration: Update and refine use cases as requirements evolve.
8. Benefits of Use Cases
• Provide a clear view of system functionality from an end-user perspective.
• Serve as a foundation for further technical development.
• Help identify system boundaries, features, and exceptions early in the design
process.
9. Building the Requirement model
• Purpose of the Analysis Model • Representation Modes for Requirements
• Provides a description of the • Single Representation Approach: Some
informational, functional, and prefer using a single method like use
behavioral aspects required for a cases for simplicity.
computer-based system. • Multiple Representation Approach:
• Evolves dynamically as stakeholders and Others advocate using various methods to
developers gain clarity about system identify omissions, inconsistencies, or
ambiguities.
requirements.
• Acts as a snapshot of the current • The chosen method often dictates the
specific elements included in the model.
requirements, expected to change as
understanding grows.
• Stable elements form the foundation for
subsequent design tasks, while volatile
ones indicate incomplete stakeholder
understanding.
9.1 Generic Elements of Requirement
model
1. Scenario-Based Elements
• Represent the system from the user's
perspective using use cases or scenario
templates.
• Serve as the foundation for developing
other model components.
• Example: UML activity diagrams detail
how scenarios evolve into comprehensive
representations.

Fig: UML activity diagrams for eliciting requirements


9.2 Generic Elements of Requirement
model
2. Class-Based Elements
• Define objects manipulated during system
interaction and group them into classes
(e.g., with attributes and behaviors).
• Example: UML class diagrams for a
"Sensor" class listing attributes (e.g.,
name, type) and operations (e.g., enable,
identify).
• Illustrate collaborations and relationships
between classes.
9.3 Generic Elements of Requirement
model
3. Behavioural Elements
• Focus on how the system responds to
events and transitions between states.
• Example: UML state diagrams represent
system states and event-driven transitions,
highlighting system actions and reactions.
• Behavioural modelling extends to
individual classes.
9.4 Generic Elements of Requirement
model
4. Flow-Oriented Elements
• Show how information transforms as it moves through the system.
• Inputs (e.g., user commands, network packets) are processed by functions and result in outputs
(e.g., reports, signals).
• Flow models are applicable to systems of all sizes and complexities.
10. Building the Requirement model :
Analysis Pattern
• Experienced requirements engineers often observe that certain issues tend to recur across
multiple projects within the same application domain. Analysis patterns offer predefined
solutions (e.g., a class, function, or behavior) tailored to address these common problems.
These patterns can be reused when modeling various applications, streamlining the
development process.
• Benefits of Analysis Patterns (as noted by Geyer-Schulz and Hahsler):
1.Accelerating Model Development
• Analysis patterns help create abstract models more efficiently by providing
reusable examples, along with descriptions of their advantages and limitations.
2.Simplifying Design Transformation
• They assist in transitioning the analysis model into a design model by suggesting
reliable solutions and design patterns for frequent challenges.
10. Building the Requirement model :
Analysis Pattern
• Integration and Accessibility
• Analysis patterns are incorporated into the requirements model by referencing
their names.
• They are stored in a repository, making it easy for engineers to search and
apply relevant patterns.
• Each pattern is documented using a standardized template, ensuring clarity and
consistency in their usage.
11. Negotiating Requirements
12. Validating Requirements
12. Validating Requirements

You might also like