Deep Learning for Non-functional Requirements: A Convolutional Neural Network Approach
https://doi.org/10.15514/ISPRAS-2024-36(1)-8
Abstract
The Requirements Engineering (ER) phase plays a critical role in software development, as any shortcomings during this stage can lead to project failure. Analysts rely on Requirements Specification (RS) to define a comprehensive list of quality requirements. The process of requirements classification, within RS, involves assigning each requirement to its respective class, presenting analysts with the challenge of accurate categorization. This research focuses on enhancing the classification of non-functional requirements (NFR) using a Convolutional Neural Network (CNN). The study also emphasizes the significance of preprocessing techniques, the implementation of sampling strategies, and the incorporation of pre-trained word embeddings such as Fasttext, Glove, and Word2vec. Evaluation of the proposed approach is performed using metrics like Recall, Precision, and F1, resulting in an average performance improvement of up to 30% compared to related work. Additionally, the model is assessed concerning its utilization of pre-trained word embeddings through ANOVA analysis, providing valuable insights into its effectiveness. This study aims to demonstrate the utility of CNNs and pre-trained word embeddings in the classification of NFRs, offering valuable contributions to the field of Requirements Engineering and enhancing the overall software development process.
About the Authors
Sandra Estefanía MARTINEZ GARCIAMexico
Оbtained a master's degree in Applied Computing Technologies from the Universidad Tecnológica de la Mixteca in 2021 and Computer engineering from Instituto Tecnológico Del Valle de Oaxaca in 2019. She is currently a data scientist and technical lead at Bosch Mexico. Her areas of interest include Artificial Intelligence, Software Engineering, Requirements Engineering, Process Automation, Business Analytics, Data Analytics and Data Science.
Carlos Alberto FERNÁNDEZ-Y-FERNÁNDEZ
Mexico
Software Engineering expert with a Ph.D from the University of Sheffield. He currently leads the Institute of Computing at Universidad Tecnológica de la Mixteca and coordinates the Master's program in Applied Computing Technologies. His research interests include visual modeling, agile methods, and formal software specification.
Erik G. RAMOS PÉREZ
Mexico
Professor-Researcher at the Technological University of La Mixteca. He obtained a master's degree in Applied Computing Technologies and Computer Engineering from the Technological University of La Mixteca in 2016 and 2001 respectively. He is coordinator of the Virtual University. His areas of research interest include Machine Learning and Autonomous Navigation with drones.
References
1. José Alfonso Aguilar, Anibal Zald́ıvar-Colado, Carolina Tripp-Barba, Roberto Espinosa, Sanjay Misra, Carlos Eduardo Zurita: A Survey About the Impact of Requirements Engineering Practice in Small-Sized Software Factories in Sinaloa, Mexico. International Conference on Computational Science and Its Applications, 331–340. Springer, 2018.
2. Alla Sujatha, Pilar Pazos, Rolando DelAguila: The Impact of Requirements Management Documentation on Software Project Outcomes in Health Care. IIE Annual Conference. Proceedings, 1419–1423. Institute of Industrial and Systems Engineers (IISE), 2017.
3. S. Almeyda, A. Davila: Process Improvement in Software Requirements Engineering: A Systematic Mapping Study. Programming and Computer Software, 48(8):513–533, 2022.
4. Aybuke Aurum, Claes Wohlin: A value- based approach in requirements engineering: explaining some of the fundamental concepts. International Working Conference on Requirements Engineering: Foundation for Software Quality, 109–115. Springer, 2007.
5. Christoph Becker, Stefanie Betz, Ruzanna Chitchyan, Leticia Duboc, Steve M. Easterbrook, Birgit Penzenstadler, Norbet Seyff, Colin C. Venters: Requirements: The key to sustainability. IEEE Software, vol.33:56–65, 2016.
6. Agustin Casamayor, Daniela Godoy, Marcelo R. Campo: Identification of non-functional requirements in textual specifications: A semi-supervised learning approach. Information and Software Technology, vol.52:436–445, 2010.
7. Lawrence Chung, Brian A. Nixon, Eric Yu, John Mylopoulos: Non-functional requirements in software engineering. Springer Science & Business Media, 2012.
8. J. R. Aguilar Cisneros, C. A. Fernandez-y-Fernandez, Genaro de la Rosa Garcia, A. Leon: Automotive Post-Collision Control Software System: Requirements and Verification. Programming and Computer Software, 47(8):735–745, 2021.
9. F. Dalpiaz, A. Ferrari, X. Franch, C. Palomares: Natural Language Processing for Requirements Engineering: The Best Is Yet to Come. IEEE Software, vol.35:115–119, 2018, ISSN 0740-7459.
10. Vivian Lin Fong: Software Requirements Classification Using Word Embeddings and Convolutional Neural Networks. Cal Poly, 2018.
11. Martin Glinz: On non-functional requirements. Requirements Engineering Conference, 2007. RE’07. 15th IEEE International, 21–26. IEEE, 2007.
12. Margaret Hamill, Katerina Goseva-Popstojanova: Common trends in software fault and failure data. IEEE Transactions on Software Engineering, vol.35:484– 496, 2009.
13. Ishrar Hussain, Olga Ormandjieva, Leila Kosseim: LASR: A tool for large scale annotation of software requirements. 2012 Second IEEE International Workshop on Empirical Requirements Engineering (EmpiRE), 57–60. IEEE, 2012.
14. IEEE Computer Society, Software Engineering Standards Committee, IEEE SA Standards Board: IEEE Recommended Practice for Software Requirements Specifications. 1998.
15. Raul Navarro Almanza, Reyes Juárez-Ramirez, Guillermo Licea: Towards Supporting Software Engineering Using Deep Learning: A Case of Software Requirements Classification. 2017 5th International Conference in Software Engineering Research and Innovation (CONISOFT), 116–120. IEEE, 2017.
16. Mohamad Kassab: Non-functional requirements: modeling and assessment. VDM Verlag, 2009.
17. Marjo Kauppinen, Juha Savolainen, Tomi Mannisto: Requirements engineering as a driver for innovations. 15th IEEE International Requirements Engineering Conference (RE 2007), 15–20. IEEE, 2007.
18. Youngjoong Ko, Sooyong Park, Jungyun Seo, Soonhwang Choi: Using classification techniques for informal requirements in the requirements analysis-supporting system. Information and Software Technology, vol.49:1128–1140, 2007.
19. Zijad Kurtanovic, Walid Maalej: Automatically classifying functional and non-functional requirements using supervised machine learning. Requirements Engineering Conference (RE), 2017 IEEE 25th International, 490–495. IEEE, 2017.
20. Timo O. A. Lehtinen, Mika Mäntylä, Jari Vanhanen, Juha Itkonen, Casper Lassenius: Perceived causes of software project failures–An analysis of their relationships. Information and Software Technology, vol.56:623–643, 2014.
21. Tomas Mikolov: Statistical language models based on neural networks. Presentation at Google, Mountain View, 2nd April, vol.80, 2012.
22. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado, Jeffrey Dean: Distributed representations of words and phrases and their compositionality. Advances in neural information processing systems, 3111–3119, 2013.
23. Nan Niu, Sjaak Brinkkemper, Xavier Franch, Jari Partanen, Juha Savolainen: Requirements engineering and continuous deployment. IEEE software, vol.35(2):86–90, 2018.
24. Carla Pacheco, Ivan Garcia, Miryam Reyes: Requirements elicitation techniques: a systematic literature review based on the maturity of the techniques. IET Software, vol.12:365–378, 2018.
25. J. Manuel Pérez-Verdejo, Angel Juan Sanchez Garcia, Jorge Octavio Ocharán-Hernández, Efrén Mezura-Montes, Karen Cortés-Verdin: Requirements and GitHub Issues: An Automated Approach for Quality Requirements Classification. Programming and Computer Software, 47:704–721, 2021.
26. Abderahman Rashwan, Olga Ormandjieva, Rene Witte: Ontology-based classification of non-functional requirements in software specifications: a new corpus and SVM-based classifier. Computer Software and Applications Conference (COMPSAC), 2013 IEEE 37th Annual, 381–386. IEEE, 2013.
27. Patrick Rempel, Patrick Máder: Preventing defects: The impact of requirements traceability completeness on software quality. IEEE Transactions on Software Engineering, vol.43:777–797, 2017.
28. Kevin Ryan: The role of natural language in requirements engineering. Proceedings of the IEEE International Symposium on Requirements Engineering, 240– 242. IEEE, 1993.
29. J. Sayyad Shirabad, Tim J. Menzies: The PROMISE Repository of Software Engineering Databases, 2005. http://promise.site.uottawa.ca/SERepository.
30. Belal Shanyour, Abdallah Qusef: Global Software Development and its Impact on Software Quality. 2018 Fifth International Symposium on Innovation in Information and Communication Technology (ISIICT), 1–6. IEEE, 2018.
31. Ian Sommerville: Software engineering, 9th Edition. Pearson, 2011.
32. Jason Van Hulse, Taghi M. Khoshgoftaar, Amri Napolitano: Experimental perspectives on learning from imbalanced data. Proceedings of the 24th international conference on Machine learning, 935–942, 2007.
33. Jonas Winkler, Andreas Vogelsang: Automatic classification of requirements based on convolutional neural networks. 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW), 39–45. IEEE, 2016.
Review
For citations:
MARTINEZ GARCIA S., FERNÁNDEZ-Y-FERNÁNDEZ C., RAMOS PÉREZ E. Deep Learning for Non-functional Requirements: A Convolutional Neural Network Approach. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2024;36(1):131-142. https://doi.org/10.15514/ISPRAS-2024-36(1)-8