dc.description.abstract |
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 quality problems on
requirement is technically termed as requirement smells. Requirement smells are used to
assess the quality of requirement and it needs early detection and rapid response. However,
existing requirement smells detection approaches have scalability and flexibility issue, and
poor performance. In addition, there is a gap in prioritizing detected requirements smells
to take appropriate action accordingly. In this study, we address the gaps by developing a
Machine learning (ML) based approach for the classification and prioritization of
requirements smells. We have prepared 3100 requirements and they are labeled by experts.
To prioritize requirements smells, we have used requirement smells severity level collected
from experts and requirements importance level from the Software requirement
specification (SRS) and with the help of MoSCoW prioritization rule. 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 outperformed with 94%
accuracy for requirement smell classification. For requirement smells prioritization, SVM
outperformed other algorithms with 99% accuracy. Furthermore, smell priority has a
positive correlation with smell class, smell severity level, and requirements importance
level with 0.43, 0.8, and 0.48 values respectively. In the future, we plan to investigate and
discover new requirement smell categories and prioritize requirement smells based on the
number of smells that will happen in a single requirement.
Keywords: software requirement, requirement smell, Machine Learning, NLP, smell
priority, requirement smells severity, requirements importance level. |
en_US |