Lecture 4 - Software Requirement Elicitation II
Lecture 4 - Software Requirement Elicitation II
Requirement
Engineering and
Construction
LECTURE FOUR: SOFTWARE
REQUIREMENT ELICITATION II
Requirements Elicitation
The aims of the requirements elicitation process are
to understand the work that stakeholders do
how they might use a new system to help support that work.
During requirements elicitation, software engineers work with stakeholders to
find out about
the application domain, work activities, the services and system features
that stakeholders want,
the required performance of the system, hardware constraints, and so on.
Requirements Elicitation
Eliciting and understanding requirements from system stakeholders might be
a difficult process for several reasons:
Stakeholders often don’t know what they want from a computer system
except in the most general terms; they may find it difficult to articulate
what they want the system to do; they may make unrealistic demands
because they don’t know what is and isn’t feasible.
Stakeholders in a system naturally express requirements in their own terms
and with implicit knowledge of their own work. Requirements engineers,
without experience in the customer’s domain, may not understand these
requirements.
Requirements Elicitation
Different stakeholders, with diverse requirements, may express their
requirements in different ways. Requirements engineers have to discover
all potential sources of requirements and discover commonalities and
conflict.
Political factors may influence the requirements of a system. Managers
may demand specific system requirements because these will allow them to
increase their influence in the organization.
The economic and business environment in which the analysis takes place
is dynamic. It inevitably changes during the analysis process. The
importance of particular requirements may change. New requirements may
emerge from new stakeholders who were not originally consulted.
Requirements Elicitation and
Analysis Process
1 2 3 4
Sorted Card
Other Requirements Elicitation
Techniques
Designer as Apprentice
Designer as apprentice is a requirements discovery technique in which the
requirements engineer “looks over the shoulder” of the customer in order to
learn enough about the customer’s work to understand their needs.
The relationship between customer and designer is like that between a master
craftsman and apprentice.
That is, the apprentice learns a skill from the master just as we want the
requirements engineer (the designer) to learn about the customer’s work from
the customer
Other Requirements Elicitation
Techniques
The apprentice is there to learn whatever the master knows
In order for this technique to work, the requirements engineer must
understand the structure and implication of the work, including:
The strategy to get work done
Constraints that get in the way
The structure of the physical environment as it supports work
The way work is divided
Recurring patterns of activity
The implications these have on any potential system
Other Requirements Elicitation
Techniques
Domain Analysis
Domain analysis involves any general approach to assessing the “land scape”
of related and competing applications to the system being designed.
Such an approach can be useful in identifying essential functionality and,
later, missing functionality.
Domain analysis can also be used later for identifying reusable components.
Other Requirements Elicitation
Techniques
Goal-Based Approaches
Goal-based approaches comprise any elicitation techniques in which
requirements are recognized to emanate from the mission statement, through
a set of goals that lead to requirements.
That is, looking at the mission statement, a set of goals that fulfill that
mission is generated.
These goals may be subdivided one or more times to obtain lower-level
goals. Then, the lower-level goals are branched out into specific high-level
requirements. Finally, the high-level requirements are used to generate lower-
level ones.
Other Requirements Elicitation
Techniques
For example, consider the baggage handling system mission statement:
To automate all aspects of baggage handling from passenger origin to
destination.
The following goals might be considered to fulfill this mission:
Goal 1: To completely automate the tracking of baggage from check-in to
pick-up.
Goal 2: To completely automate the routing of baggage from check-in
counter to plane.
Goal 3: To reduce the amount of lost luggage to 1%.
Other Requirements Elicitation
Techniques
Group Work
Group work is a general term for any kind of group meetings that are used
during the requirements discovery, analysis, and follow-up processes.
The most celebrated of group-oriented work for requirements elicitation is
joint application design (JAD), which we will discuss shortly
Here are the most important things to remember about group meetings.
Do your homework—research all aspects of the organization, problems,
politics, environment, and so on.
Publish an agenda (with time allotted for each item) several days before
the meeting occurs..
Other Requirements Elicitation
Techniques
Stay on the agenda throughout the meeting (no meeting scope creep).
Have a dedicated note-taker (scribe) on hand.
Do not allow personal issues to creep in.
Allow all to have their voices heard.
Look for consensus at the earliest opportunity.
Do not leave until all items on the agenda have received sufficient
discussion.
Publish the minutes of the meeting within a couple of days of meeting
close and allow attendees to suggest changes.
Other Requirements Elicitation
Techniques
Introspection
When a requirements engineer develops requirements based on what he
thinks the customer wants, then he is conducting the process of introspection.
In essence, the requirements engineer puts himself in the place of the
customer and opines “if I were the customer I would want the system to do
this …”
Other Requirements Elicitation
Techniques
An introspective approach is useful when the requirements engineer’s domain
knowledge far exceeds that of the customer.
Occasionally, the customer will ask the engineer questions similar to the
following—“if you were me, what would you want?” While introspection
will inform every aspect of the requirements engineer’s interactions,
remember our admonition about not telling a customer what he ought to
want.
Other Requirements Elicitation
Techniques
Joint Application Design
Joint application device (JAD) involves highly structured group meetings or
mini-retreats with system users, system owners, and analysts focused on a
specific set of problems for an extended period.
JAD and JAD-like techniques are commonly used in systems planning and
systems analysis activities to obtain group consensus on problems, objectives,
and requirements.
Specifically, the requirements engineer can use JAD sessions for concept of
operation definition, system goal definition, requirements elicitation,
requirements analysis, requirements document review, and more.
Other Requirements Elicitation
Techniques
Planning for a JAD review or audit session involves three steps:
1. Selecting participants
2. Preparing the agenda
3. Selecting a location
Great care must be taken in preparing each of these steps.
The following rules are for conducting software requirements, design audits,
or code walkthroughs.
The session leader must make every effort to ensure these practices are
implemented.
Other Requirements Elicitation
Techniques
Stick to the agenda.
Stay on schedule (agenda topics are allotted specific time).
Ensure that the scribe can take notes.
Avoid technical jargon (if the review involves nontechnical personnel).
Resolve conflicts (try not to defer them).
Encourage group consensus.
Encourage user and management participation without allowing
individuals to dominate the session.
Keep the meeting impersonal.
Allow the meetings to take as long as necessary
Other Requirements Elicitation
Techniques
The end product of any review session is typically a formal written document
providing a summary of the items (specifications, design changes, code
changes, and action items) agreed upon during the session.
The content and organization of the document depend on the nature and
objectives of the session. Regarding requirements elicitation, however, the
main artifact could be a first draft of the SRS.
Other Requirements Elicitation
Techniques
Laddering
In laddering, the requirements engineer asks the customer short prompting
questions (probes) to elicit requirements.
Follow-up questions are then posed to dig deeper below the surface. The
resultant information from the responses is then organized into a tree-like
structure.
To illustrate the technique, consider the following laddering questions and
responses for the pet store POS system.
Other Requirements Elicitation
Techniques
RE: Name a key feature of the system.
Customer: Customer identification.
RE: How do you identify a customer?
Customer: They can swipe their loyalty card.
RE: What if a customer forgets their card?
Customer: They can be looked up by phone number.
RE: When do you get the customer’s phone number?
Customer: When customers complete the application for the loyalty card.
RE: How do customers complete the applications?
Other Requirements Elicitation
Techniques
The laddering technique
assumes that information
can be arranged in a
Laddering hierarchical fashion, or, at
diagram for the least, it causes the
pet store POS information to be arranged
system. hierarchically.
Other Requirements Elicitation
Techniques
Protocol Analysis
A protocol analysis is a process where customers, with the requirements
engineers, walk through the procedures they are automating.
During such a walkthrough, the customers explicitly state the rationale for
each step that is being taken.
Other Requirements Elicitation
Techniques
Prototyping
Prototyping involves system model construction to discover new features,
particularly usability requirements.
Prototyping is an important technique for requirements elicitation.
Prototypes can involve
working models and
nonworking models.
Working models can include executable code in the case of software
systems and simulations, or temporary or to-scale prototypes for non-
software systems.
Other Requirements Elicitation
Techniques
Nonworking models can include storyboards and mock-ups of user
interfaces.
Other Requirements Elicitation
Techniques
Quality Function Deployment
Quality function deployment (QFD) is a technique for discovering customer
requirements and defining major quality assurance points to be used
throughout the production phase.
QFD provides a structure for ensuring that customers’ needs and desires are
carefully heard, and then directly translated into a company’s internal
technical requirements—from analysis through implementation to
deployment.
Other Requirements Elicitation
Techniques
Scenarios
Scenarios are informal descriptions of the system in use that provide a high-
level description of system operation, classes of users, and exceptional
situations.
Here is a sample scenario for the pet store POS system.
A customer walks into the pet store and fills the cart with a variety of items.
When checking out, the cashier asks if the customer has a loyalty card. If
so, the cashier swipes the card, authenticating the customer. If not, then the
cashier offers to complete one on the spot. After the loyalty card activity,
the cashier scans products using a bar code reader.
Other Requirements Elicitation
Techniques
As each item is scanned, the sale is totaled and the inventory is
appropriately updated. Upon completion of product scanning a subtotal is
computed. Then any coupons and discounts are entered. A new subtotal is
computed and applicable taxes are added. A receipt is printed and the
customer pays using cash, credit card, debit card, or check. All appropriate
totals (sales, tax, discounts, rebates, etc.) are computed and recorded.
Scenarios are quite useful when the domain is novel. User stories are, in fact,
a form of scenario.
Other Requirements Elicitation
Techniques
Task Analysis
Task analysis involves a functional decomposition of tasks to be performed
by the system. That is, starting at the highest level of abstraction, the designer
and customers elicit further levels of detail. This detailed decomposition
continues until the lowest level of functionality (single task) is achieved.
Other Requirements Elicitation
Techniques