Se Ia
Se Ia
Requirement modelling is the process of analysing and representing the needs of a software system.
It ensures that all stakeholders clearly understand the system's objectives. Various approaches in
requirement modelling include scenario-based models, class models, behavioural models, and flow
models.
• One view of requirements modeling, called structured analysis, considers data and the
processes that transform the data as separate entities. Data objects are modeled in a way
definition of classes and the manner in which they collaborate with one another to effect
customer requirements. UML and the Unified Process are predominantly object oriented.
1. Scenario-Based Models
These focus on user interactions with the system in specific situations, making requirements
relatable and clear.
Key Techniques:
o Use Cases: Describe the actions a user performs and how the system responds.
o User Stories: Simple, one-sentence descriptions of user needs (e.g., "As a customer, I
want to track my order status").
Purpose: To capture functional requirements and ensure the system meets user needs.
2. Class Models
These represent the objects in the system, their attributes, and their relationships.
Key Elements:
o Relationships: Show how objects are connected, e.g., "User places Order."
Purpose: To structure and organize data and relationships within the system.
3. Behavioral Models
These focus on how the system behaves in response to events or over time.
Key Techniques:
o State Diagrams: Show the states an object can be in and how it transitions between
them.
Purpose: To understand the dynamic behavior and how the system responds to changes.
4. Flow Models
These illustrate how data moves through the system. They focus on the input, processing,
and output of information.
Key Techniques:
o Data Flow Diagrams (DFD): Represent processes, data stores, and data movement.
1. Identifying Stakeholders
o Stakeholders include users, clients, and anyone involved with the system.
2. Gathering Information
o Use different methods to collect information about the system’s needs and
constraints.
1. Interviews
o Use forms with specific questions to gather input from many stakeholders.
3. Workshops
QFD is a quality management technique that translates the needs of the customer into
technical requirements for software. QFD “concentrates on maximizing customer satisfaction from
the software engineering process”. To accomplish this, QFD emphasizes an understanding of what
is valuable to the customer and then deploys these values throughout the engineering process.
• Normal requirements. The objectives and goals that are stated for a product or system
during meetings with the customer. If these requirements are present, the customer is
satisfied. Examples of normal requirements might be requested types of graphical displays,
• Expected requirements. These requirements are implicit to the product or system and may
be so fundamental that the customer does not explicitly state them. Their absence will be a
Exciting requirements. These features go beyond the customer’s expectations and prove
3) Usage Scenarios: To accomplish this, developers and users can create a set of scenarios that
identify a thread of usage for the system to be constructed. The scenarios, often called use cases,
provide a description of how the system will be used.
elicitation.
A Safe Home System is designed to enhance home security by managing devices like cameras,
alarms, and door locks. The preliminary use case diagram provides a basic overview of how users
interact with the system.
1. Definition of a Preliminary Use Case
o It is an initial draft of how a system will interact with an actor to achieve a specific
goal.
2. Purpose
o Helps stakeholders and developers understand how the system will meet user needs.
o Actor: Homeowner.
identifies the following functions (an abbreviated list) that are performed by the home owner.
Use case: Access camera surveillance via the Internet—display camera views
(ACS-DCV)
Actor: homeowner
3. The homeowner enters two passwords (each at least eight characters in length).
5. The homeowner selects the “surveillance” from the major function buttons.
11. The system displays video output within the viewing window at one frame per
second.
It is important to note that this sequential presentation does not consider any alterna
tive interactions (the narrative is more free-flowing and did represent a few alterna
tives). Use cases of this type are sometimes referred to as primary scenarios
3. Frequent Delivery: Release working software frequently, preferring shorter cycles (weeks or
months).
5. Empowered Teams: Build projects around motivated individuals with the resources and trust
they need.
6. Face-to-Face Communication: The most efficient way to share information within the team.
8. Sustainable Pace: Maintain a constant pace for sponsors, developers, and users.
12. Continuous Improvement: Reflect and adapt processes regularly to enhance team
effectiveness.
1. Planning:
Customer Stories: Customers define user stories (short descriptions of desired functionality)
that drive the development process. Each story is written on an index card, prioritized based
on business value, and assigned an estimated development cost by the team.
Story Splitting: Large stories are divided into smaller, manageable parts if their development
cost exceeds three weeks.
Incremental Delivery: Stories are grouped into releases or increments, with the highest-
priority or riskiest stories developed first.
Project Velocity: After delivering the first increment, the team calculates project velocity
(number of stories completed) to estimate timelines and adjust commitments for future
releases.
2. Design:
Simplicity: XP adheres to the "Keep It Simple" (KIS) principle, designing only for the current
increment without adding unnecessary complexity.
CRC Cards: Class-Responsibility-Collaborator (CRC) cards help identify and organize object-
oriented classes relevant to the increment.
Spike Solutions: For complex problems, a prototype (spike solution) is created to test and
refine risky designs before full implementation.
Continuous Refactoring: Design is continuously improved during development to maintain
code simplicity and optimize performance.
3. Coding:
Test-Driven Development (TDD): Unit tests are written before coding begins, defining the
required behavior for each story. Code is developed specifically to pass these tests, avoiding
unnecessary features.
Pair Programming: Two developers work together at one workstation to write code, ensuring
real-time problem-solving, quality assurance, and adherence to coding standards.
Continuous Integration: Code is integrated frequently (often daily) to detect and resolve
compatibility issues early, ensuring smooth system operation.
4. Testing:
Automated Unit Tests: Tests created during the coding phase are automated for ease of
execution and consistency in regression testing.
Acceptance Testing: Delivered increments are validated against customer-provided user
stories to ensure the software meets expectations.
To create a robust requirement model, the following steps are taken, incorporating both elements of
the requirement model and analysis patterns:
Create use-case diagrams to visually map the interactions between actors and the system.
This step provides an initial framework that serves as input for other modeling elements.
Categorize these objects into classes based on shared attributes and behaviors.
Identify:
Develop flow models to describe how data is processed and transformed across components.
Identify recurring problems in the application domain and apply corresponding patterns that
offer proven solutions.
o Suggest design patterns to facilitate the transition from the requirement model to
the design model.
5. Verify Attribution
Confirm that every requirement has a clear source, typically a stakeholder or a
specific individual, attributed to it.
Swimlane diagram for Access camera surveillance via the Internet—display camera views
function
Narrate the core principles can be applied to the framework in all software process.
These principles guide the software process, ensuring quality and adaptability across all
process models, whether prescriptive or agile. They serve as a foundation for effective
software engineering practices.
1. Be Agile
Adopt the principles of agility regardless of the process model. Focus on:
Keeping technical approaches and work products as simple and concise as possible.
Making decisions locally to ensure efficiency and responsiveness to change.
Agility emphasizes economy of action and adaptability, ensuring that the process
evolves to meet dynamic project needs.
Ensure that work products meet the highest quality standards before proceeding.
Continuous focus on quality reduces errors and enhances overall project outcomes.
3. Be Ready to Adapt
Tailor the process to fit the problem, the team, and the project's unique requirements.
6. Manage Change
7. Assess Risk
Develop contingency plans to address issues that may arise during development.
Regularly review and update risk assessments to stay prepared for uncertainties.
Risk assessment ensures smooth progress and minimizes disruptions.
Develop work products that provide actionable and necessary information for
subsequent activities.
1. Listen Actively
o Focus on the speaker’s words, avoid interruptions, and ask for clarification if
needed.
o Understand the problem, research the domain, and create an agenda if leading
a meeting.
3. Assign a Facilitator
6. Encourage Collaboration
o Discuss one topic at a time and avoid bouncing between unrelated issues.
o Resolve or postpone unclear issues rather than lingering too long on a single
topic.
1. Inception
2. Elicitation
o Challenges:
3. Elaboration
4. Negotiation
o Uses an iterative process to balance priorities, risks, and costs, ensuring all
parties are satisfied with the final requirements.
5. Specification
Written documents
Graphical models
Usage scenarios
Prototypes
6. Validation
7. Requirements Management
manipulatedasanactorinteractswiththesystem.Theseobjectsarecategorizedinto
classes—acollectionofthingsthathavesimilarattributesandcommonbehaviors.For
example, aUMLclassdiagramcanbeusedtodepictaSensorclassfortheSafeHome
securityfunction(Figure5.4).Notethatthediagramliststheattributesofsensors(e.g.,
name, type) and the operations (e.g., identify, enable) that can be applied to modify
pict the manner in which classes collaborate with one another and the relationships