Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests

Detalhes bibliográficos
Autor(a) principal: Silva, Afonso Dias de Oliveira Conceição
Data de Publicação: 2019
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Biblioteca Digital de Monografias da UnB
Texto Completo: https://bdm.unb.br/handle/10483/30002
Resumo: Trabalho de conclusão de curso (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.
id UNB-2_9d97e2c73d520be5e34acfae319fb6d6
oai_identifier_str oai:bdm.unb.br:10483/30002
network_acronym_str UNB-2
network_name_str Biblioteca Digital de Monografias da UnB
repository_id_str 11571
spelling Silva, Afonso Dias de Oliveira ConceiçãoCanedo, Edna DiasSILVA, Afonso Dias de Oliveira Conceição. Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests. 2019. 53 f. Trabalho de conclusão de curso (Bacharelado em Ciência da Computação)—Universidade de Brasília, Brasília, 2019.https://bdm.unb.br/handle/10483/30002Trabalho de conclusão de curso (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.Analisadores estáticos são ferramentas bastante utilizadas pelos desenvolvedores, com elas é possível detectar possíveis erros e má prática antes que o código seja enviado para repositórios ou entrar em produção. Porém, mesmo com todos esses benefícios, elas ainda possuem alguns problemas que podem prejudicar sua utilização. Diversas pesquisas buscam evidenciar alguns desses problemas e moldam algumas soluções possíveis para encaixar melhor o uso dessas ferramentas diretamente no fluxo de trabalho dos desen volvedores, indicando que a usabilidade das ferramentas de análise estática é fortemente impactada pelo jeito que os desenvolvedores programam no dia a dia. Nesse estudo estamos propondo a criação de uma nova ferramenta que, com ajuda de bots existentes que observam repositórios do código-fonte e executam análises estáticas e transformações de código-fonte, fará correções automáticas se baseando no modelo Pull based development. Essa ferramenta será reutilizável por se basear numa arquitetura de microsserviços utilizando containers Docker e nela estarão os analisadores estáticos atualmente mais utilizados para as linguagens JavaScript e TypeScript. Além disso, nossa ferramenta contará com novas regras criadas como resultado do presente trabalho. O objetivo deste projeto é criar correções automáticas com o intuito de melhorar a qualidade do código e segurança de projetos baseados em JavaScript e TypeScript e contribuir diretamente para o projeto de pesquisa e bot C-3PR, que buscar criar uma nova abordagem para a utilização de analisadores estáticos. Validamos fazendo a utilização do C-3PR, em conjunto com nossa ferramenta proposta, em cerca de 21 projetos do Tribunal de Contas da União. Até o momento as ferramentas incorporadas ao C-3PR pelo presente trabalho foram executadas 1466 vezes, as quais resultaram, até o momento, na criação de 30 pull requests (19 aceitas) nos repositórios analisados, assim contribuindo diretamente na qualidade do código, diminuição de code smells, aumento da segurança e diminuição de más práticas nos código-fonte de cada projeto analisado.Submitted by Anita Souza (anita.souza@bce.unb.br) on 2022-02-23T13:04:06Z No. of bitstreams: 1 2019_AfonsoDiasOliveiraSilva_tcc.pdf: 468142 bytes, checksum: a391c06e12fbd60885c3f53caf6ed34e (MD5)Approved for entry into archive by Biblioteca Digital de Monografias Gerência (bdm@bce.unb.br) on 2022-02-23T13:05:44Z (GMT) No. of bitstreams: 1 2019_AfonsoDiasOliveiraSilva_tcc.pdf: 468142 bytes, checksum: a391c06e12fbd60885c3f53caf6ed34e (MD5)Made available in DSpace on 2022-02-23T13:05:44Z (GMT). No. of bitstreams: 1 2019_AfonsoDiasOliveiraSilva_tcc.pdf: 468142 bytes, checksum: a391c06e12fbd60885c3f53caf6ed34e (MD5)Static analyzers are widely used tools by developers, with them it is possible to detect possible errors and bad practice before the code is sent to repositories or go into produc tion. However, even with all these benefits, they still have some problems that may bother them. There are a number of researches that seek to highlight some of these issues and shape some possible solutions to better fit the use of these tools directly into the workflow of developers, indicating that the usability of static analysis tools is strongly impacted by the way developers program day by day. In this study we are proposing the creation of a new tool that, with the help of existing bots that observe source code repositories and perform static analyzes and source code transformations on the set of changes, will make automatic corrections based on the model Pull-based development. This tool will be reusable because it is based on a microservice architecture using containers Docker and it will have the most used static parsers for JavaScript and TypeScript languages. In addition, our tool will have new rules created especially for this project. The objective of this project is to create automatic corrections with the aim of im proving the quality of the code and security of projects owned by the Tribunal de Contas da União and contribute directly to the C-3PR bot, which consists of a project master of the student Antônio Carlos de Carvalho Júnior, who seek to create a new approach to the use of static analyzers. We validated the use of C-3PR, together with our proposed tool, in approximately 21 projects of the Tribunal de Contas da União. To date, 30 pull-requests have been created in the repositories (19 accepted), thus contributing directly in the quality of the code, decrease code smells, increase of security and decrease of bad practices in the source code of each analyzed project.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.info:eu-repo/semantics/openAccessCódigo-fonteLinguagem de programação (Computadores)JavaScript (Linguagem de programação de computador)Programação (Computadores)AutomaçãoCorreções automáticas de problemas em TypeScript e JavaScript via Pull Requestsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesis2022-02-23T13:05:44Z2022-02-23T13:05:44Z2019-07-18porreponame:Biblioteca Digital de Monografias da UnBinstname:Universidade de Brasília (UnB)instacron:UNBLICENSElicense.txtlicense.txttext/plain1817http://bdm.unb.br/xmlui/bitstream/10483/30002/2/license.txt21554873e56ad8ddc69c092699b98f95MD52ORIGINAL2019_AfonsoDiasOliveiraSilva_tcc.pdf2019_AfonsoDiasOliveiraSilva_tcc.pdfapplication/pdf468142http://bdm.unb.br/xmlui/bitstream/10483/30002/1/2019_AfonsoDiasOliveiraSilva_tcc.pdfa391c06e12fbd60885c3f53caf6ed34eMD5110483/300022022-02-23 10:05:44.785oai:bdm.unb.br:10483/30002w4kgbmVjZXNzw6FyaW8gY29uY29yZGFyIGNvbSBhIGxpY2Vuw6dhIGRlIGRpc3RyaWJ1acOnw6NvIG7Do28tZXhjbHVzaXZhLAphbnRlcyBxdWUgbyBkb2N1bWVudG8gcG9zc2EgYXBhcmVjZXIgbmEgQmlibGlvdGVjYSBEaWdpdGFsIGRhIFByb2R1w6fDo28gCkRpc2NlbnRlIGRhIFVuaXZlcnNpZGFkZSBkZSBCcmFzw61saWEuIFBvciBmYXZvciwgbGVpYSBhCmxpY2Vuw6dhIGF0ZW50YW1lbnRlLiBDYXNvIG5lY2Vzc2l0ZSBkZSBhbGd1bSBlc2NsYXJlY2ltZW50byBlbnRyZSBlbQpjb250YXRvIGF0cmF2w6lzIGRlOiBiZG1AYmNlLnVuYi5iciBvdSAzMTA3LTI2ODcuCgpMSUNFTsOHQSBERSBESVNUUklCVUnDh8ODTyBOw4NPLUVYQ0xVU0lWQQoKQW8gYXNzaW5hciBlIGVudHJlZ2FyIGVzdGEgbGljZW7Dp2EsIG8vYSBTci4vU3JhLiAoYXV0b3Igb3UgZGV0ZW50b3IgZG9zCmRpcmVpdG9zIGRlIGF1dG9yKToKCmEpIENvbmNlZGUgw6AgVW5pdmVyc2lkYWRlIGRlIEJyYXPDrWxpYSBvIGRpcmVpdG8gbsOjby1leGNsdXNpdm8gZGUKcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGNvbXVuaWNhciBlL291CmRpc3RyaWJ1aXIgbyBkb2N1bWVudG8gZW50cmVndWUgKGluY2x1aW5kbyBvIHJlc3Vtby9hYnN0cmFjdCkgZW0KZm9ybWF0byBkaWdpdGFsIG91IGltcHJlc3NvIGUgZW0gcXVhbHF1ZXIgbWVpby4KCmIpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUKZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYQp0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50byBsaGUgw6kKcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UgZW50aWRhZGUuCgpjKSBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSBjb250w6ltIG1hdGVyaWFsIGRvIHF1YWwgbsOjbyBkZXTDqW0gb3MKZGlyZWl0b3MgZGUgYXV0b3IsIGRlY2xhcmEgcXVlIG9idGV2ZSBhdXRvcml6YcOnw6NvIGRvIGRldGVudG9yIGRvcwpkaXJlaXRvcyBkZSBhdXRvciBwYXJhIGNvbmNlZGVyIMOgIFVuaXZlcnNpZGFkZSBkZSBCcmFzw61saWEgb3MgZGlyZWl0b3MKcmVxdWVyaWRvcyBwb3IgZXN0YSBsaWNlbsOnYSwgZSBxdWUgZXNzZSBtYXRlcmlhbCBjdWpvcyBkaXJlaXRvcyBzw6NvIGRlCnRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIG91CmNvbnRlw7pkbyBkbyBkb2N1bWVudG8gZW50cmVndWUuCgpTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBiYXNlYWRvIGVtIHRyYWJhbGhvIGZpbmFuY2lhZG8gb3UgYXBvaWFkbwpwb3Igb3V0cmEgaW5zdGl0dWnDp8OjbyBxdWUgbsOjbyBhIFVuaXZlcnNpZGFkZSBkZSBCcmFzw61saWEsIGRlY2xhcmEgcXVlCmN1bXByaXUgcXVhaXNxdWVyIG9icmlnYcOnw7VlcyBleGlnaWRhcyBwZWxvIHJlc3BlY3Rpdm8gY29udHJhdG8gb3UKYWNvcmRvLgoKQSBVbml2ZXJzaWRhZGUgZGUgQnJhc8OtbGlhIGlkZW50aWZpY2Fyw6EgY2xhcmFtZW50ZSBvKHMpIHNldSAocykgbm9tZSAocykKY29tbyBvIChzKSBhdXRvciAoZXMpIG91IGRldGVudG9yIChlcykgZG9zIGRpcmVpdG9zIGRvIGRvY3VtZW50bwplbnRyZWd1ZSwgZSBuw6NvIGZhcsOhIHF1YWxxdWVyIGFsdGVyYcOnw6NvLCBwYXJhIGFsw6ltIGRhcyBwZXJtaXRpZGFzIHBvcgplc3RhIGxpY2Vuw6dhLgo=Biblioteca Digital de Monografiahttps://bdm.unb.br/PUBhttp://bdm.unb.br/oai/requestbdm@bce.unb.br||patricia@bce.unb.bropendoar:115712022-02-23T13:05:44Biblioteca Digital de Monografias da UnB - Universidade de Brasília (UnB)false
dc.title.pt_BR.fl_str_mv Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
title Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
spellingShingle Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
Silva, Afonso Dias de Oliveira Conceição
Código-fonte
Linguagem de programação (Computadores)
JavaScript (Linguagem de programação de computador)
Programação (Computadores)
Automação
title_short Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
title_full Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
title_fullStr Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
title_full_unstemmed Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
title_sort Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests
author Silva, Afonso Dias de Oliveira Conceição
author_facet Silva, Afonso Dias de Oliveira Conceição
author_role author
dc.contributor.author.fl_str_mv Silva, Afonso Dias de Oliveira Conceição
dc.contributor.advisor1.fl_str_mv Canedo, Edna Dias
contributor_str_mv Canedo, Edna Dias
dc.subject.keyword.pt_BR.fl_str_mv Código-fonte
Linguagem de programação (Computadores)
JavaScript (Linguagem de programação de computador)
Programação (Computadores)
Automação
topic Código-fonte
Linguagem de programação (Computadores)
JavaScript (Linguagem de programação de computador)
Programação (Computadores)
Automação
description Trabalho de conclusão de curso (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.
publishDate 2019
dc.date.submitted.none.fl_str_mv 2019-07-18
dc.date.accessioned.fl_str_mv 2022-02-23T13:05:44Z
dc.date.available.fl_str_mv 2022-02-23T13:05:44Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv SILVA, Afonso Dias de Oliveira Conceição. Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests. 2019. 53 f. Trabalho de conclusão de curso (Bacharelado em Ciência da Computação)—Universidade de Brasília, Brasília, 2019.
dc.identifier.uri.fl_str_mv https://bdm.unb.br/handle/10483/30002
identifier_str_mv SILVA, Afonso Dias de Oliveira Conceição. Correções automáticas de problemas em TypeScript e JavaScript via Pull Requests. 2019. 53 f. Trabalho de conclusão de curso (Bacharelado em Ciência da Computação)—Universidade de Brasília, Brasília, 2019.
url https://bdm.unb.br/handle/10483/30002
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Monografias da UnB
instname:Universidade de Brasília (UnB)
instacron:UNB
instname_str Universidade de Brasília (UnB)
instacron_str UNB
institution UNB
reponame_str Biblioteca Digital de Monografias da UnB
collection Biblioteca Digital de Monografias da UnB
bitstream.url.fl_str_mv http://bdm.unb.br/xmlui/bitstream/10483/30002/2/license.txt
http://bdm.unb.br/xmlui/bitstream/10483/30002/1/2019_AfonsoDiasOliveiraSilva_tcc.pdf
bitstream.checksum.fl_str_mv 21554873e56ad8ddc69c092699b98f95
a391c06e12fbd60885c3f53caf6ed34e
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Monografias da UnB - Universidade de Brasília (UnB)
repository.mail.fl_str_mv bdm@bce.unb.br||patricia@bce.unb.br
_version_ 1801493173065744384