Logo PUCPR

ESTUDANDO A GERAÇÃO DE REPRESENTAÇÕES PARA CÓDIGO-FONTE

SANTOS, Amanda de Oliveira Barbosa dos¹; PARAISO, Emerson Cabrera³
Curso do(a) Estudante: Ciência da Computação – Escola Politécnica – Câmpus Curitiba
Curso do(a) Orientador(a): Engenharia de Computação – Escola Politécnica – Câmpus Curitiba

INTRODUÇÃO: Os repositórios de software armazenam um histórico de modificações realizadas durante o desenvolvimento de um projeto de software, sendo os commits fontes de informação sobre mudanças no código-fonte. Entretanto, as mensagens de commit dependem da forma como são escritas pelos desenvolvedores, podendo apresentar diferenças na qualidade das informações. Dessa forma, a representação das mudanças de código torna-se relevante para capturar características dessas modificações de código-fonte e auxiliar as tarefas da Engenharia de Software. OBJETIVOS: Esta pesquisa teve como objetivo investigar métodos para gerar representações (embeddings) de edições de código-fonte utilizando dados não estruturados obtidos a partir de históricos de versões de repositórios de software. MATERIAIS E MÉTODO: Para isso, foi realizada uma revisão sistemática da literatura sobre Mineração de Repositórios de Software, representação de código-fonte e modelos de aprendizagem aplicados às mudanças de código. RESULTADOS: Foram analisados 16 estudos, identificando seis modelos principais voltados à representação de mudanças: Commit2Vec, CC2Vec, CCRep, CCS2VEC, CCT5 e CCBERT. Onde foram analisadas as arquiteturas, datasets, tarefas de avaliação e resultados experimentais dos modelos. As abordagens empregaram diferentes estratégias para representar alterações de código, incluindo informações de AST, linhas adicionadas, removidas e até inalteradas, contexto da mudança, operações de edição e modelos pré-treinados baseados em Transformer. Também foram investigadas estratégias de coleta de dados em repositórios do GitHub e critérios utilizados para avaliação das representações. CONSIDERAÇÕES FINAIS: A revisão sistemática permitiu identificar métodos, conjuntos de dados e arquiteturas implementadas pelos modelos na geração das embeddings de mudanças de código. Entre os modelos analisados, o CCBERT apresenta uma abordagem compatível com a proposta da pesquisa por trabalhar com Transformer e realizar pré-treinamento com as modificações de código, buscando capturar a estrutura da modificação em uma granularidade mais fina (mais detalhada) através das operações de edição e relações entre diferentes versões do código.

PALAVRAS-CHAVE: Embeddings; Código-fonte; Representações para código-fonte; Mineração de Repositório de Software; Engenharia de Software; Transformer.

APRESENTAÇÃO EM VÍDEO

Legendas:
  1. Estudante
  2. Colaborador
  3. Orientador
Esta pesquisa foi desenvolvida com bolsa CNPq no programa PIBIC.

QUERO VOTAR NESTE TRABALHO

Votação encerrada.