The success or failure of a system depends heavily on the quality of the
requirements and quality of requirements is influenced by requirements
elicitation techniques. . This paper highlights different kinds of requirements
elicitation techniques. Requirements
elicitation techniques are the procedures through which a requirement engineer
finds out the needs of the customers, domain of problem, and constraints so
that a system may be developed to resolve the problem and fulfill the needs of
customers within organizational constraints. Requirements elicitation is the
hardest and critical part of software development because errors at this stage
can propagate throughout the development process and most difficult to repair afterward.
Paper also highlights pros and cons of using these techniques
No requirements elicitation technique has the capability of finding all of the software
requirements so we have to use variety of techniques that will help us to cover
all the requirements, resulting in more effective elicitation.
Basic purpose of requirement analysis is to increase the possibility of
building a system which satisfies the customers and their needs. Requirements
engineering can be classified into five phases including elicitation, analysis,
specification, validation or verification and management.
Requirements elicitation is the hardest and most critical
part of software development because errors at this stage propagate through the
development process and most difficult to repair afterward. During requirement
elicitation one has to deal with ambiguity, informality, incompleteness and
Different kinds of elicitation problems may arise like
problem of scope during which boundary of the system is not well defined and
unnecessary information may be included. Another problem comes from users who
have incomplete understanding of their needs. Different users may have
conflicting needs and they express requirements in poor manner. Problem may
arise if requirement engineers have incomplete knowledge of problem domain.
Volatility of requirements is also a major source of poor requirements.
The objective of software engineering activities and tools is to produce
high quality software which are complete, consistent, reliable, cost effective,
and developed within specified time frame. But major software products fail on
many of these attributes. There are many reasons behind these failures and one
of major source of failures is poor requirements and these problems grow as
software is developed. Aim of requirement engineering is to fulfill customers’
needs through well-defined methodologies.
Requirements elicitation is the overall process of obtaining, gathering,
organizing, writing and documenting requirements for a software system through
consultation with users and different stakeholders. “Requirements elicitation
techniques are the means by which systems analysts determine the problems,
opportunities, and needs of the customers, so that systems developer can
construct systems that actually resolve those problems, leverage those
opportunities, and/or address customer’s needs”.
During this process, problem domain is analyzed and relevant knowledge
is obtained. Purpose of requirements elicitation is to gather as many
requirements as possible so that many alternate solutions may be obtained. Both
functional and non-functional requirements are obtained through the process of
requirements elicitation. Final draft of Requirements is written in a document
generally called software requirements speciation (SRS).
4 process to undersand a problem and its
application domain is called requirement anlaysis. Direct approach of
requirement elicitation is used to to enhance the understanding of the problem
of system already in use. While indirect approach of requirement elicitation is
used to obtain information that can not be obtained directly. no single technique can fulfill all damands
and we have to use them in their specific context. 3 requirement phase of software development life cyle consists of
elicitation, specification, and validation of requirements. Traditional
techniques include interviews, surveys, introspection, and meetings.
Collaborative techniques include JAD and prototyping while contextual
techniques include enthnographic studies and discourse analysis. 6 no single
technique is capable of getting all requirements. Each technique has pros and
cons. 1 There are many techniques of requirements elicitation like interviews,
ethnography studies, protocol analysis, prototyping, JAD and issues related with
them. Non compliance to these techniques is considered main reasons for many
project failiures. 2 paper prototyping
is a requirement elicitation technique during which a throwaway paper prototype
is developed to obtain requirements from customer which is visual
representation of the system. This technique is useful for small and medium
sized projects. 5 different problems
related with requirement elicitation include stakeholder’s miscommunication,
multiple interpretation of same sentence. Cost of failure is too much. 7 analysts with past experience is able to
get more detailed and accurate requirements as compaered to less experienced
There are different techniques available for requirements elicitation.
Some of them are given below.
Early elicitation techniques are called traditional techniques. These
include the following:
An interview is a conversational method to get requirements. An
experienced analyst with good knowledge of application domain of the problem
conducts the interview. Interviews are helpful to get large size information.
Conducting interview requires extraordinary social skills, patience to listen
and comprehend the message. Interview may be structured or unstructured. Structured
interview generally consists of pre planed questions. Quality and effectiveness
of the interview is generally dependent on the quality of questions asked. It
enables the interviewer to check the understanding of customer about the problem.
Unstructured interviews are mostly conversational in nature without any
preplanned questions and information is obtained in informal way. Different
aspects of the problem are focused and deep understanding is achieved through
Questionnaires are one of the cost effective way used in
initial phase of requirements elicitation. Questionnaires are useful in getting
controlled response without irrelevant details. But to be effective,
questionnaire must be concise, clear and to the point and should include
helping material for respondents.
Introspection is effective when analyst is expert in domain knowledge
and the system goals and business processes performed by the user are well
understood by him.
Documents include procedural manuals, organizational
culture, input forms, output forms, diagrams, models, charts and programs. Documents are good source of information
about user needs and current system.
Requirements can also be obtained through formal or informal meetings.
Different stakeholders can be selected to get wide range of responses and
combine different elicitation techniques at one place to maximize the utility
of requirements. Collaborative techniques merge traditional, contextual and
cognitive techniques into a single technique. Collaborative techniques involve
It is a group activity where
different stakeholders participate in a discussion to come up with different
ideas and all viewpoints are taken into account. A topic is given to
participants and they share their point of view in fixed time period.
Brainstorming has two phases. First phase is generation phase during which all
ideas are received without discussing their merits or demerits. Second phase is
consolidation phase during which preliminary ideas are revised, discussed and
organized on the basis of required documentation. Brainstorming generates wide range
of ideas and viewpoints.
Joint application development (JAD) and rapid application
development (RAD) emphasizes the need of discussion among different
stakeholders with the help unbiased facilitator. Workshops of small group of
people are held to come up with proper requirements. Difference between JAD and brainstorming is
that JAD discussion is well planned with actions and roles of different
participants properly defined. Secondly, stakeholders are also allowed to
participate and discuss on design of the proposed system.
During prototyping, a partial model is developed rapidly
and quickly on the basis of preliminary requirements gathered from customers.
Mostly complex and ambiguous requirement’s prototype is developed for getting
timely feedback from the customers about the usability and correctness of the
system. It is a two way technique for
reaching an agreement between experts and end users of the system.
Another form of prototyping is paper prototype. A throwaway paper
prototype of the system is developed and is given to end users. Feedback from
the users is recorded in tabular form. If different users give conflicting
feedback then requirement engineer tries to come up with consensus.
These techniques collect
requirements with respect to the context of users. Requirements are gathered at
working environment where actual system is going to be deployed at later stage.
Contextual techniques are combination of unstructured interview, workplace observation,
and prototyping. Main aim of these techniques is to collect data regarding
workplace procedures, environment, patterns, and daily work processes and to
interpret that data for in depth understanding of requirements and system
design. Various techniques under this category are given as follows:
It is social science elicitation technique to understand
people in context of social and cultural perspective. Analyst observes the activities performed by
different customers at their workplace for specific period of time and collects
requirements. Relationship between actors and system is analyzed. It is used
with interviews and questionnaires to deal with contextual problems.
DIFFERENT REQUIREMENTS ELICITATION TECHNIQUES
No requirements elicitation technique has capability of finding all of
the software requirements. So we have to use variety of techniques that will
help us to cover all the requirements, resulting in more effective elicitation.
Following are some of the pros and cons of using different requirement
Interviews are good tool for
eliciting detailed requirements. Different kinds of ambiguities can be
clarified through interview. Interviewee can analyze and take into account body
language, verbal as well as nonverbal messages communicated by the interviewee
into requirement document. But due to cost issues, interviews cannot be
conducted with large population. Quality of data collected mainly depends upon
interviewer who may sometimes be biased. Conducting an interview require great
social skills, preparation and follow up which are time consuming.
Documentation analysis is
helpful to get beforehand understanding of customer’s organization and to get
historical data. This in turn is helpful for properly framing questionnaires
and getting requirements. But sometimes documentation is not up to date and
incomplete or core details are not given which may lead to misunderstanding.
Questionnaires are inexpensive
way to get large number of responses within short period of time. It is
especially useful when same set of questions are asked to large population. But
respondents may misinterpret the questions and answer according to their own
Ethnography helps in
understanding the relationships among different people in an organization,
events and work patterns. It is also helpful in validating different
requirements. But it requires experts to perform it because diverse culture
exists in organizations.
Prototyping focus on user as well as requirement engineer
collaboration during requirement elicitation and enables timely feedback from
user to rectify the problem which saves time and money. But for complex systems
it can be very time consuming.
Application Development (JAD)
JAD helps in minimizing the
ambiguities among different stakeholders. But it is not possible to check all
requirements in just one workshop/session. Some user may also behave passively.
As brainstorming focus on
creativity so members participate actively and it helps in generation of new
ideas and resolve conflicting ideas. But if it is not organized properly it
becomes time consuming. Some participants may take more time than others.
Requirement elicitation is backbone of developing
reliable software product. No single technique fulfills all demands of
requirement team. It depends upon the Requirement engineer that how he uses
these technique efficiently to elicit requirements. In this paper we have
discussed various techniques of requirements elicitation along with pros and
cons of these techniques. The paper
offers brief but comprehensive description of requirement elicitation
techniques. We cannot say that one technique is better than other but each
technique has its usage at some point of time in requirement elicitation
process. For getting overall benefits
from these techniques we have to properly learn their usage scenarios. Future
work may point out which technique is best suited in a particular situation.