Classification and Prioritization of Requirements Smells Using Machine Learning Techniques

Fekerte Berhanu, Esubalew Alemneh · 2023

Software requirements are a description of what the software is expected to do and behave. Specifying requirements in natural language might face difficulties like clarity, inaccuracy, ambiguity, incompleteness, vagueness etc. An indicator of such problems in requirements are technically termed as requirement smells. They need early detection and rapid response to ensure the quality of requirements. However, previous requirement smells detection approaches have scalability and flexibility problems, and poor performance. In addition, there is a gap on prioritizing detected requirement smells to take an appropriate action based on the order. In this study, we address the gaps by developing a Machine Learning (ML) based approach for the classification and prioritization of requirement smells. We have collected 3100 requirements and labeled them by experts. To prioritize requirements smells, we have used requirement smells severity level collected from experts and requirements importance level from Software Requirement Specification (SRS) document. Then, textual requirements were preprocessed using Natural Language Processing (NLP) techniques, and features were extracted using TF-IDF and BOW. We have used 80/20 train-test split ratio. For both classification and prioritization model building, commonly used classification algorithms LR, NB, SVM, DT, and KNN were applied and their performance is compared. Moreover, we have also used an additional sorting method for prioritizing requirement smells detected from a single project. As a result, LR with TF-IDF achieved highest performance with 94% accuracy for requirement smells classification. For requirement smells prioritization, SVM outperformed other algorithms with 99% accuracy.

Read the paper · More papers on PaperTik