António Miguel Rosado da CruzEstrela Ferreira Cruz
Software requirements engineering is one of the most critical and time-consuming phases of the software-development process. The lack of communication with stakeholders and the use of natural language for communicating leads to misunderstanding and misidentification of requirements or the creation of ambiguous requirements, which can jeopardize all subsequent steps in the software-development process and can compromise the quality of the final software product. Natural Language Processing (NLP) is an old area of research; however, it is currently undergoing strong and very positive impacts with recent advances in the area of Machine Learning (ML), namely with the emergence of Deep Learning and, more recently, with the so-called transformer models such as BERT and GPT. Software requirements engineering is also being strongly affected by the entire evolution of ML and other areas of Artificial Intelligence (AI). In this article we conduct a systematic review on how AI, ML and NLP are being used in the various stages of requirements engineering, including requirements elicitation, specification, classification, prioritization, requirements management, requirements traceability, etc. Furthermore, we identify which algorithms are most used in each of these stages, uncover challenges and open problems and suggest future research directions.
Ana-Gabriela NúñezMaría Fernanda GrandaVíctor SaquicelaOtto Parra
Tong LiXinran ZhangYunduo WangQixiang ZhouShiqi Wang
Kanos MatyokurehwaNehemiah MaveteraOsden Jokonya
Iman Ahmed ElSayedZeinab EzzEman S. Nasr