Litcius/Paper detail

Non-Functional Requirements Classification Using Machine Learning Algorithms

Abdur Rahman, Abu Nayem, Saeed Siddik

2023International Journal of Intelligent Systems and Applications10 citationsDOIOpen Access PDF

Abstract

Non-functional requirements define the quality attribute of a software application, which are necessary to identify in the early stage of software development life cycle. Researchers proposed automatic software Non-functional requirement classification using several Machine Learning (ML) algorithms with a combination of various vectorization techniques. However, using the best combination in Non-functional requirement classification still needs to be clarified. In this paper, we examined whether different combinations of feature extraction techniques and ML algorithms varied in the non-functional requirements classification performance. We also reported the best approach for classifying Non-functional requirements. We conducted the comparative analysis on a publicly available PROMISE_exp dataset containing labelled functional and Non-functional requirements. Initially, we normalized the textual requirements from the dataset; then extracted features through Bag of Words (BoW), Term Frequency and Inverse Document Frequency (TF-IDF), Hashing and Chi-Squared vectorization methods. Finally, we executed the 15 most popular ML algorithms to classify the requirements. The novelty of this work is the empirical analysis to find out the best combination of ML classifier with appropriate vectorization technique, which helps developers to detect Non-functional requirements early and take precise steps. We found that the linear support vector classifier and TF-IDF combination outperform any combinations with an F1-score of 81.5%.

Topics & Concepts

Computer scienceArtificial intelligenceClassifier (UML)Functional requirementSupport vector machineMachine learningNon-functional requirementSoftwaretf–idfVectorization (mathematics)Hash functionData miningAlgorithmSoftware developmentTerm (time)Software engineeringPhysicsQuantum mechanicsSoftware constructionComputer securityProgramming languageParallel computingSoftware Engineering ResearchSoftware Engineering Techniques and PracticesAdvanced Malware Detection Techniques