Selection of Requirement Elicitation Techniques: A Neural Network based Approach

Requirement Elicitation is key activity of requirement engineering and has a strong impact on design and other phases of software development life cycle. Poor requirement engineering practices lead to project failure. A sound requirement elicitation process is the foundation for the overall quality of software product. Due to criticality and high impact of this phase on overall success and failure of projects, it is very necessary to perform the requirements elicitation activities in a perfect and specific manner. The most difficult and demanding jobs during Requirement Elicitation phase is to select appropriate and specific technique from a wide array of techniques and tools. In this paper, a new approach is proposed using an artificial neural network for selection of requirement elicitation technique from a wide variety of tools and techniques that are available. The training of Neural Network is done by back propagation algorithm. The trained and resultant network can be used as a base for selection of requirement elicitation techniques. Keywords—Requirement elicitation; requirement engineering; neural network; back propagation


I. INTRODUCTION
The process of Requirement Engineering (RE) starts with requirement gathering i.e.; requirements elicitation [1] [2]. Requirement elicitation provides a base for a RE, has a strong impact on the software project success and quality [3]. The first stage in requirement engineering is requirement elicitation that uses various techniques to elicit requirements related to software project from various stakeholders. According to [4] in requirement elicitation process, the meaningful information is collected in the form of requirement from various stakeholder and users. Requirement Elicitation is the collection of requirements; the other terms used in this context are capturing of facts, knowledge acquisition, determination of essentials, gathering of information. Sometimes following terms are used such as identification, invention, development, knowledge discovery, and factfinding. The other terms that have been used are insufficient to represent real meaning, facts, derived knowledge. But now it is well understood and minutely documented and universally accepted that requirements are captured or collected, instead the requirement are elicited [5].Another definition for requirement elicitation is that it is the process of identification of key software requirements that are elicited from various elicitation techniques such as formal interviews, brain storming, model workshops, workflow analysis and other techniques [6]. "Requirement elicitation refers to as the process as trawling for requirements". During requirement elicitation, requirements are elicited in consultation with different stakeholders. The stakeholders, as they are distinct individuals, they have their specific means to recognize and store the knowledge. They express their knowledge about the problem domain in their unique way; a single method as suggested by other researchers will not be sufficient enough to elicit requirements in requirement elicitation phase from different sets of stakeholders [7]. However, it is a well-known fact that if requirement are not properly elicited then it will lead to failure of software product. To improve the success rate of software projects requirement elicitation process should be followed minutely and effectively [8]. Requirement Elicitation can be considered as a prerequisite for all other software development activities. It signifies that the developed software product is of good quality and will work properly according to the expectation [3]. The success and failure of the project is dependent on the quality of requirements that are gathered. Software's project success and failure depends upon requirement elicitation specially selection of requirement elicitation techniques [9]. It is established fact that process of software requirement elicitation has a major and decisive impact on quality of the final product [10] [11]. The main goal of effective requirement engineering is to develop a software product in such a way that fulfills all the customer needs budget, cost and schedule. Many surveys and research have been analyzed to investigate the major cause of software project failure and their statistics. Standish reports [12] suggest that rate of success of software project is 28% only. The major factor for such low rate of software successful software is imprecise and unclear requirements [13]. Another survey suggests that only 12.7% out of (nearly) thousand software projects were successful. According to survey main reason for the software project failure was unclear and incomplete requirements [14]. These survey and reports also suggests that for successful requirement engineering, requirement elicitation phase should be carried out in such a way that all the effective requirements are gathered which lead to the successful software projects. In [15]author suggests that 90% of large-scale software projects are failure due to poor requirement engineering specially requirement elicitation. This work was reflection of [16]according to author "poor software requirements management can lead to 71% percent of software projects failure; greater than badly used technologies, slipped deadlines and change management. The cost of software project failure is high". Researchers also suggest that 70% of the total software errors and bugs are due *Corresponding Author. 351 | P a g e www.ijacsa.thesai.org to poor requirements gathering and remaining 30% are due to poor and faulty design. It is well documented from various surveys and researchers that requirement elicitation phase has a major impact on software product quality [17]. The most important and critical task in requirement elicitation is requirement elicitation technique selection from a wide varieties of techniques[ [18]. Hence there is need to understand requirement elicitation techniques, also the application of requirement elicitation techniques for successful requirement elicitation in requirement engineering phase of SDLC [19].
Many frameworks define requirement elicitation process, or describe specific elicitation technique which is performed during requirement elicitation. But none of framework proposed by various researchers has defined a unified model for the requirement elicitation process. That takes into consideration, the basic issues and the knowledge required for effective elicitation of requirements from various stakeholders. Requirement elicitation framework suggested by various researchers are theoretical and there is lack of mathematical knowledge [19]. An efficient framework is required for effective requirement elicitation. There are various techniques of elicitation but how to select the appropriate techniques from a set of techniques is the real challenge. The elicitor must decide which technique is best suited for specific situation from set of techniques [20]. Inappropriate selection of elicitation technique leads to gathering of faulty requirement which results in project failures. Because of variety of stakeholder or rather non homogeneity of stakeholders, process of requirement elicitation must be carried out effectively by applying the appropriate elicitation techniques. In this research paper important key factors are identified from various researchers and practitioners of software industries that directly or indirectly contribute towards selection of techniques of requirement elicitation. These factors are fed as input to neural network and the intelligent approach is applied for requirement elicitation technique selection from a set of various techniques and tools.

