Requirements prioritization based on multiple criteria using Artificial Intelligence techniques
Traditional methods for requirements prioritization (RP) are currently limited by scalability and lack of automation issues. In recent years, there has been an exponential growth in the use of Artificial Intelligence (AI) techniques in different areas of software engineering (e.g., requirements analysis, testing, maintenance). In particular, we have found thirteen RP methods applying AI techniques such as machine learning, or genetic algorithms. 38% of these approaches seek to improve the scalability problem, whereas only 15% of them aim to improve the automation aspect along the RP process. Moreover, all these studies have carried out their evaluations with a number of requirements no greater than 100. In order to address the issues of scalability and lack of automation in RP, the present research project aims to propose a semi-automatic multiple-criteria prioritization method for functional and non-functional requirements of software projects developed within the Software Product-Lines paradigm. The proposed RP method will be based on the combination of Natural Language Processing techniques and Machine Learning algorithms, and for its validation, empirical studies will be carried out with real web-based geographic information systems(GIS). This paper describes the problem and technical challenges to be addressed, the related works, as well as the main contributions of the proposed solution.
I’m a Peruvian citizen, graduated from the National University of Engineering of Peru as a Bachelor in Systems Engineering with a Master in Computer Sciences in the Federal University of Piauí in Brazil. Currently, I’m a PhD student at the University of A Coruna, Spain, in virtual mode due to the pandemic. As a professional, I have experience acquired in different environments, in the analysis, design and development of J2EE projects, service layer (SOA), design patterns, software integration, etc.
In my experience as a software engineer, I have encountered several opportunities to improve software development. In recent years there has been an exponential growth in the use of Artificial Intelligence (AI) techniques in different areas, like software engineering, to improve the life cycle of software development.