Using Machine Learning for Non-Functional Requirements Classification: A Practical Study

  • Daniel Abella C. M. de Souza UFCG
  • Danyllo Albuquerque UFCG
  • Emanuel Dantas Filho IFPB
  • Mirko Perkusich UFCG
  • Angelo Perkusich UFCG


Non-Functional Requirements (NFR) are used to describe a set of software quality attributes such as reliability, maintainability, and performance. Since the functional and non-functional requirements are mixed together in software documentation, it requires a lot of effort to distinguish them. This study proposed automatic NFR classification by using machine learning classification techniques. An empirical study with three machine learning algorithms was applied to classify NFR automatically. Precision, recall, F1-score, and accuracy were calculated for the classification results through all techniques. The results showed that the SGD SVM classifier achieves the best results where precision, recall, F1-score, and accuracy reported were 0.66, 0.61, and 0.61.

Palavras-chave: Non-Functional Requirements, Classification, Machine Learning, Text Analysis


G Boetticher. 2007. The PROMISE repository of empirical software engineering data. (2007).

Andrea Bommert, Xudong Sun, Bernd Bischl, Jörg Rahnenführer, and Michel Lang. 2020. Benchmark for filter methods for feature selection in high-dimensional classification data. Computational Statistics & Data Analysis 143 (2020), 106839.

Jane Cleland-Huang, Raffaella Settimi, Xuchang Zou, and Peter Solc. 2006. The detection and classification of non-functional requirements with application to early aspects. In 14th IEEE International Requirements Engineering Conference (RE’06). IEEE, 39–48.

Ishrar Hussain, Leila Kosseim, and Olga Ormandjieva. 2008. Using linguistic knowledge to classify non-functional requirements in SRS documents. In International Conference on Application of Natural Language to Information Systems. Springer, 287–298.

ISO Iso. 2011. Iec25010: 2011 systems and software engineering–systems and software quality requirements and evaluation (square)–system and software quality models. International Organization for Standardization 34, 2910 (2011), 208.

Raul Navarro-Almanza, Reyes Juarez-Ramirez, and Guillermo Licea. 2017. Towards supporting software engineering using deep learning: A case of software requirements classification. In 2017 5th International Conference in Software Engineering Research and Innovation (CONISOFT). IEEE, 116–120.

Forrest Shull, Janice Singer, and Dag IK Sjøberg. 2007. Guide to advanced empirical software engineering. Springer.

John Slankas and Laurie Williams. 2013. Automated extraction of non-functional requirements in available documentation. In 2013 1st International workshop on natural language analysis in software engineering (NaturaLiSE). IEEE, 9–16.

Bing Xue, Mengjie Zhang, Will N Browne, and Xin Yao. 2015. A survey on evolutionary computation approaches to feature selection. IEEE Transactions on Evolutionary Computation 20, 4 (2015), 606–626.

Hui Yang and Peng Liang. 2015. Identification and Classification of Requirements from App User Reviews.. In SEKE. 7–12.
SOUZA, Daniel Abella C. M. de; ALBUQUERQUE, Danyllo; DANTAS FILHO, Emanuel; PERKUSICH, Mirko; PERKUSICH, Angelo. Using Machine Learning for Non-Functional Requirements Classification: A Practical Study. In: WORKSHOP BRASILEIRO DE ENGENHARIA DE SOFTWARE INTELIGENTE (ISE), 3. , 2023, Campo Grande/MS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 35-38. DOI: