Autores:
(1) Gaurav Kolhatkar, Instituto de Tecnologia da Computação de Pune do SCTR, Pune, Índia ([email protected]);
(2) Akshit Madan, Instituto de Tecnologia da Computação de Pune do SCTR, Pune, Índia ([email protected]);
(3) Nidhi Kowtal, Instituto de Tecnologia da Computação de Pune do SCTR, Pune, Índia ([email protected]);
(4) Satyajit Roy, Instituto de Tecnologia da Computação de Pune do SCTR, Pune, Índia ([email protected]).
Resumo —A conversão de épicos ou histórias de usuários em sua representação apropriada em pseudocódigo ou código é uma tarefa demorada, que pode ocupar grande parte do tempo em um projeto industrial. Com este trabalho de pesquisa, pretendemos apresentar uma metodologia para gerar pseudocódigo a partir de uma determinada história de usuário ágil de pequenas funcionalidades de forma a reduzir o tempo total gasto no projeto industrial. Pseudocódigo é uma representação agnóstica de linguagem de programação das etapas envolvidas em um programa de computador, que pode ser facilmente convertida em qualquer linguagem de programação. Aproveitando o potencial do Processamento de Linguagem Natural, queremos simplificar o processo de desenvolvimento em organizações que utilizam o Modelo Ágil de Desenvolvimento de Software. Apresentamos uma metodologia para converter um problema descrito na língua inglesa em pseudocódigo. Esta metodologia divide a tarefa de conversão de texto em pseudocódigo em dois estágios ou subtarefas, cada um dos quais é tratado como uma tarefa individual de tradução automática. O estágio 1 é a conversão de texto em código e o estágio 2 é a conversão de código em pseudocódigo. Descobrimos que o modelo CodeT5 oferece os melhores resultados em termos de pontuação BLEU quando treinado separadamente nas duas subtarefas mencionadas acima. A pontuação BLEU é uma métrica usada para medir a semelhança entre um texto traduzido automaticamente e um conjunto de traduções de referência.
Termos de índice — geração de texto para código, geração de código para pseudocódigo, transformadores
A eficiência do trabalho é da maior importância nas organizações e empresas modernas. A maioria dos locais de trabalho hoje usa o modelo ágil para desenvolvimento de software. Ágil é uma abordagem de desenvolvimento de software baseada no desenvolvimento iterativo, em que as tarefas são divididas em iterações ou sprints menores. No Agile, ferramentas de gerenciamento de projetos como o Jira são usadas para documentar os requisitos do usuário na forma de épicos ou histórias de usuários. Os desenvolvedores precisam entender esses requisitos e escrever código para eles. No entanto, uma quantidade significativa de tempo e esforços de desenvolvimento pode ser economizada automatizando o processo de geração de código/pseudocódigo, especialmente para problemas simples ou repetitivos que já foram resolvidos anteriormente. A motivação do nosso trabalho de pesquisa é simplificar o trabalho dos desenvolvedores para que eles possam se concentrar em tarefas mais complexas e, no processo, otimizar o ciclo de vida de desenvolvimento de software.
Jira é um aplicativo de software usado para rastreamento de problemas e gerenciamento de projetos. É amplamente utilizado por equipes de desenvolvimento ágil para rastrear bugs, histórias, épicos e outras tarefas. Épicos são grandes conjuntos de trabalho que podem ser divididos em uma série de tarefas menores (chamadas histórias). Histórias, também chamadas de “histórias de usuários”, são requisitos ou solicitações curtas escritas da perspectiva de um usuário final. Nosso objetivo é converter épicos/histórias em pseudocódigo.
Apesar das vantagens do Modelo Ágil, o desenvolvimento de software ainda pode ser um processo difícil e demorado, especialmente quando se trata de traduzir os requisitos do usuário em código funcional. Os desenvolvedores geralmente traduzem épicos ou histórias de usuários manualmente em código como parte desse processo, o que pode exigir muito tempo e trabalho.
Nosso estudo pretende investigar o potencial da utilização de métodos de aprendizado de máquina e processamento de linguagem natural para automatizar o processo de geração de código e pseudocódigo a partir de histórias de usuários, a fim de solucionar essa dificuldade. Ao fazer isso, esperamos agilizar as tarefas dos desenvolvedores, aprimorar o ciclo de vida de desenvolvimento de software e aumentar a eficácia de todo o projeto industrial.
Avanços recentes no campo do processamento de linguagem natural tornaram possível automatizar uma variedade de operações anteriormente manuais. Desenvolvimentos recentes na aprendizagem profunda, em particular, tornaram possível a criação de modelos sofisticados de linguagem natural que podem extrair contexto e significado da entrada de texto. Ao utilizar esses modelos, podemos criar código ou pseudocódigo de maneira rápida e eficiente a partir de histórias de usuários, aliviando a pressão sobre os desenvolvedores.
Nosso estudo examinará uma variedade de metodologias usadas atualmente, incluindo sistemas baseados em regras, modelos estatísticos e técnicas de aprendizagem profunda, para produzir código ou pseudocódigo a partir de histórias de usuários. Avaliaremos os benefícios e desvantagens de cada metodologia e sugeriremos uma nova estratégia que aproveite ao máximo suas vantagens.
No geral, nosso trabalho de pesquisa visa tornar o desenvolvimento de software mais eficiente e eficaz, automatizando o processo de geração de código/pseudocódigo a partir de histórias de usuários. Ao fazer isso, esperamos liberar os desenvolvedores para se concentrarem em tarefas mais complexas, reduzir o risco de erros e, em última análise, fornecer melhores produtos de software aos usuários.
Este artigo está disponível no arxiv sob licença CC 4.0.