Professional Documents
Culture Documents
Requirement Elicitation and Analysis
Requirement Elicitation and Analysis
Requirement Elicitation and Analysis
.
Page 1 of 53
Contents
Requirements Elicitation
Difficulties of Requirements Elicitation
Components of Elicitation
Elicitation , Analysis & Negotiation
The requirements elicitation process
The requirements Analysis & Negotiation Process
Elicitation Techniques
Traditional techniques
Collaborative techniques
Cognitive techniques
Contextual approaches
Page 2 of 53
Requirements Elicitation
Encompass all activities involved in discovering the
requirements of a system
System developers and engineers work in close relationship
with customer and end-users to
Find out and understand the problems to be solved
Find out and understand the functionalities of the system
Find out the required “performance” of the solution
Find out constraints, such as hardware and other, on the
solution
It is not as simple as “let’s ask the users what they want.”
Page 6 of 53
Difficulties of Requirements Elicitation…
The "User and the Developer“ Syndrome
Communication gap between the user and the developer.
Users and developers are typically from different worlds, may even speak different
languages, and have different backgrounds, motivations, and objectives.
Reasons for this problem and some suggested solutions.
Page 7 of 53
Components of Elicitation
Application domain understanding
Application domain knowledge is knowledge of
the general area where the system is applied.
Problem understanding
details of the specific customer problem where
the system will be applied must be understood.
Business understanding
understand how systems interact and contribute
to overall business goals.
Understanding the needs and constraints of system stakeholders
understand, in detail, the specific needs of people who require system
support in their work.
Page 8 of 53
Analysis & Negotiation
Page 10 of 53
The requirements elicitation process
Page 17 of 53
“Hard Data” Collection
Identify Collections of Hard Data
Facts and figures, financial information, invoices…
Reports used for decision making,…
Survey results, marketing data,…
Sampling
Sampling used to select representative set from a population
Purposive Sampling - choose the parts you think are relevant without
worrying about statistical issues
Simple Random Sampling - choose every kth element
Stratified Random Sampling - identify strata/class and sample each
Clustered Random Sampling - choose a representative subpopulation
and sample it
Sample Size is important - balance between cost of data
collection/analysis and required significance Page 18 of 53
Interview
Page 23 of 53
Surveys and Questionnaires
Advantages
Can quickly collect info from large numbers of people
Can be administered remotely
Can collect attitudes, beliefs, characteristics
Disadvantages
Simplistic (presupposed) categories provide very little context
No room for users to convey their real needs
Watch for:
Bias in sample selection & in self-selecting respondents
Small sample size (lack of statistical significance).
Open ended questions (very hard to analyze!).
Ambiguous questions.
Page 24 of 53
Meetings
Used for summarization and feedback
E.g. meet with stakeholders towards the end of each stage
to discuss the results of the information gathering stage
to conclude on a set of requirements
to agree on a design etc.
Use the meeting to confirm what has been learned, talk about findings
Meetings are an important managerial tool
Used to move a system development project forward.
Need to determine objectives for the meeting:
E.g. presentation, problem solving, conflict resolution, progress
analysis, gathering and merging of facts, training, planning,...
Plan the meeting carefully: time, agenda, place, rules, …
Special rules apply for formal presentations, walkthroughs,
brainstorming, etc. Page 25 of 53
Collaborative techniques: Group techniques
In the group work, different stakeholders are invited to conduct the
group meeting in a collaboration to elicit the requirements of the
system to be developed.
Two types:
Focus Groups
Brainstorming
Focus Groups
A kind of group interview
Groups are brought together to discuss some topic of interest
produces data and insights that would be less accessible without
interaction found in a group setting—listening to others’ verbalized
experiences stimulates memories, ideas, and experiences in
participants
Page 26 of 53
Brainstorming
Brainstorming refers to the process of systematic and liberal
generation of a large volume of ideas from a number of participants.
So much severe criticism is not allowed in this type of technique
because due to this the biasness can be generated.
The ideas are freely explained and everyone has to interpret it in a
very pleasant environment with some informal discussion.
Brainstorming can be structured or unstructured
Unstructured brainstorming
Participants can give ideas as they come to mind
Quite often not very efficient
Structured brainstorming
Participants must follow structure in order to make the gathering of
inputs more orderly and more efficiently. Page 27 of 53
Process of Structured Brainstorming
State the central brainstorming theme in question form and write it
down where every participant can see (white board or flipchart)
Ensure that all the members have a full understanding the question
Let each team member have a turn to give his or her input as answer
to the question.
If a team member can't think of any input when his or her turn comes, he simply
needs to say 'Pass,' and the next member gets the turn.
Write each input on the board or flipchart as it is given.
Nobody is allowed to criticize an input, no matter what.
Moderator writes down the input on the board or flipchart using exactly the
same words used by the input giver.
Repeat the brainstorming rounds until everybody says 'Pass' in the
same round ( ideas are exhausted).
Review each of the listed inputs for further improvement and
maximize its clarity.
Other team members can ask the input giver what he or she actually means by
his or her input. Page 28 of 53
Group techniques: Pros & Cons
Advantages
More natural interaction between people than questioner &
formal interview
It promotes free thinking and expression of ideas.
Brainstorming provides the innovative ideas about the project to
be developed.
Disadvantages
May create unnatural groups (uncomfortable for participants)
Brain storming is seriously affected by exploring the critique
ideas.
May only provide superficial responses
Page 29 of 53
Joint Application Development
Joint Application Development (JAD) is a requirements
elicitation method that brings together stakeholders, end-users,
and development teams in a collaborative workshop setting..
Page 36 of 53
Knowledge Elicitation Techniques in RE
Background
Knowledge elicitation is concerned with discovering ‘expert’ knowledge
Originally focused on deriving expert’s “rules” for Rule-based Systems
More recently, focused on understanding “problem solving methods”
Task analysis
Task analysis provides the tasks in a hierarchical fashion with a top-down
manner.
In this approach main task and the sub-tasks are described by different
levels in the tree format and hence this detail continues until the root
tasks are encountered.
The primary objectives of this technique is to construct a hierarchy of
the tasks performed by the users and the system, and determine the
knowledge used or required to carry them out.
is also useful for representing design analysis, integration with business
models and model of requirements change. Page 37 of 53
Task analysis…
Advantages
provides the interaction of both user and the system with
respect to some task that takes place.
used by the project manager to manage the user and system
tasks.
Disadvantages
requires a lot of effort as compared to interview.
The detail of level is mandatory in task analysis
and hence it needs a lot of detail for the low level tasks.
Page 38 of 53
Protocol analysis
Is a sort of meeting where participants discuss the requirements of the
customer while talking loudly. (psychological research method )
Protocol Analysis also provides the required actions to be taken for
fulfilling the user requirements by using rationale.
Advantages
This technique can provide the analyst with specific information and
rationale for the processes the target system must support.
This technique enables all the stakeholders to provide active
participation.
Disadvantages
Sometime this technique does not provide the true picture of the
requirements as talking through operations.
Conflicts can occur among the participants while talking loudly.
Page 39 of 53
Card Sorting
In card sorting technique the customer is provides with a set of cards
to sort it according to the names of domain entities.
Also the costumer has to provide the criteria according to which the
cards are sorted.
Advantages
It provides the requirements prioritization by sorting and placing the
most important requirements at the top of the cards.
It provides how much the customer has the knowledge about the problem
domain.
elicits classification knowledge
Disadvantages
It requires deep knowledge about the domain and also all the entities
should be included in the process otherwise this technique gives wrong
results.
Complex cards can confuse the novice stakeholder. Page 40 of 53
Laddering
A series of simple questions are asked from the stakeholders which are
answered in a clear way by the stakeholders.
These questions are arranged into a hierarchical format which is useful
to show the order of the questions that has been asked and priority.
The stakeholder domain information is vital for the success of this
technique.
Advantages
provides the close contact with the stakeholders by asking them about
their prioritized needs.
arranges the customer requirements in proper hierarchical format that is
easy to be understood.
Disadvantages
becomes more complex for a large numbers of requirements
The maintenance of this technique becomes very hard when adding and
deleting the requirements anywhere in the laddering. Page 41 of 53
Delphi Technique
Is an iterative technique in which information is exchanged in a
written form until a consensus is reached.
For example participants may write down their requirements,
sorted in order of importance.
The sets of requirements obtained are distributed to all
participants, who reflect on them to obtain a revised set of
requirements.
The procedure will be repeated several times until sufficient
consensus is reached.
Used where contact between experts is difficult
Page 42 of 53
Delphi Technique: pros & cons
Advantage
Anonymous
Freedom from individual influence or dominance
Can reach consensus in hostile groups
Insulates from lobbying
Disadvantages
Time consuming
Information only as good as participants
Needs good written communication skills
Possible manipulation
Best method for complex problems
Page 43 of 53
Repertory Grids
develop a grid in the form of a matrix used to store the
requirements involve asking stakeholders to develop attributes
and assign values to a set of domain entities.
Page 44 of 53
Contextual approaches: Participant Observation
People often find it hard to describe what they do because it is so
natural to them.
Actual work processes often differ from formal, prescribed processes
Sometimes the best way to understand it is to observe them at work
This technique is often used with the conjunction of other
requirements engineering techniques like interview and task analysis.
Advantages
highly authentic requirements engineering tool
mostly used in order to validate and verify the requirements.
Disadvantages
very much expensive to be performed because of the travelling costs.
Mostly the results of observations are wrong as the customer problems
cannot be understand as they are being watched during observations and
adjust themselves. Page 45 of 53
Ethnography
Ethnography means how the people understand the problem.
From the software requirements engineering context, the
ethnography defines how people perceive their needs to be fulfilled by
the software.
An ethnographer spends some time observing people at work and
building up a picture of how work is done
Fundamental Theory:
The full understanding of a culture emerges only when an observer becomes
part of it, relates to the people involved and knows the importance of the
detailed practices to go on
Rationale for incorporating ethnography in the software development
process
Realization of developers: understanding the domain in which a system is operating
is of tremendous importance
Software is produced for human beings that have social characters Page 46 of 53
Ethnography Guidelines
Assume that people are good at doing their job and look for
nonstandard ways of working (resist on individual
experience)
Spend time getting to know the people and establish a trust
relationship
Keep detailed notes of all work practices. Analyze them and
draw conclusions from them
Combine observation with open-ended interviewing
Organize regular de-briefing session where the ethnographer
talks with people outside the process
Integrate other methods to elicit requirements (prototyping)
Page 47 of 53
Ethnography Guidelines…
Two phases:
Analysis: Initial understanding of the system and application
domain
Focused Ethnography: discover answers from questions which are
raies during prototyping Page 48 of 53
Ethnography: Pros & Cons
Advantages
useful to collects the quality attribute requirements such as
usability and efficiency etc… which are necessary for the success
of the project.
much effective when to determine the social factors
Disadvantages
fails in many cases because there are so much diverse
communities of people belonging to different social and ethical
sects.
It is difficult to analyze the social requirements of the people and
hence the psychologists are required to provide their
Page 49 of 53
Domain Analysis
Domain analysis provides domain knowledge, and
identification of reusable concepts and components.
It is an earlier eliciting technique which investigates the
thorough domain area by the domain expert.
These types of investigations are particularly important when
the project involves the replacement or enhancement of an
existing legacy system.
Domain requirements are fundamental for software reuse and
are the product of domain analysis.
The domain analysis is so much important and it is usually
found inside the requirement analysis.
Page 50 of 53
Domain Analysis…
Page 51 of 53
Domain Analysis: pros & cons
Advantages
is useful for eliciting requirements from documents, instruction
manuals of existing systems and other files and forms used in the
current business process.
used in the conjunction of other elicitation techniques as an input.
provides the opportunity to reuse specifications and validate new
requirements against other domain instances
Disadvantages
quite complex task because it needs to focus on different type of
domains and hence is very much complex technique.
requires a lot of expertise and skills from diverse fields of software
engineering.
Page 52 of 53
Selection Criteria
There numerous elicitation techniques. The choice depends on
System to be created
Greenfield Engineering
Reengineering
Interface Engineering
Highly interactive (Cooperation Support System)
Specific applications like Games
Budget/Time
Degree of User Participation
Time
Experience of users
…. (many more)
Page 53 of 53