Autores:
(1) Gaurav Kolhatkar, Instituto de Tecnología Informática de Pune de SCTR, Pune, India ([email protected]);
(2) Akshit Madan, Instituto de Tecnología Informática de Pune de SCTR, Pune, India ([email protected]);
(3) Nidhi Kowtal, Instituto de Tecnología Informática de Pune de SCTR, Pune, India ([email protected]);
(4) Satyajit Roy, Instituto de Tecnología Informática de Pune de SCTR, Pune, India ([email protected]).
Resumen —La conversión de historias o epopeyas de usuarios en su representación adecuada en pseudocódigo o código es una tarea que requiere mucho tiempo, lo que puede ocupar una gran parte del tiempo en un proyecto industrial. Con este trabajo de investigación, nuestro objetivo es presentar una metodología para generar pseudocódigo a partir de una historia de usuario ágil dada de pequeñas funcionalidades para reducir el tiempo total dedicado al proyecto industrial. El pseudocódigo es una representación independiente del lenguaje de programación de los pasos involucrados en un programa de computadora, que se puede convertir fácilmente a cualquier lenguaje de programación. Aprovechando el potencial del procesamiento del lenguaje natural, queremos simplificar el proceso de desarrollo en organizaciones que utilizan el modelo ágil de desarrollo de software. Presentamos una metodología para convertir un problema descrito en el idioma inglés en pseudocódigo. Esta metodología divide la tarea de conversión de texto a pseudocódigo en dos etapas o subtareas, cada una de las cuales se trata como una tarea de traducción automática individual. La etapa 1 es la conversión de texto a código y la etapa 2 es la conversión de código a pseudocódigo. Descubrimos que el modelo CodeT5 ofrece los mejores resultados en términos de puntuación BLEU cuando se entrena por separado en las dos subtareas mencionadas anteriormente. La puntuación BLEU es una métrica que se utiliza para medir la similitud entre un texto traducido automáticamente y un conjunto de traducciones de referencia.
Términos del índice : generación de texto a código, generación de código a pseudocódigo, transformadores
La eficiencia del trabajo es de suma importancia en las organizaciones y empresas modernas. La mayoría de los lugares de trabajo actuales utilizan el modelo ágil para el desarrollo de software. Agile es un enfoque de desarrollo de software basado en el desarrollo iterativo, en el que las tareas se dividen en iteraciones o sprints más pequeños. En la gestión de proyectos ágil, se utilizan herramientas como Jira para documentar los requisitos del usuario en forma de epopeyas o historias de usuario. Los desarrolladores deben comprender estos requisitos y escribir código para los mismos. Sin embargo, se puede ahorrar una cantidad significativa de tiempo y esfuerzos de desarrollo automatizando el proceso de generación de código/pseudocódigo, especialmente para problemas simples o repetitivos que se han resuelto antes. La motivación de nuestro trabajo de investigación es simplificar el trabajo de los desarrolladores para que puedan centrarse en tareas más complejas y, en el proceso, optimizar el ciclo de vida del desarrollo de software.
Jira es una aplicación de software que se utiliza para el seguimiento de problemas y la gestión de proyectos. Es ampliamente utilizado por equipos de desarrollo ágiles para rastrear errores, historias, epopeyas y otras tareas. Las epopeyas son grandes conjuntos de trabajo que se pueden dividir en una serie de tareas más pequeñas (llamadas historias). Las historias, también llamadas "historias de usuarios", son requisitos o solicitudes breves escritos desde la perspectiva de un usuario final. Nuestro objetivo es convertir epopeyas/historias en pseudocódigo.
A pesar de las ventajas del modelo ágil, el desarrollo de software puede seguir siendo un proceso difícil y prolongado, especialmente cuando se trata de traducir los requisitos del usuario en código funcional. Los desarrolladores suelen traducir manualmente historias o epopeyas de usuarios a código como parte de este proceso, lo que puede llevar mucho tiempo y trabajo.
Nuestro estudio pretende investigar el potencial de utilizar métodos de aprendizaje automático y procesamiento del lenguaje natural para automatizar el proceso de generación de código y pseudocódigo a partir de historias de usuarios con el fin de abordar esta dificultad. Al hacer esto, esperamos optimizar las tareas de los desarrolladores, mejorar el ciclo de vida del desarrollo de software e impulsar la eficacia de todo el proyecto industrial.
Los avances recientes en el campo del procesamiento del lenguaje natural han hecho posible automatizar una variedad de operaciones que antes eran manuales. Los avances recientes en el aprendizaje profundo, en particular, han hecho posible crear modelos sofisticados de lenguaje natural que pueden extraer contexto y significado del ingreso de texto. Al utilizar estos modelos, podemos crear código o pseudocódigo de manera rápida y eficiente a partir de historias de usuarios, aliviando la presión sobre los desarrolladores.
Nuestro estudio examinará una variedad de metodologías utilizadas actualmente, incluidos sistemas basados en reglas, modelos estadísticos y técnicas de aprendizaje profundo, para producir código o pseudocódigo a partir de historias de usuarios. Evaluaremos los beneficios y desventajas de cada metodología y sugeriremos una estrategia novedosa que aproveche al máximo sus ventajas.
En general, nuestro trabajo de investigación tiene como objetivo hacer que el desarrollo de software sea más eficiente y efectivo al automatizar el proceso de generación de código/pseudocódigo a partir de historias de usuarios. Al hacerlo, esperamos liberar a los desarrolladores para que puedan centrarse en tareas más complejas, reducir el riesgo de errores y, en última instancia, ofrecer mejores productos de software a los usuarios.
Este documento está disponible en arxiv bajo licencia CC 4.0.