Requirements Classification and Multi-Criteria Prioritization Using AI Techniques

Loading...
Thumbnail Image

Identifiers

Publication date

Authors

Limaylla-Lunarejo, María-Isabel

Advisors

Condori Fernández, Nelly

Other responsabilities

Journal Title

Bibliographic citation

Type of academic work

Abstract

[Abstract] A Software Product Line is a paradigm focused on reusing software components across a collection of related systems that share common features. This paradigm offers several benefits, including improved product quality, reduced time-to-market, and enhanced customer satisfaction. Requirements Engineering is a critical aspect of software development, which involves identifying, documenting, and managing system requirements. In the context of a software product line, requirement engineering faces additional complexities, such as distinguishing between common and variable requirements, managing multiple product variants, and coordinating input from diverse stakeholders. Within requirements engineering, two key activities are the focus of this thesis: requirements classification and prioritization. These tasks are particularly challenging due to factors like the large volume of requirements, dependency on stakeholder input, and the lack of domain experts. A significant motivation for this research is to address these complexities in the context of requirements written in Spanish. The main objective is to develop methods based on artificial intelligence that can automate classification and prioritization tasks, reduce stakeholder dependency, and enhance the performance of both activities in the software product line context. Two main components structure the technical core of the thesis. First, in Requirements Classification, the study utilizes various datasets (such as PROMISE and ReSpa) to evaluate binary and multi-class classification of functional and non-functional requirements using machine learning and deep learning algorithms. The experiments include balancing techniques and validation of the generalization capabilities of the trained models. Logistic Regression and Naive Bayes consistently performed well on smaller, structured datasets, while stacking ensembles and BETO showed strong generalization, though BETO was computationally intensive. The findings support that traditional ML models remain valuable for local deployment and customization, even with the rise of LLMs. When addressing imbalanced datasets for NFR sub-classification, balancing using undersampling and ChatGPT for text data augmentation obtained mixed results, improving some minority classes but slightly reducing others. Second, in Requirements Prioritization, the work focuses on training a learning to rank algorithm to prioritize requirements based on defined criteria automatically. This involves previously analyzing requirement descriptions to extract prioritization criteria automatically. These criteria include Functional/Non- Functional classification, MoSCoW categorization, and information derived from similar requirements. Our experiment demonstrated the feasibility of automatically identifying prioritization criteria and found that LambdaMART is a good option for automated requirement prioritization in Spanish SPL contexts. This thesis presents a novel approach to automating core requirements engineering tasks, providing a solution for software development teams to classify and prioritize requirements written in Spanish, specifically within product line environments.
[Resumen] Una Línea de Productos de Software es un paradigma centrado en la reutilización de componentes de software en un conjunto de sistemas relacionados que comparten características comunes. Este paradigma ofrece diversas ventajas, como una mejor calidad del producto, una reducción del tiempo de comercialización y una mayor satisfacción del cliente. Por otro lado, la Ingeniería de Requisitos es un aspecto fundamental del desarrollo de software, que implica la identificación, documentación y gestión de los requisitos del sistema. En el contexto de una línea de productos de software, la ingeniería de requisitos se enfrenta a complejidades adicionales, como la distinción entre requisitos comunes y variables, la gestión de múltiples variantes del producto y la coordinación de las aportaciones de los diversos stakeholders. Dentro de la ingeniería de requisitos, esta tesis se centra en dos actividades clave: la clasificación y la priorización de requisitos de software. Estas tareas son especialmente complejas debido a factores como el gran volumen de requisitos, la dependencia de los stakeholders y la falta de expertos en la materia. Una motivación importante para esta investigación es abordar estas complejidades en el contexto de los requisitos escritos en español. El objetivo principal es desarrollar métodos basados en inteligencia artificial que permitan automatizar las tareas de clasificación y priorización, reducir la dependencia de los stakeholders y mejorar el rendimiento de ambas actividades en el contexto de la línea de productos de software. Dos componentes principales estructuran el núcleo técnico de la tesis. En primer lugar está la clasificación de requisitos. Nuestra solución utiliza diversos conjuntos de datos (como PROMISE y ReSpa) para evaluar la clasificación binaria y multiclase de requisitos funcionales y no funcionales mediante algoritmos de aprendizaje automático y aprendizaje profundo. Los experimentos incluyen dos técnicas de balanceo y la validación de la capacidad de generalización de los modelos entrenados. Los algoritmos Logistic Regression y Naive Bayes obtuvieron un buen rendimiento en conjuntos de datos estructurados pequeños, mientras que los algoritmos ensembles y BETO mostraron una sólida generalización, aunque BETO fue computacionalmente más demandante. Los hallazgos respaldan que los modelos de aprendizaje automático tradicionales siguen siendo valiosos para la implementación y personalización de modelos locales, incluso con el auge de los LLM. Al abordar conjuntos de datos desequilibrados para la multi-clasificación de los requisitos no funcionales, el balanceo mediante submuestreo y la generación de requisitos sintéticos usando ChatGPT obtuvieron resultados mixtos, mejorando la performance de algunas clases minoritarias y reduciendo ligeramente otras. En segundo lugar, en la priorización de requisitos, el trabajo se centra en el entrenamiento de un algoritmo de tipo Learning to rank para priorizar automáticamente los requisitos según criterios definidos. Esto implica analizar previamente las descripciones de los requisitos para extraer automáticamente algunos criterios de priorización. Estos criterios incluyen la clasificación funcional/no functional, la categorización de tipo MoSCoW y la información derivada de requisitos similares. Nuestro experimento demostró la viabilidad de identificar automáticamente los criterios de priorización y determinó que LambdaMART es una buena opción para la priorización automatizada de requisitos en español en contextos de SPL. Sin embargo, se requieren más experimentos para validar estos resultados. Esta tesis presenta un enfoque novedoso para automatizar las tareas principales de ingeniería de requisitos, proporcionando una solución para que los equipos de desarrollo de software clasifiquen y prioricen los requisitos escritos en español, específicamente en entornos de líneas de producto.
[Resumo] Unha Liña de Produtos de Software é un paradigma centrado na reutilización de compoñentes de software nun conxunto de sistemas relacionados que comparten características comúns. Este paradigma ofrece varias vantaxes, como a mellora da calidade do produto, a redución do tempo de comercialización e o aumento da satisfacción do cliente. Ademais, a Enxeñaría de Requisitos é un aspecto fundamental do desenvolvemento de software, que implica a identificación, documentación e xestión dos requisitos do sistema. No contexto dunha SPL, a enxeñaría de requisitos enfróntase a complexidades adicionais, como a distinción entre requisitos comúns e variables, a xestión de múltiples variantes de produto e a coordinación das achegas de varias partes interesadas. Dentro da SPL, esta tese céntrase en dúas actividades clave: a clasificación e priorización dos requisitos de software. Estas tarefas son particularmente complexas debido a factores como o gran volume de requisitos, as dependencias das partes interesadas e a falta de expertos na materia. Unha das principais motivacións para esta investigación é abordar estas complexidades no contexto dos requisitos escritos en español. O obxectivo principal é desenvolver métodos baseados na intelixencia artificial que automaticen as tarefas de clasificación e priorización, reduza a dependencia das partes interesadas e mellore o rendemento de ambas actividades no contexto da liña de produtos de software. Dous compoñentes principais estruturan o núcleo técnico da tese. En primeiro lugar, existe a clasificación dos requisitos. A nosa solución emprega varios conxuntos de datos (como PROMISE e ReSpa) para avaliar a clasificación binaria e multiclase de requisitos funcionais e non funcionais mediante algoritmos de aprendizaxe automática e aprendizaxe profunda. Os experimentos inclúen dúas técnicas de equilibrio e a validación das capacidades de xeneralización dos modelos adestrados. Os algoritmos de Logistic Regression e Naive Bayes tiveron un bo rendemento en conxuntos de datos estruturados pequenos, mentres que os algoritmos ensembles e BETO mostraron unha forte xeneralización, aínda que BETO foi computacionalmente máis esixente. Os resultados apoian que os modelos tradicionais de aprendizaxe automática seguen sendo valiosos para a implementación e personalización de modelos locais, mesmo co auxe dos LLM. Ao abordar conxuntos de datos desequilibrados para a multiclasificación de requisitos non funcionais, o equilibrio mediante submostraxe e a xeración de requisitos sintéticos mediante ChatGPT deu resultados mixtos, mellorando o rendemento dalgunhas clases minoritarias e reducindo lixeiramente outras. En segundo lugar, na priorización de requisitos, o traballo céntrase no adestramento dun algoritmo de aprendizaxe de tipo Learning to rank para priorizar automaticamente os requisitos en función de criterios definidos. Isto implica a preanálise das descricións dos requisitos para extraer automaticamente algúns criterios de priorización. Estes criterios inclúen a clasificación funcional/non funcional, a categorización de tipo MoSCoW e a información derivada de requisitos similares. O noso experimento demostrou a viabilidade de identificar automaticamente criterios de priorización e determinou que LambdaMART é unha boa opción para a priorización automatizada de requisitos en español en contextos SPL. Non obstante, requírense máis experimentos para validar estes resultados. Esta tese presenta unha nova abordaxe para automatizar as tarefas básicas de enxeñaría de requisitos, proporcionando unha solución para que os equipos de desenvolvemento de software clasifiquen e prioricen os requisitos escritos en español, especificamente en entornos de liña de produtos.

Description

Editor version

Rights

Attribution-NonCommercial-NoDerivatives 4.0 International
Attribution-NonCommercial-NoDerivatives 4.0 International

Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivatives 4.0 International