SE - Module 2 - RE
SE - Module 2 - RE
SE - Module 2 - RE
Module 2- Chapt 1
1. Inception
• Inception is a task where the requirement engineering asks a set of questions to
establish a software process.
• In this task, it understands the problem and evaluates with the proper solution.
• It collaborates with the relationship between the customer and the developer.
• The developer and customer decide the overall scope and the nature of the question.
2. Elicitation
Elicitation means to find the requirements from anybody.
The requirements are difficult because the following problems occur in elicitation.
Problem of scope: The customer give the unnecessary technical detail rather than clarity
of the overall system objective.
Problem of volatility: In this problem, the requirements change from time to time and it
is difficult while developing the project.
3. Elaboration
In this task, the information taken from user during inception and elicitation are expanded
and refined in elaboration.
Its main task is developing pure model of software using functions, feature and constraints
of a software.
4. Negotiation
In negotiation task, a software engineer decides the how will the project be achieved with
limited business resources.
To create rough guesses of development and access the impact of the requirement on the
project cost and delivery time.
5. Specification
In this task, the requirement engineer constructs a final work product.
The work product is in the form of software requirement specification.
In this task, formalize the requirement of the proposed software such as informative,
functional and behavioral.
The requirement are formalize in both graphical and textual formats.
6. Validation
• The work product is built as an output of the requirement engineering and that is
accessed for the quality through a validation step.
• The formal technical reviews from the software engineer, customer and other
stakeholders helps for the primary requirements validation mechanism.
7. Requirement management
• It is a set of activities that help the project team to identify, control and track the
requirements and changes can be made to the requirements at any time of the
ongoing project.
• These tasks start with the identification and assign a unique identifier to each of the
requirement.
• After finalizing the requirement traceability table is developed.
• The examples of traceability table are the features, sources, dependencies,
subsystems and interface of the requirement.
ESTABLISHING THE GROUNDWORK
The steps required to establish the groundwork for an understanding of software requirements,
to get the project started in a way that will keep it moving forward toward a successful
solution.
Identifying Stakeholders: Stakeholder is “anyone who benefits in a direct or indirect way
from the system which is being developed.” The usual stakeholders are: business operations
managers, product managers, marketing people, internal and external customers, end
users,consultants, product engineers, software engineers, support and maintenance engineers.
The final set of questions focuses on the effectiveness of the communication activity itself.
• Are you the right person to answer these questions? Are your answers “official”?
• Are my questions relevant to the problem that you have?
• Am I asking too many questions?
• Can anyone else provide additional information?
• Should I be asking you anything else?
Eliciting Requirements
• Eliciting requirement helps the user for collecting the requirement
Eliciting requirement steps are as follows:
1. Collaborative requirements gathering
• Gathering the requirements by conducting the meetings between developer and customer.
• Fix the rules for preparation and participation.
• The main motive is to identify the problem, give the solutions for the elements, negotiate
the different approaches and specify the primary set of solution requirements in an
environment which is valuable for achieving goal.
2. Quality Function Deployment (QFD)
• In this technique, translate the customer need into the technical requirement for the
software.
• QFD system designs a software according to the demands of the customer.
3. Usage scenarios
• Till the software team does not understand how the features and function are used by the
end users it is difficult to move technical activities.
• To achieve above problem the software team produces a set of structure that identify the
usage for the software.
• This structure is called as 'Use Cases'.
Elements of the Requirements Model: There are many different ways to look at
the requirements for a computer-based system.
1. Scenario-based elements.
• The system is described from the user’s point of view using a scenario-based
approach.
• Scenario-based elements of the requirements model are often the first part of the
model that is developed. Three levels of elaboration are shown
2. Class-based elements.
• Each usage scenario implies a set of objects that are manipulated as an actor interacts
with the system.
• These objects are categorized into classes—a collection of things that have similar
attributes and common behaviors. Example shown below
3. Behavioral elements.
• The behavior of a computer-based system can have a profound effect on the design
that is chosen and the implementation approach that is applied.
• Therefore, the requirements model must provide modeling elements that depict
behavior.
• The state diagram is one method for representing the behavior of a system.
4. Flow-oriented elements
• Information is transformed as it flows through a computer-based system.
• The system accepts input in a variety of forms, applies functions to transform it, and
produces output in a variety of forms.
• The transform(s) may comprise a single logical comparison, a complex numerical
algorithm, or a rule-inference approach of an expert system.
Analysis Patterns:
• Anyone who has done requirements engineering on more than
a few software projects , notice that certain problems reoccur
across all projects.
• These analysis patterns suggest solutions (e.g., a class, a
function, a behavior) within the domain that can be reused
when modeling many apps. Analysis patterns are integrated
into the analysis model by pattern name. They are also stored in
a repository so that requirements engineers can search and
apply them.
Use Case
• Use-cases are a scenario based technique in the UML which identify the
actors in an interaction and which describe the interaction itself.
• Aset of use cases should describe all possible interactions with the system.
• High-level graphical model supplemented by more detailed tabular description
.
• Sequence diagrams may be used to add detail to use cases by showing the
sequence of event processing in the system.
Use case
Negotiating Requirement
Agree on a deliverable system that is realistic for developers and customers
• SW team & other project stakeholders negotiate the priority, availability, and cost
of each requirement
• The Process are :
– Identify the key stakeholders
These are the people who will be involved in the negotiation
– Determine each of the stakeholders “win conditions”
Win conditions are not always obvious
– Negotiate
Work toward a set of requirements that lead to “win-win”
TheArt of Negotiation
• Recognize that it is not competition
• Map out a strategy
• Listen actively
• Focus on the other party’s interests
• Don’t let it get personal
• Be creative
• Be ready to commit
Validation
• Examine the specification to ensure that SW requirement is not ambiguous,
consistent, error free etc .
• Areview mechanism that looks for
• errors in content or interpretation
• areas where clarification may be required
• missing information
• inconsistencies (a major problem when large products or systems are engineered)
• conflicting or unrealistic (unachievable) requirements.
• Validation: “Am I building the right product?” checking a work product
against higher-level work products or authorities that frame this particular
product. – Requirements are validated by stakeholders
Why is it important?
• To validate software requirements, you need to examine them from a number of different
points of view.
• In this chapter we’ll consider requirements modeling from three different perspectives:
scenario based models, data(information) models, and class-based models.
• Each represents requirements in a different “dimension,” thereby increasing the
probability that errors will be found, that inconsistency will surface, and that omissions
will be uncovered.
REQUIREMENTS ANALYSIS
Requirements analysis results in the specification of software’s operational
characteristics,indicates software’s interface with other system elements, and
establishes constraints that software must meet.
✓ Objectives
✓ Analysis Rules of Thumb
✓ Domain Analysis
✓ Requirement Modeling Approaches
A Bridge
system
description
analysis
The analysis model bridges the gap between a model
• The UML activity diagram supplements the use case by providing a graphical
representation of the flow of interaction within a specific scenario.
• If software requirements include the need to create, extend, or interface with a database or
if complex data structures must be constructed and manipulated, then data model is used as
part of overall requirements modeling.
• A software engineer or analyst defines all data objects that are processed within the system,
the relationships between the data objects, and other information that is pertinent to the
relationships.
• The entity-relationship diagram (ERD) addresses these issues and represents all data
objects that are entered, stored, transformed, and produced within an application.
• Data Modeling
• Attributes
• Relationship
• A data object is a representation of composite information that must be
understood by software.
• A data object can be an external entity (e.g., anything that produces or consumes
information), a thing (e.g., a report or a display), an occurrence (e.g., a telephone
call) or event (e.g., an alarm), a role (e.g., salesperson), an organizational unit
(e.g., accounting department), a place (e.g., a warehouse), or a structure (e.g., a
file)
• The description of the data object incorporates the data object and all of its
attributes.
61
Data Attributes
• Data attributes define the properties of a data object and take on one of three
different characteristics.
But what should we look for once all of the nouns have been isolated?
Manifestations of Analysis Classes
application.
➢ Places (e.g., manufacturing floor or loading dock) that establish the context of
the problem and the overall function.
➢ Structures (e.g., sensors, four-wheeled vehicles, or computers) that
define a class of objects or related classes of objects.
Potential Classes (to be included in Analysis Model)
• Needed services: The potential class must have a set of identifiable operations that
can change the value of its attributes in some way.
• Mu ltiple attr ibutes: D urin g r equi remen t anal ysis, the fo cu s shou ld be on
"major " information; a class with a single attribute may, in fact, be useful during
design, but is probably better represented as an attribute of another class during the
analysis activity.
• Common attributes: A set of attributes can be defined for the potential
class and these attributes apply to all instances of the class.