2 research outputs found
A Framework to Automate Requirements Specification Task
Requirement identification and prioritisation are two principal activities of the requirement engineering process in the Software Development Life cycle. There are several approaches to prioritization of requirements identified by the stakeholders. However, there is a need for a deeper understanding of the optimal approach. Much study has been done and machine learning has proven to help automate requirement engineering tasks. A framework that identifies the types of requirements and assigns the priority to requirements does not exist. This study examines the behaviour of the different machine learning algorithms used for software requirements identification and prioritisation. Due to variations in research methodologies and datasets, the results of various studies are inherently contradictory. A framework that identifies the types of requirements and assigns the priority to requirements does not exist. This paper further discusses a framework for text preparation of requirements stated in natural language, type identification and requirements prioritisation has been proposed and implemented. After analysing the ML algorithms that are now in use, it can be concluded that it is necessary to take into account the various types of requirements when dealing with the identification and classification of requirements. A Multiple Correlation Coefficient-based Decision Tree (MCC-based DT) algorithm considers multiple features to map to a requirement and hence overcomes the limitations of the existing machine learning algorithms. The results demonstrated that the MCC-based DT algorithm has enhanced type identification performance compared to existing ML methods. The MCC-based DT algorithm is 4.42% more accurate than the Decision Tree algorithm. This study also tries to determine an optimisation algorithm that is likely to prioritise software requirements and further evaluate the performance. The sparse matrix produced for the text dataset indicates that Adam optimisation method must be modified to assign the requirement a more precise priority. To address the limitations of the Adam Algorithm, the Automated Requirement Prioritisation Technique, an innovative algorithm, is implemented in this work. Testing the ARPT on 43 projects reveals that the mean squared error is reduced to 1.34 and the error cost is reduced to 0.0001. The results indicate an 84% improvement in the prioritisation of requirements compared to the Adam algorithm
Semi-automated Software Requirements Categorisation using Machine Learning Algorithms
Requirement engineering is a mandatory phase of the Software development life cycle (SDLC) that includes defining and documenting system requirements in the Software Requirements Specification (SRS). As the complexity increases, it becomes difficult to categorise the requirements into functional and non-functional requirements. Presently, the dearth of automated techniques necessitates reliance on labour-intensive and time-consuming manual methods for this purpose. This research endeavours to address this gap by investigating and contrasting two prominent feature extraction techniques and their efficacy in automating the classification of requirements. Natural language processing methods are used in the text pre-processing phase, followed by the Term Frequency ā Inverse Document Frequency (TF-IDF) and Word2Vec for feature extraction for further understanding. These features are used as input to the Machine Learning algorithms. This study compares existing machine learning algorithms and discusses their correctness in categorising the software requirements. In our study, we have assessed the algorithms Decision Tree (DT), Random Forest (RF), Logistic Regression (LR), Neural Network (NN), K-Nearest Neighbour (KNN) and Support Vector Machine (SVM) on the precision and accuracy parameters. The results obtained in this study showed that the TF-IDF feature selection algorithm performed better in categorising requirements than the Word2Vec algorithm, with an accuracy of 91.20% for the Support Vector Machine (SVM) and Random Forest algorithm as compared to 87.36% for the SVM algorithm. A 3.84% difference is seen between the two when applied to the publicly available PURE dataset. We believe these results will aid developers in building products that aid in requirement engineering