Understanding Code Understandability
legibilidade de forma e legibilidade de conteúdo de código; compreensão de código; revisão de código
A compreensão de programas é amplamente reconhecida como uma tarefa essencial, porém demanda muito tempo, no desenvolvimento de software. Existem muitas teorias, abordagens e ferramentas para auxiliar os desenvolvedores a entender um programa e suas funcionalidades. No entanto, não há uma compreensão abrangente dos fatores detalhados que podem afetar a legibilidade de forma e a legibilidade de conteúdo de programas e, portanto, a compreensão. Entender esses fatores é importante para ajudar os desenvolvedores a escreverem um código melhor, o que acontece antes da necessidade de entender tal código. Nesta tese, apresentamos o que sabemos até agora em termos desses fatores detalhados com base na literatura e na prática. Na literatura, conduzimos uma revisão de estudos experimentais centrados no ser humano que compararam maneiras alternativas de escrever código em termos de compreensão. Na prática, realizamos uma investigação de revisões de código e das respectivas mudanças de código realizadas pelos desenvolvedores no GitHub para melhorar a compreensão do código. Por fim, discutimos possíveis direções e desafios para a criação de guias abrangentes de codificação ou o desenvolvimento de linters para ajudar os desenvolvedores a escreverem um código mais compreensível.