Requirement Engineering
Requirement Engineering
Requirement Engineering
Requirements Engineering:
Elicitation Techniques
Sai Ganesh. Gunda
Source:http://www.marcocioffi.com/archives/2005/04/requirements-engineering/
MASTERS THESIS
Software Engineering, 2008
Department of Technology, Mathematics and Computer Science
MASTERS THESIS
Abstract
Requirement engineering is the first and crucial phase in the development of software.
involves set of activities like system feasibility study, elicitation analysis, validation and
management of the requirements. There are many methods already exist to perform the
requirement gathering process and the software developers apply them to gather the
requirements but still they are facing so many problems in gathering the requirements
due to the lack of knowledge on result of the methods and selection of appropriate
method. This affects the quality of software and increases the production cost of
software. this paper presents the literature study and the experimental case study on
analyzing and compare different methods for requirement gathering process, this
provides the flexibility to requirements engineers to know the characteristics and the
depends on the type of application and the situation. And this analysis may be useful for
Acknowledgement
I want to thank Dr. Steven Kirk (supervisor), for his invaluable guidance and
suggestions. I also want to thank my parents, for their support and belief in me. Without
them, I would never be the person, who I am now.
1
Requirements Engineering: Elicitation Techniques
Contents
1. Introduction...................................................................................................................................3
2. Background....................................................................................................................................4
2.1 User requirements................................................................................................................5
2.2 System Requirements ..........................................................................................................5
2.2.1 Functional requirements........................................................................................5
2.2.2 Non functional requirements ...............................................................................5
2.3 Requirements engineering ..................................................................................................6
3. Requirements Engineering Process............................................................................................6
3.1 Feasibility study....................................................................................................................8
3.2 Requirements Elicitation and Analysis .............................................................................9
4. Classic Requirements Elicitation techniques ..........................................................................10
4.1 Interviews............................................................................................................................11
4.2 Questionnaire .....................................................................................................................11
4.3 Social analysis .....................................................................................................................12
5. Modern Requirements Elicitation Techniques.......................................................................13
5.1 Prototyping .........................................................................................................................13
5.2 Requirements reuse ...........................................................................................................15
5.3 Scenarios .............................................................................................................................16
5.4 Brainstorming.....................................................................................................................16
5.5 Joint Application Development.......................................................................................17
5.6 User Centered Design .......................................................................................................17
6. Method .........................................................................................................................................18
7. Results ..........................................................................................................................................20
7.1 Experimental Survey .........................................................................................................20
7.2 Literature Review ...............................................................................................................24
8. Discussions ..................................................................................................................................26
8.1 Experimental Survey .........................................................................................................26
8.2 Literature Review ...............................................................................................................26
8.3 Comparison of results from Literature Review and Experimental Survey ...............27
8.4 Margin of Error..................................................................................................................27
9. Future Works...............................................................................................................................28
10. Conclusion.................................................................................................................................28
12. References..................................................................................................................................29
A. Appendix.....................................................................................................................................36
2
Requirements Engineering: Elicitation Techniques
1. Introduction
Nowadays the usage of computer applications and software is increasing day by day and
these systems play a vital role in the management of businesses existing today. Most of
the software products developed today is to extend the existing system functionalities.
Due to the todays commercial on the shelf products development [1, 2], the vast range
of fields that uses the computers today, different services are expected by customers,
which make it difficult to develop software that fulfils the expectations of the users.
Since the 1960s the development of computer based systems has faced many problems
[3, 4] that leaded to too many projects being delayed and over budget. The systems that
were delivered also did not meet the requirements, or satisfy the intended purpose
which resulted in the dissatisfaction of the users. The main reason that could be stated
for this problem is difficulties faced in the gathering of requirements [4], as
requirements engineering is the first step in the software development. Whenever the
requirements engineers lack the knowledge of the performance and characteristics of the
different elicitation methods, the activities related to requirements will fail, thus leading
to wrong gathering of requirements that makes the wrong requirements specification
document. The wrong specification document set the improper objectives in product
development phase. The product developed with the wrong specification document
never meets the customers expectations and the intended services. Moreover, the
changes in the requirements in the middle of the project development phase will lead to
delay and increased cost.
There are some famous cases of software failure due to improper use of requirements
elicitation methods. One of such famous case is the Ariane5 Flight 501 (European
Ariane 5 expendable launch System) where the requirements specifications of Ariane4
were reused. But, Ariane5s flight path was much different which could not be handled
by the code developed using Ariane4s requirements specification. This is one of the
examples which show the importance of requirements elicitation and also the
importance of selecting the appropriate elicitation method [57].
Goals This paper describes the different activities involved in requirements engineering
process. The main goal of this paper is to analyze and compare of the different methods
for the requirements elicitation process, which will be useful to find the different
characteristics and the performance of different elicitation methods both in theoretical
and practical approach. Hence the results presented in this paper are acquired using both
literature study and an experimental survey. The survey on the different elicitation
methods that forms the part of the paper is conducted among the experienced people
who are currently using the requirements elicitation methods in the software industry.
Literature review presented in this paper compares the different elicitation methods
according to their characteristics. This papers deals only with the requirements
elicitation part of the requirement engineering process.
The research presented in this thesis commences with the Introduction section, in which
the current problems faced in the process of requirements elicitation and the methods
used to solve it are presented. The work done in this paper may be small and limited,
but it will be useful for the development of new methods in the future.
3
Requirements Engineering: Elicitation Techniques
Section 2 includes the background that presents the basic information required to
understand the topic and rest of the paper. This section provides the definitions and the
importance of the requirements engineering process in the software development. It
deals with the different activities involved in the requirements engineering process like
feasibility studies and requirements elicitation and analysis.
Section 4 and 5 starts with describing various methods for the requirements elicitation
process, this provides the basic guide lines to perform the different methods of
requirements elicitation. This section is based on the literature study of experts articles
in the field of software engineering and requirements engineering. The articles are
gathered from various sources, each describing different elicitation methods. Section 6
describes the method used to gather the material from the different sources and the
method used for conducting the survey among experienced professional and their
opinion on the elicitation methods and the usage of these methods in the industry level.
Results section provides the result of the research. It describes the comparison of
different elicitation methods based on the experimental survey and the literature review.
This section also includes the discussion of every observed result in detail. Future work
that can be carried on and the conclusion derived from the work are followed by the
results section.
2. Background
DEFINITION
4
Requirements Engineering: Elicitation Techniques
Requirements specify the services that should be provided by the system, the method in
which they should be provided and constraints in providing these services.
Requirements forms the first phase in the software lifecycle, as given by Somerville
Requirements are the things we should discover early stages of the software
development life cycle. The gathered requirements describe how the system will
behave, system domain, user level facilities and the constraints on which the system
should be operated [4 6]. There are typically 2 main types of these requirements, which
will be described in the following sections.
5
Requirements Engineering: Elicitation Techniques
The cost of the requirements engineering depends on the size and the type of the
system that is being developed. For large systems it wills costs 15% of the total budget
only for formal requirement specification, for smaller systems it varies from 8 to 10
percent [4, 5].
There are many problems due to usage of wrong requirements [4, 10]. They are,
1. Delayed and over budget projects.
2. The product does not reach the intended purpose. The customers, who are
actually paying for the system, are not satisfied.
3. The errors encountered in the development of the system, is the reason for the
problems in using the system.
4. The continuous use of such system makes it error prone, and thus increases the
cost of the maintenance.
Rectifying an error resulted by the wrong requirement is much harder than correcting
the errors occurred in the later stages of the project.
Correcting the requirements errors requires the rework on system design,
implementation and testing. The cost of correcting the requirements errors is 100 times
more than the cost of the simple errors occurred in the later stages of the project [4].
Feasibility study
Requirements elicitation and analysis
6
Requirements Engineering: Elicitation Techniques
Requirements validation
Requirements management
Requirements documents.
Require
specification
Feasibility study
System models
Requirements
Document
The detailed background theory of the activities showed in the figure 1 describes
planning and scheduling of the activities, inputs and outputs of the every activity, tools
used to perform each activity.
The performance of the activities depends mostly on the people who are involved in the
requirements engineering process; they will decide the major issues like where and
when to perform the activities. The requirements engineers will decide the usage of the
different available resources depending on the situation and the necessity [6].
The requirements engineering process is an input and output activity [4], it mainly
depends upon the four things to perform the requirements process, which are known as
the inputs of the requirements engineering process. They are [4],
1. Final requirements
2. Specification of system
3. System models
7
Requirements Engineering: Elicitation Techniques
Existing
system
document
Final
Stake holders requirements
requirements
Requirements
engineering
process Specification
of system
Business and
organisation
procedures
System models
Domain
knowledge
This feasibility study helps the requirements engineers to answer the questions like[6],
In the problems specified above, the first one is most critical, as it answers the problem
whether the system satisfies the intended objective or not. Unless the system answers
this problem positively, there is no use in developing the system. Any organization that
desires to develop the systems should have the clear arguments and statements on their
objectives.
This feasibility study involves set of activities such as information gathering,
assessment and the report of the information [6]. The assessment activity is used to find
the different solutions for the problems faced in the feasibility study process. Once the
solution is acquired, the questions can be answered from the source of information. The
sample questions that arise in this cyclic process are [6],
8
Requirements Engineering: Elicitation Techniques
2. Can the existing system integrated with the proposed system to solve the
problems.
3. The level of problems that has to be solved by the proposed system.
4. Can the proposed system be developed and used with the existing technology or
newer technology is needed?
5. What exactly the proposed systems should support and not be support?
The main source for the feasibility study activity includes the total management
department, technical professional, experts judgement and the people who are familiar
with the usage and type of the system. The required information in this activity is
gathered from analyzing the different types of user expectations on the new system. The
gathered information is used for the preparation of the feasibility report. This report is
basis for the critical decision regarding the changes in system development decisions,
schedule, and budget. The feasibility study report some times affects and changes the
overall objective of the organization.
Requirements elicitation process includes a chain of processes that interact with each
other to produce requirements documentation. The lifecycle of the requirements
elicitation process is represented in figure 3 and the steps involved are explained [6]
Requiremen
Requiremen ts
ts c heck
Background Requiremen
Knowledge ts priority
Requirements
documents
Gathering Conflict
requirement resolution
Requiremen
ts classify
9
Requirements Engineering: Elicitation Techniques
Requirements classification
This activity includes the organizing of the requirements gathered from different
sources.
Requirements conflict
This activity involves with the stakeholders and requirements engineers. This is used to
solve the problems in the requirements that contradict the organization and business
rules.
Requirements Prioritization
Discovering the important requirements by interacting with the stake holders and
organize them in to most priority order.
Requirements check
This activity involves checking the stake holders expectations on the system with the
gathered requirements.
Requirements elicitation process not only helps the organization to gather the
requirements, but also it analyses the requirements and the business procedures of the
organization. The requirements elicitation and analysis is a difficult activity in the
requirements engineering, due to the following reasons [6].
10
Requirements Engineering: Elicitation Techniques
4.1 Interviews
Interviews are the commonly used and most popular method for requirements elicitation
[4, 18]. In this method the analyst and the engineers of the requirements engineering
process discuss with the different types of stake holders to understand the requirements
of the system and the objective they have to fulfil in the system [16, 17]. There are
typically 2 main types of interviews, which will be described in the following sections
[4, 16, 52].
2. Open interview: In this interview the requirements engineer does not prepare
any predefined questions, and he tries to get the information from the
stakeholders in open discussions. He mostly concentrates on finding the stake
holders expectations on the system.
Generally the interviews start with the predefined questions [4]. However, in the
process of the interview, a lot of different considerable things may arise, that leads to
open discussion. Interviews are effective for understating the problems in the existing
system and to find the general requirements of the stakeholders. But, it is difficult to
decide the boundaries of the proposed system and the organization procedures using this
method. To make the effective interview the requirement engineer and the stake holders
has to perform in the following ways [4, 16, 17].
1. Interviewer should be patient enough to listen to the stake holders views and the
requirements. He should be open-minded.
2. Stake holders should be expressive in the interview; they should express their views
in definite context.
4.2 Questionnaire
Questionnaires are one of the methods of gathering requirements in less cost [26].
Questionnaires reach a large number of people, not only in less time but also in a lesser
cost. But the results extracted from the questionnaires should be clearly analysed. The
result from the questionnaires mainly depends on the two factors [20, 23, 24],
A well designed and effective questionnaire can be used to decide the actual user
requirements, objectives and the constraints [22]. A good structured questionnaire
influences people to answer honestly thus making it possible to gather reliable
results from a large group of people. The data collected through questionnaires can
be used to analyze the obtained results, both systematically and quantitatively [26].
The designing of questionnaire is a multi stage process and should be viewed
accordingly.
11
Requirements Engineering: Elicitation Techniques
The steps involved in designing and administering a questionnaire are [22, 26],
The questions should be arranged well, so that general questions are followed by
particular questions.
Arrange the questions such that, easy questions comes first.
Arrange the questions in a order of known to unknown
Try to use closed format questions in the beginning.
The questions relevant to the main subject should be given high priority and
stated at the start of the questionnaire.
Avoid personal and intimate questions at the beginning
The general factors which affect the usage of the questionnaire are [24, 25, 26]
1. The available resources to gather the requirements: The usage off the
questionnaire mainly depends on the available resources. When the resources
and the funds are less, the questionnaire is the best method to gather the
requirements because the cost of the administrational is very less. The
questionnaire can also be used to save the time by gathering the requirements
from a large number of people in a very short interval.
2. Type of Requirements that has to be gathering: The type of the information
that has to be gathered depends on the level of the respondents knowledge and
background.
3. Anonymity provided to the respondent: These are the general factors to use
the questionnaire but there is no particular rule as and when to use the
questionnaire for gathering requirements.
Passive observations- This social analysis is carried out without direct involvement of
the observer in the society. The observation of the peoples work is carried out by
recording using videotapes, video cameras and surveillance cameras. The
12
Requirements Engineering: Elicitation Techniques
documentation of the problems and the requirements are prepared from the recorded
data.
Active observation- This observation is carried out with the direct involvement of the
observer. The people are provided with the new product prototype or existing product to
perform the operations on the product. The observer provides the domain knowledge to
the user to work with the product and he makes the report of the requirements of the
people by observing their work with the product.
5.1 Prototyping
Prototype is the representations or visualizations of the actual system parts [2, 4, 27].
The prototype is designed in the early stages of the implementation of the project. It
provides the General idea of the actual system functions and the work flow. Prototyping
is used to gather the requirements from the users by presenting GUI based system
functions [28].
The main aim of Requirements Elicitation is to gather the requirements before the
product is developed. But it is difficult to discover the additional requirements until it
comes in to usage or some body is actually using it [1, 4, 28]. The process of gathering
the requirements from the stakeholders and the end users is limited and it is difficult to
discover their expectations and the requirements on the new product with out providing
some model that resembles the appearance of the real product.
A prototype represents the actual product in both functional and graphical sense [6, 29].
It provides the flexibility to the users and the stake holders to work with the initial
version of the product to understand the system and discuss them to think of the
additional and missed requirements. Prototyping is a most expensive than the all other
methods of requirements elicitation [30].
13
Requirements Engineering: Elicitation Techniques
Prototypes are generally developed in the early stages of the actual product development
process. The software developers use these prototypes in the situations like,
These prototypes are typically of two types. They are [1, 4, 31, 32],
Advantages of Prototyping
Reduces time of development.
Reduces cost of development.
The users provided with a visual representation, thus facilitating system
implementation.
Provides high level of user satisfaction.
The ways in which the system can be enhanced in future is known.
Disadvantages of Prototyping
The users may expect the finished product to be the same as the prototype
Developers may be tempted to stop with the prototype.
Can lead to unfinished system implementation.
14
Requirements Engineering: Elicitation Techniques
Nowadays in software industries the more than half of the requirements for the new
project requirements are acquired from the existing projects [2, 6, 36]. Although there is
need to check the requirements before they are used in the proposed product, the reused
requirements are already validated and analysed thus reducing the time of testing.
Successful reuse starts with the having an organizational culture that consciously
encourage reuse rather than reinvention [2].
The various questions that help us to find the reusable requirements are [36],
It is difficult to say that particular proposed product is completely different from the
existing product, because it is easy to find reused requirements in any project
requirement specification [2]
co Reusable
nte requirem
Recognize
which
existing
Requirements
Stake holders will provide the related documents and the existing system documents to
find the reusable requirements [1]. Some times the documents of the existing product
questionnaire are also helpful in finding the source of reusable requirements. Finding
15
Requirements Engineering: Elicitation Techniques
and using the reusable requirements for the projects is the best way of requirements
elicitation [6, 36, 37].
5.3 Scenarios
The scenarios of the particular system will give the working method of different
interaction sessions or the situations of the system [38, 39]. These scenarios are helpful
for requirements elicitation in two ways. They are [40].
1. Analyzing the different sessions of the system gives the flexibility to find the
requirements
2. The user response after interaction with the scenarios will give the flexibility to
find the requirements.
Scenarios are generally used after the initial requirements specification is finished [4,41,
42]. The scenarios are produced by the developers when the initial requirements are
collected and the basic idea about the functions to be provided by the system is
prepared. The developed scenarios will be used to find and prepare the detailed
requirements specification.
1. Scenario should start with the particular state called the starting point
2. Every state should be connected with the next state.
3. Every state should contain the Normal, exceptional and alternative flow of
events.
4. Every state should describe the actions performed on that state.
5. The interaction should be ended with the final state.
Generally the software industries use the text based and picture based scenarios [2, 4].
The developer provides the scenario model for the system. The user and the
requirements engineer work with the scenarios of the proposed system. The
requirements engineer takes the notes of the user comments, suggestions and difficulties
that user faced when interacting with the scenario. Scenarios of the proposed system are
always prepared with the involvement of the stake holders to clarify what they require
in each interaction. Use cases developed for the system are the basic guidelines for the
scenario models.
5.4 Brainstorming
Brainstorming is a techniques used to generate new ideas and find the solution to a
specific issue [2, 39, 45,58]. This is conducted as a conference with six to ten members.
The members are from the different departments and domain experts are also included.
This conference is headed by the organizer, who states the issue to be discussed. The
conference is generally held in a round table fashion. Every member person is allotted
with certain time interval to explain their ideas. Notepads are provided to all members
to write their ideas and suggestions. The team of brainstorming will then decide the best
idea by voting from the group and that idea is selected as the solution to the issue
discussed in the conference.
16
Requirements Engineering: Elicitation Techniques
The requirements engineers start the session by providing the general overview of the
system. The discussion with the stakeholders and the users continues until the final
requirements are gathered. This leads to elicitation of better requirements in the first
attempt and it reduces the time spent on the requirements phase [46].
17
Requirements Engineering: Elicitation Techniques
6. Method
There are various articles and papers present on the topic of Requirements Engineering.
Some of them are presented using Literature review and others using various practical
means. There are also papers on requirements engineering for specific applications.
However, very few are the papers that present these two perspectives together [51-56].
The main constraints that were considered for choosing the methods for this thesis work
were time, cost and reliability. Literature review, as it is gathered from reliable sources,
proved to be much reliable and cost free. Though much time was spent on collecting the
sources, it proved to be an effective method. On the other hand, the practical method has
to be as reliable as Literature review. Interview would have been the best method if not
for the time and cost constraints. It is not possible to meet many experts in the available
time. Questionnaires require much less time than Interview as it could be distributed at
the same time to may respondents. However, care was taken in choosing the
respondents in order to achieve the reliability. The methods used to conduct the survey
are explained later. The other reasons that these methods were chosen are,
Literature review is one of the methods that are very effective to read and
analyze various papers, articles and books presented on the topic.
To have a deeper understanding of the topic, one must be aware of as many
different views and opinions of the experts. Literature review is a best method to
achieve this.
On any aspect of engineering, theoretical knowledge alone is not helpful when it
comes to real world applications. It is important to have practical knowledge. It
is on this basis that Experimental survey was chosen as one of the perspectives
for this paper.
It is always a best approach to compare the practical and theoretical results so as
to have a more reliable result. Hence, Literature review and Survey was selected.
Literature review
A properly written literature review filters the necessary information from the sources
that is analysed. The literature review in this paper mainly focuses on the materials
gathered from different books and the articles published in the IEEE, ACM and
SCIRUS by different experts in the field of requirements engineering and the software
development. The literature review for this thesis work was conducted using
information gathered from ten books and approximately thirty to forty papers.
18
Requirements Engineering: Elicitation Techniques
The appropriate keywords to filter the papers in IEEE and ACM libraries were obtained
by using random keywords in the GOOGLE AND YAHOO search pages. These
keywords were then used in the various libraries to get the most appropriate papers on
the topic. Once the papers were found, the following parameters were used to select the
papers for thesis. They are,
Reliability In general, papers presented in IEEE and ACM are reliable. However,
papers presented by professors and lecturers were given higher priority. The articles that
were selected were also mainly written by professors. In the case of the Books, the book
used for the course literature was selected. Other books used in this thesis are selected
based on their relevance and expertise on the topic.
Reputation The papers used in this thesis were also selected based on their
reputation. Most of the papers presented in this thesis are cited many times by reliable
authors. Goggle Scholar was used for this purpose. References were also gathered by
studying the references used in the selected papers.
The results gathered from the literature review were then tabulated. And according to
the authors view on the advantages and disadvantages of the various methods, they were
tabulated based on their usability for a particular type of application (sample table1) or
based on their cost and time usage. This table was later used to calculate the percentage
and the results were plotted as a graph (Figure 13 and Figure 14)
Experiment
This paper does not contain only the theoretical methods of gathering requirements. But
also, a practical approach is used in order to experience the problems that are faced in
the real world. A real survey is conducted among the professionals working in
requirements and software development field. The survey consists of questions aimed at
gathering the way the professionals feels about various requirements techniques, and the
problems they face in using them in the industrial level. The results gathered from the
survey is analysed and discussed. It is also compared with the outcome of literature
review, so as to find out the gap between the theoretical and practical usage of the
requirements elicitation techniques.
The main parameters that were used for the Survey are as follows,
19
Requirements Engineering: Elicitation Techniques
Conducting the survey since the survey was conducted among the professionals
mostly from Seven Indian multinational companies, E-Mail was used for distribution of
the questionnaire. The respondents, after filling out the questionnaire, returned the
results via E-Mail.
Analysis of the results The results collected from the respondents, were then
tabulated. The percentage was then calculated based on various parameters. In order to
provide the reader with a visual representation for easy understanding, the tabulated
data was plotted in a Graph (Figure 7 to Figure 12)
7. Results
In this section, the results gathered from Literature Review and Experimental Survey is
listed down. Graphs are used for visual representation and easy understanding.
20
Requirements Engineering: Elicitation Techniques
Educational Background
This graph shows the number of respondents according to their educational background.
It was important to plot this as this shows that the survey was conducted among
members from different educational backgrounds (based on university degree), thus
eliminating the possibility of the survey being conducted among a same group, for
example say software developers.
12
10 Computer Science
8 Information
Technology
6
Business
4 Administration
Others (Electrical,
2 Electronics, etc.,)
0
Years of Experience
In this graph, the respondents are divided by their years of experience in their relative
field. This was an important aspect as later it proved that, respondents with higher
experience believed that requirements engineering were an important phase in software
development.
14
12
10
8
6
4
2
0
1-3 Years 3-5 years More Than 5
years
21
Requirements Engineering: Elicitation Techniques
12
10
0
Yes No I do not know
100
90
80
70
60
in percentage
50
40
30
20
10
0
JAD
UC
Bra
Sce
Pro
Qu
Inte
Re
So
cia
use
est
D
in s
toty
rvie
nar
l
ion
d
An
torm
ios
pin
ws
Re
nai
aly
qui
ing
res
sis
rem
ent
s
22
Requirements Engineering: Elicitation Techniques
result, the same method used for Figure 9 was used. However, in this, all the
respondents (25) were asked to tick the methods used in their respective companies.
Then the same type of table used for Figure 10 was used. And each method was
incremented by one according to the selection of the respondent. Then this sum was
divided by the total number of respondents and the percentage was calculated. This is
plotted in Figure 10. From the comparison of figure 10 and 11, it is clear that, reusing
requirements is popular both among the respondents and also in companies.
100
90
80
70
in percentage
60
50
40
30
20
10
0
J AD
UC
Re
So
Pr o
Qu
Bra
Sc
Inte
c ia
us e
ena
est
D
toty
i
r v ie
ns
l An
i on
d
rios
pin
tor
ws
Re
nai
a ly
mi
g
qui
re s
ng
sis
re
me
nts
8
6 High Experience
Medium Experience
4 Low Experience
2
0
Yes No I do not
know
23
Requirements Engineering: Elicitation Techniques
In order to represent the collected information, the method of grading each requirements
elicitation process in a numerical of zero to ten according to the authors opinion on the
pros and cons of the method was discussed and the data was collected accordingly.
However, this was a difficult method and there was question of reliability on the grade
allotted. So, to overcome this, a new method was formed using the available data on the
authors views on the usability of the requirements elicitation processes. In this method,
each process and type of applications was tabulated and the process was incremented
with a one if the author expressed a positive view that the particular method can be used
for the particular type of application(see sample table 1). Then using this data,
percentage was calculated and plotted (Figure 13).
Table 1 sample table of the method used to calculate the usability of the method for
the particular type of applications.
The other parameter that was used was cost and time required by each method. To
gather these results, the same method used for Figure 13 was used, except that this time
the authors view on the cost and time required by the methods were tabulated. If the
method required much time it was incremented by 1. The same was done for cost also.
Then the percentage was calculated. The lower the percentage, the lesser the cost and
time required by the method, thus making it a most effective method, when cost and
time is considered. The results were then plotted in Figure 14.
24
Requirements Engineering: Elicitation Techniques
100
90
80
70
In Percentage
60
50
40
30
20
10
0
sis
s
ts
s
D
g
s
re
io
w
in
in
JA
UC
en
ly
ie
ar
m
ai
yp
na
m
rv
nn
en
or
ot
re
te
lA
st
tio
Sc
ot
ui
In
n
cia
Pr
es
eq
ai
So
Qu
Br
R
ed
us
General Applications Industrial Specific Applicatons Scientific Applications
Re
Figure 13: Method effectiveness according to the type of application
100
90
80
70
In Percentage
60
50
40
30
20
10
0
s
D
g
s
g
s is
ts
ire
w
io
n
in
JA
UC
en
pi
ly
e
ar
m
na
vi
na
m
en
or
ot
er
re
lA
st
Sc
io
ot
t
ui
In
n
t
ia
Pr
es
eq
ai
c
So
Qu
Br
R
ed
us
Cost Time
Re
25
Requirements Engineering: Elicitation Techniques
8. Discussions
Experience Matters
If you ask an inexperienced developer he would probably say that an application can be
developed just with the knowledge of the developer, where as a seasoned programmer
would be more concerned about the various parameters that affects the quality of the
software. This was proved by the survey (Figure 12). People with higher experience
believed that requirements gathering are a much important task in software development
lifecycle.
People from Management Background had a slight more priority for cost than
the effectiveness, whereas people with software background had much priority
for effectiveness (Figure 11 and Figure 7)
Respondents generally voted for methods that requires less interaction possible
(Figure 10)
Questionnaire was one of the methods that were voted by most number of
respondents as the most effective method. (Figure 10)
26
Requirements Engineering: Elicitation Techniques
Questionnaires and Requirements Reusing were found to be the popular and less
time taking methods in both literature review and the survey (Figure 10, Figure
11and Figure 14).
Developers tend to avoid interaction and direct involvement with user, and it
was found to be more costly too (Figure 10 and Figure 14 )
Though prototyping was one of the methods that required high time and cost, it
was found to be one of the popular methods used in industries (Figure 11and
Figure 14)
Questionnaires was popular, but it was generally agreed that the reliability of the
method greatly depend on the respondents and the type of group the
questionnaire is conducted and hence is more advantageous for general
applications(Figure 10, Figure 13 and Figure 14)
Social analysis is effective but it requires high budget and timeline (Figure 10,
Figure 13and Figure 14)
The eighty percent of sample size consists of professionals only from the Indian
companies
The result documented here includes people from management also, which
might affect the priority for the technical excellence when discussing the
appropriate method of requirement elicitation.
The survey is conducted via E-Mail, so some doubts of the respondents might be
left unanswered, thus affecting the survey.
The respondents are from only seven companies.
27
Requirements Engineering: Elicitation Techniques
9. Future Works
The thesis work can be further extended by using different methods other than
questionnaire. Also, the number of respondents can be increased to reduce the margin of
error and to increase the quality of the result.
10. Conclusion
In this paper, the different Requirements elicitation methods are studied, compared and
discussed using Literature Review and Experimental Survey. The results gathered were
analysed using various parameters and is found to be interesting. Though there are
various requirements elicitation methods, only some of the methods were found to be
popular among both the developers and management people (Figure 10, 11 and Figure
14). Every method has its own strength, but, the selection of the method is mostly
dependent on the type of the application being developed. While JAD is effective for
scientific applications as it includes experts from the specific field, questionnaire is
much more effective when it comes to general applications where cost and time
constraints are more (Figure 13 and Figure 14).
The more experienced believed in the importance of Requirements Engineering, while
the less experienced had very little knowledge about the process (Figure 12). This
happens due to the practical knowledge and problems faced during the development
process. The more experienced people were aware of the problems and faults that will
occur when the proper requirements documentation is unavailable. It also depends on
the organisational rules and the development team.
The survey was mostly conducted among Indian multi national companies. It was found
that the much established companies followed traditional methods of requirements
elicitation, whereas new companies were much open to try new methods. The
established companies were much more concerned about the effectiveness of the
process even if it costs more. But for the new companies, cost was an important
constraint that leads them to try out new methods that showed more result in less time
and cost possible.
This main aim of this paper was to compare the pros and cons of various methods of
requirements elicitation using Literature Review and Experimental survey. Apart from
achieving this, this paper has also succeeded in identifying the opinion of the
professionals in the field and along with the popularity of the methods in the companies.
The paper also opens path for further study on the topic by considering various other
conditions and parameters that might affect the requirements elicitation process.
28
Requirements Engineering: Elicitation Techniques
12. References
1. Christ of Ebert: Practical Requirements engineering solutions, University of
twente, IEEE publications, volume 21, issue 2, April 2004, pages: 16-18
http://csdl.computer.org/comp/mags/so/2004/02/s2016.pdf
http://www.doc.ic.ac.uk/~ban/pubs/sotar.re.pdf
8. Ruth Malan, Dana Bred Meyer: Functional Requirements and Use Cases. Hewlett-
Packard Company, 2000.
www.digilife.be/quickreferences/PT/Functional%20Requirements%20and%20Use%20
Cases.pdf
29
Requirements Engineering: Elicitation Techniques
11. Nakajo, T. & Kume, H. (1991): A Case History Analysis of Software Error Cause-
Effect Relationships. Transactions on Software Engineering. Vol 17, issue 8, 1991,
pages 830-838
14. Goguen, J. & Jirotka, M. (Ed.). (1994): Requirements Engineering: Social and
Technical Issues. London: Academic Press.
17. Tira Cohene and Steve Easterbrook: Contextual analysis for interview design.
Department of Computer Science, University of Toronto, Toronto Canada, IEEE
publications, 2005, pages 95-104.
http://ieeexplore.ieee.org/iel5/10247/32667/01531031.pdf?tp=&arnumber=1531031&is
number=32667
18. Julio Cesar shampoos do prude liete, ana Paula piano gilvaz: Requirements
Elicitation Driven by Interviews: The Use of Viewpoints. IEEE publications, Page: 85
Year of Publication: 1996.
30
Requirements Engineering: Elicitation Techniques
http://delivery.acm.org/10.1145/860000/858259/73610085.pdf?key1=858259&key2=27
08150121&coll=ACM&dl=ACM&CFID=67531224&CFTOKEN=54899420
19. Amy Voida & Elizabeth D. Mynatt, Thomas Erickson & Wendy A. Kellogg:
Interview over instant messaging. ACM publications, 2004, pages1344-1347.
http://delivery.acm.org/10.1145/990000/986060/p1344voida.pdf?key1=986060&key2=
3618150121&coll=ACM&dl=ACM&CFID=67531224&CFTOKEN=54899420
20. Dimitrics Plexousakis: User requirements report. Cyclades IST - 2000 25456.
An Open Collaborative Virtual Archive Environment
http://www.ics.forth.gr/isl/projects/cyclades/d1_1.pdf
23. Charles F. Manski1 and Francesca Molinari: Skip Sequencing:A Decision Problem
In Questionnaire Design. North-western University and Cornell University, 2008, vol
2, pages 264-285.
http://arxiv.org/PS_cache/arxiv/pdf/0803/0803.3875v1.pdf
26. http://www.cc.gatech.edu/classes/cs6751_97_winter/Topics/quest-
design:Questionnaire Design.Online document.
27. Andriole s.j:Fast cheap requirements prototype: or else. Drexel university, IEEE,
vol 11, issue 2, Mar 19994, pages 85-87.
http://ieeexplore.ieee.org/iel1/52/6703/00268964.pdf?tp=&arnumber=268964&isnumbe
r=6703
31
Requirements Engineering: Elicitation Techniques
http://ieeexplore.ieee.org/iel1/2218/2861/00087760.pdf?tp=&arnumber=87760&isnumb
er=2861
29. Hassan ghoma,Douglas b.h scott: prototyping as a tool in the specification of user
requirements. IEEE, Pages: 333 - 342 Year of Publication: 1981 ISBN:0-89791-146-
6
http://delivery.acm.org/10.1145/810000/802546/p333-
gomaa.pdf?key1=802546&key2=9030250121&coll=ACM&dl=ACM&CFID=6753122
4&CFTOKEN=54899420
33. Stephen Viler & Ian Sommerville: Social analysis in the requirements engineering
process: From ethnography to method.IEEE, 1999, pages 6-13.
http://ieeexplore.ieee.org/iel5/6303/16860/00777980.pdf?tp=&arnumber=777980&isnu
mber=16860
34. Goguen, J. & Linden, C.: Techniques for Requirements Elicitation. 1st IEEE
International Symposium on Requirements Engineering (RE'93), San Diego, USA, 4-
6th January 1993, pp. 152-164.
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=324822
35. W. Lam, J.A. McDermid and A.J. Vickers: Ten Steps towards Systematic
Requirements Reuse. IEEE publications, 1997, pages 6-15.
http://ieeexplore.ieee.org/iel3/4278/12313/00566834.pdf?tp=&arnumber=566834&isnu
mber=12313
32
Requirements Engineering: Elicitation Techniques
41.Julio Cesar Sampaio do Prado Leite a, Gustavo Rossi a, Federico Balaguer b, Vanesa
Maiorana b, Gladys Kaplan b, Graciela Hadad b and Alejandro Oliveros b: Enhancing
a Requirements Baseline with Scenarios.Springer link,vol 2,pages 184-198,2007.
http://www-di.inf.puc-rio.br/~julio/Slct-pub/baseline.pdf
43. Martin Glinz: Improving the Quality of Requirements with Scenarios. Preceedings
of Second World Congress for Software Quality,sept 2000.
http://www.ifi.uzh.ch/rerg/fileadmin/downloads/publications/papers/2WCSQ.pdf
33
Requirements Engineering: Elicitation Techniques
47. Yihwa Irene Liou: Integrating Group Support Systems, Joint Application
Development, and Computer-Aided Software Engineering for Requirements
Specification.IEEE, 1993, vol 3, pages 4-12.
Unhttp://ieeexplore.ieee.org/iel2/449/7027/00284291.pdf?tp=&arnumber=284291&isnu
mber=7027
49. Karel Vredenburg, Ji-Ye Mao, Paul W. Smith, and Tom Carey: A survey of user
centered design in practice.ACM, 2002, pages 471-478.
http://portal.acm.org/citation.cfm?id=503376.503460&coll=ACM&dl=ACM&CFID=6
8830115&CFTOKEN=60008348
34
Requirements Engineering: Elicitation Techniques
56. Belani, H.; Pripuzic, K.; Kobas: Implementing for web surveys for requirements
elicitation.IEEE,vol 2,pages 465-469,2004.
http://ieeexplore.ieee.org/iel5/9871/31386/01458610.pdf?arnumber=1458610
59. Manfred Tscheligi, Peter Frhlich, Verena Giller: Draft Guide: First Steps to User
Centred Design.IST support measures IST-1999-29067, version 1.0,2002.
35
Requirements Engineering: Elicitation Techniques
A. Appendix
SURVEY QUESTIONNAIRE
Preface
The main aim of this questionnaire is to find the different views on requirements
elicitation practices in the industrial level.
How to fill in the questionnaire: Answer all the questions according to your knowledge,
skills and position within your organization.
General Information
Name (optional) :
E- Mail :
Age :
Organization :
Education :
Experience with RE :
Date :
36
Requirements Engineering: Elicitation Techniques
1. Do you like to carry out feasibility study before starting a new project?
11. Tick the methods which are effective for Requirement (your personal opinion,
multiple selections allowed. Use * to indicate your selection)?
a. Interviews ( )
b. Questionnaires ( )
c. Observations ( )
d. Social analysis ( )
e. Prototype ( )
f. Scenario ( )
g. Brain Storming ( )
h. JAD ( )
i. User centered design ( )
12. Tick the popular methods which are used in your companies for requirements
elicitation (multiple selections allowed)?
a. Interviews ( )
b. Questionnaires ( )
c. Observations ( )
d. social analysis ( )
e. prototype ( )
f. Scenario ( )
g. Brain Storming ( )
37
Requirements Engineering: Elicitation Techniques
h. JAD ( )
i. User centered design ( )
11. How much time do you spend for the requirements engineering in a total project
time?
12. Which method you prefer mostly to gather the requirements? Can you give the
Rating for usage of the particular method in the industry level?
a. Interviews ( )
b. questionnaire ( )
c. Observations ( )
d. prototypes ( )
e. Scenarios ()
f. Reuse ( )
g. Brainstorming ( )
h. Jad ( )
i. User centered design ( )
15. Can you provide any general information regarding the different methods of
requirements? (I mean which method will give the good result depends on the project
and the situation).
-----------------------------------------------------------------------------------------------------
--
-----------------------------------------------------------------------------------------------------
--.
38