II. RELATED WORK
During requirement elicitation phase or requirement engineering the level of scope for the system need to be established. The details regarding the needs and requirement of key stakeholders should be investigated using variety of elicitation techniques. Requirement elicitation technique is related to eliciting of requirements of the organization within the organization environment including project goals, project rules, processes work flow, various assumptions market, constraints along with details of implementation. In [21] researches suggest that it is important to elicit different types of information during elicitation process. To have the complete knowledge of the systems including all the details of current and existing system in a specific domain, along with the current list of existing requirement engineering problems their goals including issues, ideas and risk. This is known as perspective of concept modeling. In this modeling elicitation of requirements is done for processes, data and behavior of large-scale software projects [22]. This model is also supported by SA/SD view of large-scale software project [23].
The important components of the elicitation process are priority, source and rationale of the software requirements along with the goals [24].Each elicitation technique has some key features and also some limitations [25], Interview is most common and natural elicitation technique [25], there is no support for this elicitation process and even no specific guideline for eliciting requirements [26]. In researcher suggested that there is no elicitation techniques that provides detailed description of the problems [27]. Suggested that there are two types of requirement gathering techniques firstly the techniques that are less expensive as well as information provided by them is less [28] [29]. Secondly the techniques those give favorable result but are expensive. The elicitor may be well versed with some elicitation techniques but no one elicitation technique is able to elicit all the requirements entirely [30]. Hence more than one requirement elicitation technique is used to capture the requirements for software systems. Because of wide range of elicitation techniques, it is therefore possible to use alternatively available requirement elicitation techniques in different scenarios with enriched flexibility, providing more options to the elicitor.
The elicitation techniques are informal in nature that deeply involves human interaction. Group work is one technique that is effective as it involves groups and is able to deal with complex scenarios such as elicitation process. This is far better than individuals because each individual is unique and possesses wide range ability. Group work techniques are better in gathering of requirement as they involve stakeholder and customers. It fosters discussion, generation of ideas and fact-finding solution. The major benefit of Requirements Workshops is that they glue well techniques of elicitation. The group techniques are important in eliciting requirements because software engineering is a group activity [31] [32]. In [33] suggests that one to one interview is the most suitable method for requirement gathering. In [34] researchers suggest that workshop is most suitable technique for small scale software projects whereas [35] suggest that DSDM is suitable for large scale software projects. In [36] researchers provide guidelines for effective requirement elicitation technique selection.
The works done in [37] [38][39] [40] suggests novel approaches for elicitation of requirement. The above researchers proposed many process models for elicitation of requirement over the period of time [40][41] [42]. Mentioned approaches provide us flexibility and take into consideration the individual software projects. The approaches do not provide guidelines as number of tasks are performed during elicitation phase. Many problems are faced by elicitor as there are many techniques available to make the software development task simple. The elicitation is carried out over different sessions to capture every detail in parallel with Software Development Life Cycle process. The author in [43] suggests that elicitation involves the understanding of both problem and business domain of the large organization and also to find out how the system works along the understanding of the application domain of the current working software project. In [44] recommends that object setting, knowledge acquisition and requirement gathering from stake holder are requirement for a standard elicitation process. 352 | P a g e www.ijacsa.thesai.org In [45]researchers suggested a step wise approach using the ISO 9126 quality characteristics as a guideline for the requirement elicitor to capture social, organizational and human factors that can improve overall quality of software product. In [46] researchers suggested the analytic network process, based on multi-criteria decision making for requirement elicitation technique selection. In [47] researcher analyzed for IT professionals the cognitive structure based on various factors that directly affect the use of the laddering as requirement elicitation techniques selection. In [48] researcher suggests that interview is best technique for requirement elicitation technique selection. The results of elicitation are analysed using children education application as case study. The outcome of this research is interview along with prototyping method of requirement elicitation technique selection are the most suitable methods. Although there are various framework and guidelines for requirement elicitation technique selection till date but most of them are theoretical in nature and lacks mathematical concepts. We required a more effective and intelligent approach that provide researchers with detailed guidelines for carrying out elicitation technique selection process empirically.

