TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Uma Rede Convolutional de Atenção para sumarização extrema do código-fonte

Por:   •  19/12/2021  •  Resenha  •  403 Palavras (2 Páginas)  •  67 Visualizações

Página 1 de 2

Resenha Crítica

Uma Rede Convolucional de Atenção para sumarização extrema do código-fonte

Nesse artigo os autores M. Allamanis, H. Peng, e C. Sutton demonstram uma aplicação das redes neurais, mais especificamente modelos neurais de atenção, na engenharia de software. A rede neural convolucional utiliza um conjunto de camadas convolucionais para detectar padrões na entrada, entretanto eles utilizaram o modelo de atenção, que além de fazer o que uma rede normalmente faz, esse modelo identifica locais “interessantes” onde a atenção deve ser focada.

Esse modelo de rede neural foi aplicado ao problema de sumarização extrema, que basicamente consiste em tentar resumir um snippet de código-fonte (trecho de código) em um nome curto, conciso e descritivo. Já que o código fonte de um software vai muito além de um algoritmo que é processado por uma CPU, ele também é uma forma de comunicação entre as pessoas que desenvolvem, testam, e fazem as manutenções dos sistemas computacionais. Por isso é de suma importância, dar bons nomes as funções/métodos, pois é pelo nome que uma pessoa alheia a o código vai tentar entender qual a função desse trecho de código, essa importância é embasada por pesquisa feitas na engenharia de software. Então é nesse contexto que os autores tentam empregar os modelos de rede neural para efetuarem a sumarização extrema em códigos fontes.

Para isso foi utilizado os escopos de métodos (funções) existentes como os trechos de códigos que seriam processados, e os nomes desses métodos que foram escolhidos pelos seus desenvolvedores como a resposta esperada. Esses trechos de código foram retirados de projetos Java de código aberto do GitHub.

Depois que os dados coletados foram tratados, eles foram divididos de maneira uniforme e aleatória em conjuntos de treinamento, validação e teste. Foram utilizados cada projeto separadamente, onde foi treinando uma rede para cada um dos projetos.

Como resposta às entradas dos trechos de códigos, a rede retorna uma lista de sugestões para o nome do método/função. Para medir a qualidade dessas sugestões, foi calculado o grau de correspondência dessas sugestões com o nome esperado.

Obtiveram bons resultados onde a rede consegue prever, com um bom grau de precisão os nomes esperados.

Modelar e analisar trechos de código-fonte por meio de machine-learn poderá ter impactos diretos na engenharia de software. Facilitando assim a comunicação entre os envolvidos nos processo de um software, facilitando o entendimento de códigos fontes, prevenção de bugs. E abre o leque para inúmeras ferramentas que utilizam IA na engenharia de software.

...

Baixar como (para membros premium)  txt (2.6 Kb)   pdf (36.3 Kb)   docx (7.7 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com