
Los ingenieros de requisitos deben adquirir información acerca del contexto don-de se desempeñará el futuro sistema de software y registrarla en modelos apro-piados. Estos modelos son utilizados durante la definición de los requisitos del sistema de software, pero también sirven de referencia para atender cualquier du-da que pueda surgir en etapas posteriores del desarrollo. Desafortunadamente, se ha comprobado que estos modelos dependen muy fuertemente de quien los cons-truya. Esto hace necesario que procedimientos y recomendaciones que acompa-ñan a los modelos consideren factores cognitivos, de manera que los resultados no sean tan dependientes de las personas. En tal sentido, se ha reformulado un proceso de construcción de un modelo en lenguaje natural con heurísticas que atienden dichos aspectos cognitivos y semánticos. Se presenta un experimento que utiliza este proceso modificado y se lo compara con experimentos antecesores donde se usó un proceso sin consideraciones lingüísticas-cognitivas y un proceso que atiende solo algunas cuestiones lingüísticas para construir el mismo modelo. Se pudieron evidenciar mejoras en la calidad del modelo cuando se utiliza un pro-ceso con heurísticas más precisas que atiende tanto aspectos semánticos y prag-máticos como cognitivos.
La calidad de los modelos depende no sólo de las habilidades de los ingenieros de requisitos y del proceso de construcción, sino de la información adquirida. Muchos defectos en los modelos se originan en información deficiente de la elicitación, habitualmente de entrevistas. Esto revela dificultades en la comprensión del universo de discurso, del problema del usuario y de la funcionalidad general del software. Este trabajo propone mejorar esa comprensión utilizando técnicas visuales, como mapas mentales y facilitación gráfica. Se presentan los resultados de un análisis comparativo de las percepciones de estudiantes actuando como ingenieros junior de requisitos, a partir de encuestas realizadas en dos estudios de caso sobre el uso de estas técnicas durante la actividad de elicitación. Con ambas técnicas se construyeron diagramas individualmente, y luego se unificaron. Esto resultó ser clave para contrastar discrepancias e integrar diversos puntos de vista, así como base para construir un modelo conceptual. Los resultados indican que el nivel de comprensión alcanzado fue percibido como alto para ambas técnicas. Además, ambas facilitaron la interacción con el usuario. Se identificaron ciertas limitaciones, tales como la necesidad de adquirir experiencia en el uso de estas técnicas, y la importancia de realizar alguna reunión para discutir y validar el conocimiento adquirido mediante los diagramas.
Requirements Engineering (RE) is a critical phase in software development. Frequently, requirements are expressed in natural language and embedded in large documents. Classifying requirements is a time-consuming and error-prone activity. To address this issue, Machine Learning (ML) techniques can be leveraged to classify requirements. ML is a subfield of Artificial Intelligence that facilitates decision-making by developing automated models trained on data samples. This paper compares ML approaches to automatically classify requirements as functional (FR) and non-functional (NFR). Our study uses Supervised Machine Learning (SL) models alongside Active Learning (AL). SL models require large volumes of labeled data for effective training. However, in many cases, the datasets available for training are unlabeled, and the sheer size of these datasets makes manual labeling impractical. This poses a significant challenge for training supervised models. AL offers a solution to this challenge by strategically selecting specific xamples for user labeling, which are then used to train the model. By combining AL with SL, we aim to investigate whether Active Learning improves requirements classification. We propose a systematic approach to applying ML and AL to classify requirements datasets. By doing so, we aim to accelerate and automate the requirements classification process. Classifying requirements into distinct categories allows developers to concentrate more effectively on subsequent stages of the development process. We present a supporting process for our proposal.
Recent advancements in artificial intelligence (AI), particularly in large language models (LLMs), offer new possibilities for automating requirements generation from elicitation interviews. This study compares the performance of ChatGPT-4 and DeepSeek-V3 in generating software requirements based on transcribed stakeholder interviews. Using two case studies, the LLMs were tasked with identifying functional and non-functional requirements. The results indicate that ChatGPT-4 performed better in extracting precise requirements, particularly nonfunctional ones, while DeepSeek-V3 demonstrated advantages in efficiency. However, both models exhibited limitations in handling ambiguity and properly categorizing requirements. This study highlights the potential of LLMs in Requirements Engineering while emphasizing the need for improved prompt/dialogues techniques and human supervision. Future research should explore hybrid AI-human approaches and domain-specific fine-tuning to enhance requirement extraction accuracy.
User stories are one of the most widely used artifacts in the software industry to define functional requirements. In parallel, the use of high-fidelity mockups facilitates end-user participation in defining their needs. In this work, we explore how combining these techniques with large language models (LLMs) enables agile and automated generation of user stories from mockups. To this end, we present a case study that analyzes the ability of LLMs to extract user stories from high-fidelity mockups, both with and without the inclusion of a glossary of the Language Extended Lexicon (LEL) in the prompts. Our results demonstrate that incorporating the LEL significantly enhances the accuracy and suitability of the generated user stories. This approach represents a step forward in the integration of AI into requirements engineering, with the potential to improve communication between users and developers.