III. PROBLEM DEFINITION AND SCOPE
The software projects failure is main issue of the software development industry. Researchers had tried to investigate the cause of failure in software projects failure statistically. Empirical research in organizations has demonstrated that requirement engineering process which is well defined has a positive impact on the quality, cost of software developed as compared to projects that do not follow well defined process models. Chaos Report suggests the problems of delay in software development, over-budget software and failed software are major concerns for software industry. To develop high quality software is also one of the concerns. Some researcher suggests that the poor requirement elicitation led to 50% of the total failure of software project. Significant efforts have been made in requirement elicitation research; there exist gap between theory and actual practice. In order to improve success rate in software developed an efficient and effective approach is needed for requirement elicitation. In Elicitation process there are number techniques available still it is difficult for requirement elicitor to decide which technique is most suited for the task [13] [14]. It is due to inability to understand the available techniques. This inability to understand the technique leads to improper selection of requirement elicitation technique which leads to project failure. So, it is imperative for requirement elicitor to know about the existing requirement elicitation techniques [2] [8]. Although elicitors have a number of elicitation techniques at their disposal still flexible guidelines for effective approach of requirement selection are needed, which are beneficial in selection of appropriate elicitation techniques [6].  Table I.

A. Software Project Scaling
Software Project Scaling can happen in Man-hours, codesize, number of interfaces, number of requirements and cost. Scaling happens with headcount, as large numbers of developers are required to develop large software hence more developers should produce more code. The size of products is proportional to size of the code. Many products can be developed simply by rearranging the code. Or in other words several products can be developed from the single product. On the other hand, if a single-person develops the software then the cost of mistakes is usually lesser. Software developers usually take shortcuts to achieve their goals. In small software projects developer and manager is a same person. In large software projects, the roles are distributed among many persons hence there is the need for coordination. So from the above discussion it is justified that software can be classified into small scale software and large scale software. The classification is based on the following Attributes described in the Table II. There are varieties of Elicitation Techniques but the challenge is to select the right one from a wide variety of requirement elicitation techniques. To select the evaluating factors for selection of requirement elicitation techniques, literature was surveyed intensively and professionals working in different software houses were consulted.
After literature survey and discussion with professionals, 9 evaluating factors are identified which play important role while requirement elicitation technique selection. The impact of evaluating factor for selection of requirement elicitation techniques are studied and documented for small scale & large-scale projects. The selection of requirement elicitation techniques in small scale and large-scale projects based on the evaluating factors are shown below in Table III and Table IV. Neural Networks possess the computing capability of the brain of human. The neural network consists of computational units that are functionally similar to neurons that are there in the human brain. A neural network is composed of several layers of neurons. Every neuron performs calculative work that will contribute to the learning of the neural network. Neurons consist of activation function, synaptic weights and an adder. If x j is the input to neuron named i then w ij is the synaptic weight that is related with neuron and input signal. In a multi-layer feed forward neural network there is a layer that is used for input for non-computational units. There are several layers of computational units that are hidden. Lastly there is output layer that consists of computational units. For the training of multi-layer feed forward network, Back propagation is used. This algorithm forwards the input signal and backward the error signal through the network. Multilayer feed forward neural network solves complex problems and back propagation method is used to train the network. In requirement elicitation the requirements are elicited from various sources using various elicitation techniques. There are wide varieties of elicitation techniques the major challenge is to select the appropriate elicitation technique which provides support to the elicitor and also understanding their needs and requirements [7]. Many of the elicitor think that only one of the elicitation technique is used in all types of projects and applicable to all situations, but one elicitation technique is not sufficient for all types of projects and situations [1][2] [3][4] [5]. In requirement elicitation elicitor selects a particular elicitation technique from a set of techniques for one reason or the other. (1) The elicitor is well versed with only one specific technique. (2) In all the situations the elicitor's favours that technique. (3) The elicitor uses a particular methodology, and the methodology is supported by a particular technique. (4) The elicitor understands spontaneously that the elicitation technique is efficient for current circumstance. From the above discussion it is evident that the fourth reason is mostly supported by the elicitor. Here neural network approach is applied for selection of requirement elicitation technique and implemented using MATLAB NNtool [11] as shown in Fig. 1.

A. Proposed Algorithm: Neural network-based model for Requirement Elicitation Technique:
RequirementElicitation( )

B. Description of Algorithm
Method followed for selection of Requirement Elicitation Technique. Table III and Table IV of requirement elicitation  techniques along with their impact areanalyzed for both small  scale projects &large-scale projects. 2) Matrix A is obtained from Table III and matrix B is  obtained from Table IV.  The neural network (Requirement Elicitation) is created. Feed forward Back propagation is the network type. The input range is [0,1;0,1] and the Training Function TRAINLM. LEARNGDM is used as Adaptation learning function. MSE is used as performance function total no of layers is 2. Finally, the requirement elicitation neural network is trained and training results are generated. Requirement elicitation neural network is simulated.

VII. ANALYSIS OF RESULT
The Result is analyzed as '1' in the output vector will corresponds to the elicitation technique being used for the evaluating factor of requirement elicitation and '0' in the output vector corresponds to the technique being discarded for the given evaluating factor of requirement elicitation as shown in Matrix R. The result of neural network for selection of requirement elicitation technique is shown in matrix R From the above findings weight count (Wc) is assigned to each of the corresponding elicitation technique as shown in the Table V. A scale of 2-10 is assigned to each technique. The technique with highest weight count will be the most effective technique of requirement elicitation and lowest count is least effective. Table V conclude that Interview is the most effective technique for requirement elicitation and workshop is the second efficient technique for requirement elicitation. Interview is most effective technique that starts with a set of pre-defined questions. The most preferred and easy technique to gather requirements from different set of stakeholders is Interview. Interview is the elicitation technique which provides a support to understand the problem domain of the existing system. The most formalized and pragmatic technique for requirement elicitation is Workshop and brainstorming. Brainstorming and workshop session provide ideas that are well suited on voting technique and/or other criteria. The most expensive technique for requirement elicitation is Prototyping as compared to other elicitation techniques. The best technique for data collection from a mass variety of sources is Questionnaire which is also cost effective. The most recommended elicitation technique for complex and critical requirements is Scenario. This will help to remove any ambiguity in the requirements. Scenarios are also effective for the projects which have to be completed in short time window or the projects in which process improvement is needed. There are various elicitation techniques out of these techniques the elicitor selects the techniques that fit perfectly into the software projects. In this paper an approach is proposed for requirement elicitation technique selection and used this as base for selecting the combination of elicitation techniques that is best suited for effective requirement elicitation. The study suggests that single elicited techniques are generally used for requirement elicitation process, but combination of elicitation techniques for requirement elicitation process gives better result. There are various combinations of techniques denoted by T c1 ,T c2 ,T c3 ….T cn , the combination with high score as defined in the neural network approach for selection of requirement elicitation technique which is best suited for efficient requirement elicitation. As per the findings and the scores calculated in Table VI, appropriate techniques selection is done. From the findings in most cases, T c2 the techniques combination with the highest score is selected according to the case study. If there are no other factors that are to be considered in the final decision making then T c2 will be the final choice of the requirement elicitation techniques selection. These combined requirement elicitation techniques are selected for effective requirement gathering in software projects.

Results shown in
If new evaluating factor Ev added in further studies of projects the condition still holds the same.

A. Statistical Analysis of Proposed Approach
In addition to the theoretical validation, an experimental statistical analysis is equally important in order to make the claim acceptable. In view of this fact, a statistical validation is performed to assess the performance of the proposed framework. One way ANOVA test is implemented using SPSS tool for statistical validation of requirement elicitation technique selection approach. In one way ANOVA only one factor is considered and investigated to find the differences amongst its various sample categories having numerous possible values. In this work evaluating factors Ev are used as factors defined in the table. There are total 9 factors and their values are shown in the Tables III and IV. SPSS tool is used for implementing ANOVA test on two set of Sample data. One set sample data for small scale project and other set of sample data for large project considering evaluating factors. Result obtained from small scale projects while considering three evaluating factor Ev for selection of requirement elicitation technique and for large scale projects considering six evaluating factors for the same. The conclusion drawn from the results shown in Fig. 4 and 5, is that in samples (small scale & large scale project) the value of p < .05 (For small scale projects p = .009 and for large scale projects p = .001) and the value of F in both samples is greater than the tabular value (F= 8.575 for small scale and F = 7.713 for large scale) means that there is significance difference between the groups. If there is significance difference between groups in small scale and large-scale projects, then there is sufficient evidence to prove that evaluating factors defined in both types of projects for selection of requirement elicitation technique are sufficient.

VIII. CONCLUSION
In requirement elicitation there are varieties of elicitation techniques but the challenge for the elicitor to select the effective technique or a combination of technique which is most suited for problem domain, stakeholders, project type, organizational structure and project to be developed. In this paper an approach using neural network is proposed for selection of requirement elicitation techniques from a large array technique. If the elicitor follows the proposed approach the problem related to selection of elicitation technique is minimized and effective requirements are elicited.