SE Unit3
SE Unit3
• Requirements Engineering
• Groundwork for Understanding of Software Requirements
• Overview of Eliciting Requirements
• Developing Use Cases, Building the Requirements Model;
• Negotiating Requirements;
• Validating Requirements;
2
Requirements Engineering
Introduction:
3
“Requirements engineering provides the appropriate mechanism for
understanding what the customer wants, analyzing need, assessing
feasibility, negotiating a reasonable solution, specifying the solution
unambiguously, validating the specification, and managing the
requirements as they are transformed into an operational system.”
Inception (beginning)
Elicitation (bring out)
Elaboration (expansion , explanation)
Negotiation
Specification Elicitation (Practice of collecting the
requirements of a system from users,
Validation
customers and other stakeholders)
Management 4
1. Inception ( Beginning , Start)
At project inception, ask a set of question that establish a basic
understanding of the problem:
-the people who want a solution,
-the nature of the solution that is desired, and
-the effectiveness of preliminary communication and collaboration
between the other stakeholders and the software team.
5
2. Elicitation cont..
Number of problems are encountered as elicitation occurs.
Problems of scope :
The boundary of the system is ill-defined or the customers/users specify
unnecessary technical detail that may confuse, rather than clarify.
Problems of understanding :
The customers/users are not completely sure of what is needed, have a poor
understanding of the limitations, don’t have a full understanding of the
problem domain, omit information ,specify requirements that conflict with
the needs of other customers/users, or specify requirements that are
ambiguous.
8
6. Validation :- a review 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.
•Requirements validation examines the specification to ensure that all
software requirements have been stated unambiguously; that
inconsistencies, omissions, and errors have been detected and corrected;
7. Requirement Management
> Requirements for computer-based systems change, and the desire to
change requirements persists throughout the life of the system.
>Requirements management is a set of activities that help the project team
identify, control, and track requirements and changes to requirements at
any time as the project proceeds.
9
Inception: The steps required to establish the groundwork(basic
work) for An understanding of software requirements…
10
Groundwork For Understanding of Software Requirements
Here are the steps required to establish the groundwork for an understanding
of software requirements—to get the project started in away that will keep it
moving forward toward a successful solution.
1. Identifying Stakeholders
2. Recognizing Multiple Viewpoints
3. Working toward Collaboration
4. Asking the First Questions
11
Groundwork For Understanding of Software Requirements
1.Identifying Stakeholders
13
Groundwork For Understanding of Software Requirements
14
Groundwork For Understanding of Software Requirements
These questions help to identify all stakeholders who will have interest
in the software to be built.
15
Groundwork For Understanding of Software Requirements
• How would you characterize “good” output that would be generated by a successful
solution?
• What problem(s) will this solution address?
• Can you show me (or describe) the business environment in which the solution will
be used?
• Will special performance issues or constraints affect the way the solution is
approached?
16
Groundwork For Understanding of Software Requirements
• 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?
These questions (and others) will help to “break the ice” and initiate the
communication that is essential to successful elicitation
17
Eliciting Requirements
18
1.Collaborative Requirements Gathering
19
Collaborative Requirements Gathering cont..
20
Collaborative Requirements Gathering cont..
In reality, others would contribute to this narrative during the
requirements gathering meeting and considerably more information would
be available. But even with additional information, ambiguity would be
present, omissions would likely exist, and errors might occur. For now, the
preceding “functional description” will suffice.
21
Collaborative Requirements Gathering cont..
The lists of objects can be pinned to the walls of the room using large sheets
of paper, stuck to the walls using adhesive-backed sheets, or written on a
wall board.
After individual lists are presented in one topic area, the group creates a
combined list by eliminating redundant entries, adding any new ideas that
come up during the discussion, but not deleting anything. After you create
combined lists for all topic areas, discussion—coordinated by the facilitator
—ensues.
1. Normal requirements
2. Expected requirements
3. Exciting requirements
23
Quality Function Deployment cont..
1.Normal requirements :
The objectives and goals that are stated for a product or system during
meetings with the customer.
2. Expected requirements :
These requirements are understood to the product or system and may be
so fundamental that the customer does not openly state them.
3. Exciting requirements :
- For example, software for a new mobile phone comes with standard features, but
is coupled with a set of unexpected capabilities (e.g., multi touch screen, visual
voice mail) that delight every user of the product.
25
3. Usage Scenarios
As requirements are gathered, an overall vision of system functions and
features begins to materialize.
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.
26
4. Elicitation Work Products
“ A use case captures a contract ... [that] describes the system’s behavior
under various conditions as the system responds to a request from one of its
stakeholders . . .”
In essence, a use case tells a stylized story about how an end user (playing
one of a number of possible roles) interacts with the system under a specific
set of circumstances. The story may be narrative text, an outline of tasks or
interactions, a template-based description, or a diagrammatic
representation.
Regardless of its form, a use case depicts the software or system from the
end user’s point of view.
28
The first step in writing a use case is to define the set of “actors” that will be
involved in the story.
Actors are the different people (or devices) that use the system or product
within the context of the function and behavior that is to be described.
Actors represent the roles that people (or devices) play as the system
operates.
29
Note that an actor and an end user are not necessarily the same thing. A
typical user may play a number of different roles when using a system,
whereas an actor represents a class of external entities that play just one
role in the context of the use case.
After careful review of requirements, the software for the control computer
requires four different modes (roles) for interaction: programming mode,
test mode, monitoring mode, and troubleshooting mode.
30
EACH SCANARIO (USE CASE) should be answered THE FOLLOWING
QUESTIONS:
31
Example :
33
1.The homeowner observes the SafeHome control panel (Figure) to
determine if the system is ready for input. If the system is not ready, a not
ready message is displayed on the LCD display, and the homeowner must
physically close windows or doors so that the not ready message disappears
3. The homeowner selects and keys in stay or away (see Figure 5.1) to
activate the system. Stay activates only perimeter sensors (inside motion
detecting sensors are deactivated).Away activates all sensors.
3. How much time does the homeowner have to enter the password from
the time the first key is pressed?
37
38
Building the Requirements Model
Introduction:
•There are many different ways to look at the requirements for a computer-
based system. Some software people argue that it’s best to select one
mode of representation (e.g. the use case)
1. Scenario-based elements.
2. Class-based elements
3. Behavioral elements
4. Flow-oriented elements
39
Building the Requirements Model
1. Elements of the Requirements Model :
1. Scenario-based elements.
2. Class-based elements
3. Behavioral elements
4. Flow-oriented elements
2. Analysis Pattern
40
# Elements of the Requirements Model cont..
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. As such, they serve as input for the creation of other
modeling elements.
Figure depicts a UML activity diagram for eliciting requirements and representing
them using use cases. Three levels of elaboration are shown, culminating in a
scenario-based representation.
41
Scenario-based elements cont..
42
2. Class-based elements. Class diagram for
sensor
The state diagram is one method for representing the behavior of a system
by depicting its states and the events that cause the system to change state.
A state is any externally observable mode of behavior. In addition, the state
diagram indicates actions (e.g., process activation) taken as a consequence
of a particular event.
45
4. Flow – Oriented elements :
46
# Analysis Patterns
Two benefits that can be associated with the use of analysis patterns:
47
First, analysis patterns speed up the development of abstract analysis models
that capture the main requirements by providing reusable analysis models with
examples as well as a description of advantages and limitations.
Second, analysis patterns facilitate the transformation of the analysis model into
a design model by suggesting design patterns and reliable solutions for common
problems.
48
Negotiating Requirements
In reality, you may have to enter into a negotiation with one or more
stakeholders. In most cases, stakeholders are asked to balance
functionality, performance, and other product or system characteristics
against cost and time-to-market.
The best negotiations strive for a “win-win” result. That is, stakeholders
win by getting the system or product that satisfies the majority of their
needs and you (as a member of the software team) win by working to
realistic and achievable budgets and deadlines.
49
A set of negotiation activities at the beginning of each software process
iteration. Rather than a single customer communication activity, the
following activities are defined:
50
Validating Requirements
51
• Is each requirement bounded and unambiguous?
52
• Has the requirements model been “partitioned” in a way that exposes
progressively more detailed information about the system?
These and other questions should be asked and answered to ensure that
the requirements model is an accurate reflection of stakeholder needs
and that it provides a solid foundation for design.
53