Evaluating the Code Comprehension of Novices with Eye Tracking - da Costa, José Aldo Silva; Gheyi, Rohit (Anais Estendidos do Congresso Brasileiro de Software: Teoria e Prática (CBSoft), 2023)
A compreensão de código é essencial para a evolução do software, mas pode ser prejudicada por problemas estruturais no código. Apesar de sua importância, pesquisadores muitas vezes dependem de métricas de código estático para investigar a compreensão do código, sem considerar aspectos dinâmicos, como o esforço visual envolvido. Portanto, nosso objetivo é preencher essa lacuna examinando a compreensão do código usando métricas de rastreamento ocular. Realizamos três estudos controlados de rastreamento ocular com 128 novatos em três linguagens de programação distintas, C, Python e Java, utilizando construções com diferentes níveis de granularidade, ou seja, átomos de confusão, refatorações e anotações #ifdef. Em relação aos átomos de confusão, descobrimos que a versão esclarecida do código reduziu o tempo e o número de tentativas em 38,6% e 28%, respectivamente. O uso da refatoração Extract Method reduziu significativamente o tempo de duas tarefas em 70% a 78,8%, enquanto aumentou a precisão de três tarefas em 20% a 34,4%. O uso de anotações #ifdef apresentou reduções na região modificada de 46,9% no tempo, 44,7% na duração da fixação, 48,4% no número de fixações e 60,5% no número de regressões. Além disso, também identificamos padrões em nossos dados observando várias transições visuais avançando e retrocedendo entre elementos de código específicos, o que nos permitiu inferir confusão no código. Esses resultados fornecem informações valiosas para educadores, profissionais e pesquisadores sobre determinadas transformações e seu potencial para facilitar ou dificultar a compreensão do código. O estudo também destaca o potencial de métricas visuais para revelar o impacto de transformações que não podem ser capturadas por métricas de código estático. Nossos resultados também abrem caminho para o desenvolvimento de ferramentas mais avançadas que rastreiam os movimentos oculares dos desenvolvedores e os auxiliam com sugestões úteis.