Abstract
The requirements phase is the core of software development, if it is not carried out correctly it can cause its failure. To combat this problem, analysts have used requirements engineering (ER, for its acronym in English), which is characterized by producing a list of quality requirements called requirements specification (RS, for its acronym in English). The SR performs the requirements classification activity, which consists of identifying the class to which each requirement belongs so that analysts face the challenge of classifying them properly. This work is focused on improving the performance of the classification of non-functional requirements (NFR); that is, with the help of a convolutional neural network. It also seeks to show the importance of preprocessing, the implementation of sampling strategies, and the use of previously trained matrices such as Fasttext, Glove, and Word2vec. The results were obtained by evaluating the metrics Recall, Precision, and F1 with an average increase of up to 30% over related work. Finally, the evaluation of the model is presented with respect to the pre-trained matrices with the ANOVA analysis.
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.REFERENCES
Aguilar, J.A., Zaldívar-Colado, A., Tripp-Barba, C., Espinosa, R., Sanjay, M., and Zurita, C.E., A survey about the impact of requirements engineering pactice in small-sized software factories in Sinaloa, Mexico, in Proc. Int. Conf. on Computational Science and Its Applications, Springer, 2018, pp. 331–340.
Alla, S. and DelAguila, P.P.R., The impact of requirements management documentation on software project outcomes in health care, in Proc. IIE Annu. Conf., Institute of Industrial and Systems Engineers (IISE), 2017, pp. 1419–1423.
Almeyda, S. and Dávila, A., Process improvement in software requirements engineering: A systematic mapping study, Program. Comput. Software, 2022, vol. 48, no. 8, pp. 513–533.
Aurum, A. and Wohlin, C., A value-based approach in requirements engineering: explaining some of the fundamental concepts, in Proc. Int. Working Conf. on Requirements Engineering: Foundation for Software Quality, Springer, 2007, pp. 109–115.
Becker, C., Betz, S., Chitchyan, R., Duboc, L., Easterbrook, S.M., Penzenstadler, B., Seyff, N., and Vent-ers, C.C., Requirements: The key to sustainability, IEEE Software, 2016, vol. 33, pp. 56–65.
Casamayor, A. and Campo, D.G.M., Identification of non-functional requirements in textual specifications: A semi-supervised learning approach, Inf. Software Technol., 2010, vol. 52, pp. 436–445.
Chung, L., Nixon, B.A., and Mylopoulos, E.Y.J., Non-Functional Requirements in Software Engineering, Springer Sci. and Business Media, 2012.
Cisneros, J.R.A., Fernandez-y-Fernandez, C.A., de la Rosa Garcia, G., and Leon, A., Automotive post-collision control software system: Requirements and verification, Program. Comput. Software, 2021, vol. 47, no. 8, pp. 735–745.
Dalpiaz, F., Ferrari, A., and Palomares, X.F.C., Natural language processing for requirements engineering: The best is yet to come, IEEE Software, 2018, vol. 35, pp. 115–119.
Fong, V.L., Software Requirements Classification Using Word Embeddings and Convolutional Neural Networks, Cal Poly, 2018.
Glinz, M., On non-functional requirements, Proc. 15th IEEE Int. Requirements Engineering Conf. RE’07, New Delhi, 2007, pp. 21–26.
Hamill, M. and Goseva-Popstojanova, K., Common trends in software fault and failure data, IEEE Trans. Software Eng., 2009, vol. 35, pp. 484–496.
Hussain, I., Ormandjieva, O., and Kosseim, L., Lasr: a tool for large scale annotation of software requirements, Proc. 2nd IEEE Int, Workshop on Empirical Requirements Engineering (EmpiRE), Chicago, 2012, pp. 57–60.
IEEE Recommended Practice for Software Requirements Specifications, IEEE, Computer Society Software Engineering Standards Committee StandardsBoard IEEE-SA, 1998.
Juárez, R. and Licea, G., Towards supporting software engineering using deep learning: A case of software requirements classification, Proc. 5th Int. Conf. in Software Engineering Research and Innovation (CONISOFT), Mérida, 2017, pp. 116–120.
Kassab, M., Non-functional Requirements: Modeling and Assessment, VDM Verlag, 2009.
Kauppinen, M., Savolainen, J., and Mannisto, T., Requirements engineering as a driver for innovations, Proc. 15th IEEE Int. Requirements Engineering Conf. (RE 2007), New Delhi, 2007, pp. 15–20.
Ko, Y., Park, S., Seo, J., and Choi, S., Using classification techniques for informal requirements in the requirements analysis-supporting system, Inf. Software Technol., 2007, vol. 49, pp. 1128–1140.
Kurtanovic, Z.W.M., Automatically classifying functional and non-functional requirements using supervised machine learning, Proc. 25th IEEE Int. Conf. on Requirements Engineering (RE), Lisbon, 2017, pp. 490–495.
Lehtinen, T.O.A., Mäntylä, M.V., Vanhanen, J., Itkonen, J., and Lassenius, C., Perceived causes of software project failures–an analysis of their relationships, Inf. Software Technol., 2014, vol. 56, pp. 623–643.
Menzies, T., Caglayan, B., Kocaguneli, E., Krall, J., Peters, F., and Turhan, B., The Promise Repository of Empirical Software Engineering Data, 2012.
Mikolov, T., Statistical language models based on neural networks, Presentation at Google, Mountain View, Apr. 2, 2012, vol. 80.
Mikolov, T., Sutskever, I., Chen, K., Corrado, G.S., and Dean, J., Distributed representations of words and phrases and their compositionality, Proc. 26th Int. Conf. on Neural Information Processing Systems NIPS’13, Lake Tahoe, NV, 2013, pp. 3111–3119.
Niu, N., Brinkkemper, S., Franch, X., Partanen, J., and Savolainen, J., Requirements engineering and continuous deployment, IEEE Software, 2018, vol. 35, no. 2, pp. 86–90.
Pacheco, C., Garcia, I., and Reyes, M., Requirements elicitation techniques: A systematic literature review based on the maturity of the techniques, IET Software, 2018, vol. 12, pp. 365–378.
Perez-Verdejo, J.M., Sánchez-García, Á.J., Ocharan-Hernández, J.O., Mezura-Montes, E., and Cortes-Verdin, K., Requirements and GitHub issues: An automated approach for quality requirements classification, Program. Comput. Software, 2021, vol. 47, pp. 704–721.
Rashwan, A., Ormandjieva, O., and Witte, R., Ontology-based classification of non-functional requirements in software specifications: A new corpus and svm-based classifier, Proc. 37th IEEE Annu. Computer Software and Applications Conf. (COMPSAC), Kyoto, 2013, pp. 381–386.
Rempel, P. and Mäder, P., Preventing defects: The impact of requirements traceability completeness on software quality, IEEE Trans. Software Eng., 2017, vol. 43, pp. 777–797.
Ryan, K., The role of natural language in requirements engineering, Proc. IEEE Int. Symp. on Requirements Engineering, San Diego, 1993, pp. 240–242.
Shirabad, S. and Menzies, J.T.J., The PROMISE Repository of Software Engineering Databases, 2005. http://promise.site.uottawa.ca/SERepository
Shanyour, B.A.Q., Global software development and its impact on software quality, Proc. 5th Int. Symp. on Innovation in Information and Communication Technology (ISIICT), Amman, 2018, pp. 1–6.
Sommerville, I., Software Engineering, 9th ed., Pearson, 2011;
Van Hulse, J., Khoshgoftaar, T.M., and Napolitano, A., Experimental perspectives on learning from imbalanced data, Proc. 24th Int. Conf. on Machine Learning, Corvalis, 2007, pp. 935–942.
Winkler, J. and Vogelsang, A., Automatic classification of requirements based on convolutional neural networks, Proc. 24th IEEE Int. Requirements Engineering Conf. Workshops (REW), Beijing, 2016, pp. 39–45.
Funding
This work was supported by ongoing institutional funding. No additional grants to carry out or direct this particular research were obtained.
Author information
Authors and Affiliations
Corresponding authors
Ethics declarations
The authors declare that they have no conflicts of interest.
Additional information
Publisher’s Note.
Pleiades Publishing remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
García, S.E., Fernández-y-Fernández, C.A. & Pérez, E.G. Classification of Non-functional Requirements Using Convolutional Neural Networks. Program Comput Soft 49, 705–711 (2023). https://doi.org/10.1134/S0361768823080133
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768823080133