Utilize este link para identificar ou citar este item: https://bdm.unb.br/handle/10483/25111
Arquivos neste item:
Arquivo Descrição TamanhoFormato 
2018_RenanRheinboldt_RodrigoChaves_tcc.pdf399,73 kBAdobe PDFver/abrir
Título: Uma abordagem para simplificar utilização de analisadores estáticos e ferramentas de transformação de código
Autor(es): Rheinboldt, Renan Lobato
Chaves, Rodrigo de Araujo
Orientador(es): Almeida, Rodrigo Bonifácio de
Assunto: Análise estatística
Programação (Computadores)
Data de apresentação: 24-Mai-2018
Data de publicação: 29-Jul-2020
Referência: RHEINBOLDT, Renan Lobato; CHAVES, Rodrigo de Araujo. Uma abordagem para simplificar utilização de analisadores estáticos e ferramentas de transformação de código. 2018. x, 25 f. Trabalho de Conclusão de Curso (Licenciatura em Ciência da Computação)—Universidade de Brasília, Brasília, 2018.
Resumo: Ferramentas de análise estática auxiliam muito bem o desenvolvimento de software, detectando erros de programação e más práticas. Mesmo com seus benefícios claramente reconhecidos, elas ainda são muitas vezes subutilizadas. Existem diversas pesquisas que buscam identificar problemas em sua utilização e propor abordagens mais efetivas para incentivar o uso. Muitas abordagens propostas estão ligadas diretamente ao fluxo de trabalho dos desenvolvedores, indicando que a usabilidade das ferramentas de análise estática é fortemente impactada pelo jeito que os desenvolvedores programam no dia-a-dia. Neste estudo propomos Amanda-Bot, uma abordagem para a correção automática de problemas de código-fonte para o modelo pull-based development, um fluxo de trabalho que permite colaboração distribuída sobre uma base de código compartilhado e que está se tornando especialmente popular em start-ups e na comunidade de software de código aberto. Amanda-Bot funciona como um mecanismo baseado em bots, que observa o repositório do código-fonte e executa análises estáticas e transformações de código-fonte sobre o conjunto de mudanças, toda vez que uma modificação do código-fonte é enviada para um repositório de código-fonte. Nas situações em que o bot detecta um problema, ele gera automaticamente um patch e cria um pull-request para corrigí-lo. O principal objetivo do nosso modelo é criar correções automáticas com o objetivo de melhorar a experiência do desenvolvedor, seja reduzindo o esforço para corrigir os alertas ou simplesmente servindo como um exemplo motivacional de como a correção poderia ser. Nossa abordagem traz correções automáticas para o pull based development workflow e pode identificar quais características especificas desse modelo para afetam a adoção de bots e a geração de correções automáticas. Nós estamos usando AmandaBot em diversos projetos desde start-ups até empresa de engenharia de software em Brasília, Brasil. Em poucas semanas, AmandaBot enviou 17 pull requests (7 já foram aceitos), eliminando mais de 3500 code smells em 12 projetos.
Abstract: Static analysis tools greatly assist software development by detecting common programming mistakes and bad practices. Despite their recognized benefits, they are still underused, and thus several research works attempt to identify the problems existing approaches present and suggest changes to enhance their effectiveness. Such improvements are known to be highly workflow dependent, indicating that the way developers program on their daily basis have a large impact on the usefulness of static analysis tools. In this study we propose Amanda-Bot, an approach towards the automatic correction of source code issues for the pull-based development model, a workflow that enables distributed collaboration over a shared code base and that is becoming specially popular in start-ups and in the open source software community. Amanda-Bot works as a bot-based mechanism that watches the source code repository and runs static analyses and source code transformations over the change set, every time a source code modification is pushed to a source code repository. In the situations the bot detects an issue, it automatically generates a patch and creates a pull-request to fix it. The main rationale for our design is that automatic fixes have been found to improve developer experience, either by reducing the effort to correct the alarms or simply by serving as a motivating example of what a fix could be. Our approach brings automatic correction to the pull-based development model and is able to identify what specific characteristics of this model might affect bots adoption and automatic fixes generation. We have been using Amanda-Bot in several projects developed by start-ups from a software engineering industry area in Brasília, Brazil. In a few weeks, Amanda-Bot sent 17 pullrequests (7 have already been accepted), fixing more than 3500 code-smells in 12 systems.
Informações adicionais: Trabalho de Conclusão de Curso (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2018.
Licença: A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta.
Aparece na Coleção:Ciência da Computação



Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.