Utilize este link para identificar ou citar este item: https://bdm.unb.br/handle/10483/27600
Arquivos neste item:
Arquivo Descrição TamanhoFormato 
2019_CaioOliveira_AdrianoTorres_tcc.pdf689,07 kBAdobe PDFver/abrir
Título: On the impact of atoms of confusion in javascript code
Autor(es): Oliveira, Caio
Torres, Adriano Rodrigues Figueiredo
Orientador(es): Almeida, Rodrigo Bonifácio de
Assunto: Linguagem de programação (Computadores)
Engenharia de software
JavaScript (Linguagem de programação de computador)
Data de apresentação: 1-Jul-2019
Data de publicação: 25-Mai-2021
Referência: OLIVEIRA, Caio; TORRES, Adriano Rodrigues Figueiredo. On the impact of atoms of confusion in javascript code. 2019. 56 f., il. Trabalho de conclusão de curso (Bacharelado em Ciência da Computação)—Universidade de Brasília, Brasília, 2019.
Resumo: Um dos aspectos mais importantes para a engenharia de software manutenível é a pre- ocupaçao com quão compreensível o código fonte é sob a perspectiva humana. Uma vez que ter que despender muito esforço cognitivo pode desencorajar aquele que está tentando se familiarizar com novos trechos de código, torna-se evidente a importância de escrever código que seja o mais simples possível de entender. Além disso, o desenvolvimento de ferramentas que automatizem o processo de reescrita de código que é difícil de enten- der pode não apenas poupar o tempo que o programador gastaria para entendê-lo, como também o tempo que seria gasto escrevendo uma versão mais simples. Neste trabalho, apresentamos a metodologia e os resultado de uma pesquisa que conduzimos com mais de 200 programadores de diversos níveis de experiência e educação, onde buscamos isolar alguns dos menores trechos de código em JavaScript que possam confundir programado- res, trechos tais que chamamos de átomos de confusão. Após medirmos diferenças nas previsões que programadores fariam sobre as saídas trechos de código que continham ou não tais átomos, mostramos que determinados átomos tornam o código significativamente menos compreensível. Para concluir o trabalho, propomos o uso de uma ferramenta de metaprogramação para automaticamente detectar código que contenha átomos de confu- são.
Abstract: One of the main aspects of engineering maintainable software is the concern with how understandable the code is from the human perspective. Since having to spend a lot of cognitive resources can be discouraging when familiarising with new blocks of code, it is important to write code that is as straightforward as possible to understand. Moreover, developing tools to automate the process of rewriting code that is difficult to understand can save not only the time that would be spent understanding the code, but also the time spent rewriting its simpler counterpart. In this paper, we present the methodology and the results of a survey conducted on over 200 programmers of different levels of experience, in which we sought out to isolate some of the smallest possible snippets of confusing code in JavaScript, known as ’atoms of confusion’. Upon measuring the disparity in answer correctness between confusing and simplified pieces of code, as well as differences in time taken to predict the program’s output, we showed that certain constructs make the code significantly harder to understand. To conclude the work, we propose the use of a metaprogramming tool to automatically detect confusing code.
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, 2019.
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.