Abstract:
Requirements elicitation refers to the collection of the wish lists or needs of stakeholders. It is the first and one of the most critical phases of Requirements Engineering. Many techniques have been proposed to support the elicitation process. Each technique has its own strengths and weaknesses. This variation makes it difficult to choose elicitation techniques or their combination for a particular software project. Mostly elicitation techniques are chosen in practice based on personal preferences rather than software project, elicitation technique, and stakeholder attributes. The quality of requirements is highly affected by the elicitation technique we opt and apply. Currently, artificial neural networks (ANNs) are used in numerical paradigms for universal function approximation due to their excellent self-learning properties, adaptive fault tolerance, nonlinear, and input advancement to output mapping. However, ANN has low performance in preparation with large amounts of datasets compared with convolutional neural network. The objective of this thesis was designing a convolutional neural network model for the selection of appropriate requirements elicitation techniques for software projects. The methodological process applied has three components, to address the problem of elicitation techniques selection: literature review has been conducted to identify the attributes affecting elicitation techniques selection and common elicitation techniques, analyzing the attributes identified in the first step to find the influential attributes in the technique selection, and finally, we proposed a convolutional neural network(CNN) based model for selecting appropriate elicitation techniques for a given project. The CNN model helps in reducing human involvement in the process. The proposed model is implemented using Keras (using TensorFlow as a backend) in Python and tested using a sample dataset collected from software developers. The model achieved an accuracy of 89% for training and 89.04% for testing. The proposed CNN model is able to improve the performance of the existing ANN model (only achieved 64.82% training accuracy and 60.33 testing accuracy) by 25%. The proposed model is evaluated by comparing its performance or output to the ground truth data (the data we have in hand). In addition, we also evaluate the proposed CNN model by comparing it with the previously applied ANN model.