Assessment of Requirement Elicitation Tools and Techniques by Various Parameters
Mateen Ahmed Abbasi, Javeria Jabeen, Yasir Hafeez, Dur-e-Benish Batool, Naila Fareen
PMAS-University of Arid Agriculture, UIIT Rawalpindi, Pakistan
To cite this article:
Mateen Ahmed Abbasi, Javeria Jabeen, Yasir Hafeez, Dur-e-Benish Batool, Naila Fareen. Assessment of Requirement Elicitation Tools and Techniques by Various Parameters. Software Engineering. Vol. 3, No. 2, 2015, pp. 7-11. doi: 10.11648/j.se.20150302.11
Abstract: Software development cycle is based on the software requirements. Requirement elicitation is first and most important activity in the requirement engineering. If the requirements are efficiently elicited and managed then the stakeholders application can be accomplished within time and budget. If the requirements are not complete, consistent and correct then projects fail because they not meet the user needs. Requirement is define as the needs of customer. Requirement elicitation techniques and tools are used for correct and complete requirement gathering. Many requirement elicitation techniques and tools are available. This study based on the understanding of requirement gathering techniques and tools. The paper also summarizes the comparison of the requirement elicitation techniques and software requirement tools. Comparison of requirement elicitation techniques and tools are based on the various parameters.
Keywords: Software Requirement Engineering, Requirement Elicitation, Requirement Tools
Software Requirement deals with the needs of end user of the software and the needs of the stakeholders. Software requirement is the condition required by the user to achieve a goal or objective. Communication and association between the stakeholders for the success of the software requirement is very essential . Requirement elicitation is first and most important activity in the software requirement engineering. Early days requirement phases not take seriously due to this reason many project fail and not fulfill the customer needs. Requirement elicitation is also called requirement gathering. In this phases ensure that requirements are complete and correct and also define scope of the project. When Requirements are complete and correct then it’s prove that developed application is quality product and fulfill the user needs. Requirement gathering has many techniques and tools. In this paper discussed requirement gathering techniques are Interviews, Surveys, Questionnaires, Domain Analysis, Card sorting, Laddering, Repertory Grids, Group Work, Brain Storming, JAD, Prototyping, Workshop, Protocol Analysis, Scenarios, Ethnography, Direct Observation, Passive Observation. Software requirement tools discussed are Rational, RequisitePro, Objectiver, CaseComplete, RMTrak, Optimal Trace, Analyst Pro, Dynamic Object Oriented Requirements System (DOORS), and Generic Model Approach to Requirements Capture (GMARC). This study gives the comparison of the requirement elicitation techniques and software requirement tools. This paper is structured into five sections. This section gives introduction of requirement engineering and its process, in the II section give the literature review, and in the III section give comparison of the requirement elicitation techniques and software requirement tools. Discussion is summarized in the IV section. Conclusion and future work of this research is presented in the last section.
The core activities in requirement engineering are
• Requirement Elicitation
• Requirement Analysis
• Requirement Implementation
• Requirement Documentation
• Requirement Validation
1) Requirement Elicitation: Elicitation is the process of gathering data or information from the end user or stakeholder. 
2) Requirement Analysis: In Requirement Analysis the information gathered in elicitation phase is breakdown for exact understanding of stakeholders needs. 
3) Requirement Implementation: Requirement Implementation is the recognition or execution of the software
4) Requirement Documentation: In requirement Documentation the elicited data is documented and stored in document form for the future use for the implementation of the software.
5) Requirement Validation: Requirement validation is the confirmation of the software as per end user demand or stakeholders needs.
Requirement elicitation techniques define scope of the project and gather user requirement. Requirement elicitation techniques are tool use the exact understanding of the system. Requirement elicitation techniques are divided in two types direct and indirect. 
Requirements describe aims, purpose, and limitations of a software system. Advantages and disadvantages of these Requirement elicitation techniques are given interview, Workshop, focus groups, Brainstorming, Scenarios, passive Storyboards, Prototyping. Better technique selection improves the quality of the requirements gather and increases the chances of the success of the product. Requirement prioritization techniques help to choose high priority requirement. Many requirement prioritization techniques advantages and disadvantages are given in this way chose high priority requirement first and reduce the resources the project. 
RE techniques and tools to elicit requirements largely depends on several factors like project are, type of the system being developed and present status of the project etc. survey of the literature prove that many elicitation techniques and tools are available each has its own pros and cons. Use the combination of the requirement elicitations techniques to gather correct requirement and experiences matter in requirement elicitation phase. 
The requirements elicitation process involves all stakeholders. Stakeholders are the people who involve directly or indirectly participate in the system. According to the communication requirement gathering is divided into 4 types: observational, analytic, synthetic and conversational. According to this research Interviews are most efficient way for requirement gathering. 
Comparison of the Requirement tools which elicit functional and nonfunctional requirement. Each tool has its own features and limitations. According to this research paper DOORS (Dynamic Object Oriented Requirements System) one best tool for functional and nonfunctional requirement. CodeAssure is best tool for security requirement. 
3. Comparative Study
Comparative study is divided into two sections. First section discusses about requirement tools and its comparison and the next section explain requirement elicitation techniques and its comparison.
3.1. Requirement Tools
1) RequisitePro: The IBM Rational RequisitePro solution is a widely used and familiar Microsoft word tool to ease requirements based on use case model for software development teams focus on improvement of the objectives maximize the quality standard of the orject and minimize the threats before the handover of the system .
2) Objectiver: The tool allows stakeholder to take global overview of the system and all the models which demonstrating the system. The tool has possibility to draw the diagram and define concepts of the system and relationship over those concepts. Define models and diagrams are explaining using text document, these documents help in the gathering requirement of the system.
3) CaseComplete: The Casecomplete tool is used to edit the textual portion of use cases and provide the ability to create the various types of diagrams including use case diagrams.
4) RMTrack: The tool is designed with two primary features. First, it allows its users to create their documents as they usually do while adjusting to their needs. Secondly, it keeps the important information in the document themselves. RMTrak allows managing the development projects requirements.
5) Optimal Trace: Optimal Trace helps requirement engineers to get improved requirements and deliver applications that are precisely aligned with business need. Optimal trace permits integrating with the outer design tools. Optimal trace also provides document profiles facility containing the requirements document templates and allows one to create profile and templates.
6) DOORS: Dynamic Object Oriented Requirements System (DOORS) is used for traceability management. DOORS tool is used as document management software. 
7) Analyst Pro: Analyst Pro is a management tool which facilitate you to deal with the vision of the project. Manage scope of the system using classification of the requirements and artifacts. 
8) GMARC: Generic Model Approach to Requirements Capture(GMARC) integrates a completely developed Requirements Engineering approach and gives quick gathering of requirements by a generic methodology to increase re-usability and encourage standardization across projects.
In this section parameters are define which are used for assessment of the tools.
1) Glossary: It defines the different terminologies with same and different meanings. Glossary reduces the misunderstanding in the requirement management phase. Glossary is used to describe the different terms discussed in the project.
2) Templates: Template is defined as user requirement in structured format and written in natural language. Template table filled by the development team and its structure is predefine.
3) Traceability: Traceability track every change made to the requirement and link them throughout the requirement process. It is the relation between two requirements that imply derivation and needs among the artifacts.
4) Tool Integration: Tool integration in the feature incorporating one tool to another. Tools help project team to manage their requirement to write down use case and to improve the traceability and to decrease rework and to increase the quality. Graphical Representation: By the help of graphical representation requirement can be easily identified and data can be easily compared and helps to save time and budget.
5) Documentation Support: Every tool should generate a well structured and standard documentation for the requirement management. This requirement documentation helps to manage the complete development process.
6) Graphical Representation: By the help of graphical representation requirement can be easily identified and data can be easily compared and helps to save time and budget
7) Checklist: Checklist is the verification of the requirements and ensures that the requirements are complete correct and consistent in the project.
8) Scalability: Scalability is the characteristic of the tool to accommodate large number of the user requirements according to the project’s needs.
Table 1. Show the analysis of the software requirement tools. Tick symbol (þ) show the parameter exists in the tool. Cross symbol (ý) is used to show that parameter not in this tool.
3.3. Requirement Elicitation Techniques
Requirement elicitation techniques are divided into four categories. Every technique has own strengths and weakness. In requirement elicitation phase mostly use two or more techniques at a time for gathering requirements.
3.3.1. Classic/Traditional Techniques
a) Interviews: The interview predictor discusses the requirement of the product and gets all-inclusive view of the entire system. The purpose of the interview is to investigate and understand how the expert selects the requirement engineering process. 
b) Surveys: The Technique of survey is used to get maximum requirements from different people that may be at different locations. Surveys are inexpensive and wanton to analyze data from large amount of population. 
3.3.2. Cognitive /Analytical Techniques
a) Card sorting: Card sorting is a technique in which cards are provided to the client according to the name of domains entity. Card sorting shows how much customer has knowledge of the domain. 
b) Laddering: In laddering limited set of standard are asked to the customer. The questions are set in hierarchical order. The accomplishment of laddering is depending upon domain knowledge of the customer.  
c) Repertory Grids: The aim of the Repertory grid is to identify the resemblance and dissimilarity among the different domain units. This technique is used when eliciting the detailed data or requirement from the experts. 
3.3.3. Modern and Group Elicitation Techniques
a) Brain Storming: In Brainstorming every member can express his own idea about the product and is very effective brainstorming is commonly used to build the most important verdict about the product.
b) JAD: Joint Application Development involves available stakeholders inspecting through common conversation. In the joint application development meetings are held on the demand of the product.  
c) Prototyping: It is initial product version which is prepared for getting feedback from stakeholder and make sure changes are incorporate in the next version.
3.3.4. Social Analysis
a) Ethnography: Ethnography is the situation to interact the stakeholders to check out the political environment inside the organization. The term ethnography is viewed as the technique which endeavors to identify a firm condition as it is perceived by the stakeholders of that situation in the requirement elicitation.
b) Direct Observation: Direct Observation is carried out with the direct involvement of the observer in the society. The observer s encourages people to work with the existing product to perform the operations on the product. The observer provides the domain knowledge to the user and makes the report of the requirements of the people by observing their day to day work with the product.
c) Passive Observation: Passive Observation is carried out without the 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 documentation of the problem and requirement are prepared from the recorded data.
|Techniques of Requirement Elicitation||Direct/Indirect||Qualitative/Quantitative Data||Communication||Understanding the Domain|
|Classic/Traditional Techniques||Interviews||Direct||Qualitative Data and Quantitative Data||Single-directional with the exception of interviews||Yes|
|Surveys||Indirect||Quantitative Data and Qualitative Data||Single-directional with the exception of interviews||Yes|
|Questionnaires||Indirect||Quantitative Data||Single-directional with the exception of interviews||Yes|
|Cognitive /Analytical Techniques||Card sorting||Indirect||Quantitative Data||Single- and Twodirectional||Yes|
|Laddering||Indirect||Qualitative Data & Quantitative Data||Single- and Twodirectional||Yes|
|Repertory Grids||Indirect||Qualitative Data& Quantitative Data||Single- and Twodirectional||Yes|
|Modern and Group Elicitation Techniques||Brain Storming||Direct||Qualitative Data||Twodirectional||Yes|
|Social Analysis||Ethnography||Direct||Qualitative Data||Single- and Twodirectional||Yes|
|Direct Observation||Direct||Qualitative Data||Single- and Twodirectional||Yes|
|Passive Observation||Indirect||Qualitative Data||Single- and Twodirectional||Yes|
4. Discussion and Result
Requirement is the main phase in the software development lifecycle. Requirement elicitation main focuses on requirement gathering, this phase ensure that requirements are correct complete and consistent. Many software requirement tools are available which use in elicitation, design, management of the requirement. This study evaluates the software requirement tools and requirement elicitation techniques based on various parameters. Comparison of the requirement elicitation techniques based on these parameters such as type of the elicitation technique (Direct or indirect), type of the data (quantitative or qualitative data), communication and understanding of the domain. In requirement elicitation phase mostly use two or more techniques at a time for gathering requirements. Hybrid (combination of two or more) requirement elicitation technique explores more requirements. Using hybrid technique if requirement is not explored in one technique then gathers through another technique. Tools which are used for analysis are RequisitePro, Objectiver, CaseComplet, RMTrack, Optimal Trace, Analyst Pro, DOORS, GMARC. Fig. 1. shows assessment of the tools based on these parameters Glossary, Templates, Traceability, Tool Integration,
Documentation Support, Graphical Representation, Checklist and Scalability. According to these parameters objectiver is best tool of software requirement.
Requirement elicitation is the first and most critical phase in the requirement development process. Requirement elicitation main focuses on requirement gathering, this phase ensure that requirements are correct complete and consistent. Many software requirement tools are available which use in elicitation, design, management of the requirement. According to the Table-1 and Fig.1, we can conclude that Objectiver is the best tool. Requirement elicitation technique has own strengths and weakness. In requirement elicitation phase mostly use two or more techniques at a time for gathering requirements. According to our study result, we advise that the more effort is needed in the area of requirement Engineering. We Hope that the result of our study helpful to the developer to develop accurate requirement tools. The future work of this research is to add more tools, techniques, parameters and assign weight to these parameters, then evaluate these tools and techniques.