CCET - TCC - Engenharia de Software
URI Permanente para esta coleçãohttps://repositorio.ufrn.br/handle/123456789/33113
Navegar
Navegando CCET - TCC - Engenharia de Software por Assunto "Análise estática"
Agora exibindo 1 - 1 de 1
- Resultados por página
- Opções de Ordenação
TCC Identificando causas de Null Pointer Exceptions em Java: uma avaliação de ferramentas de análise estática(Universidade Federal do Rio Grande do Norte, 2020-07-28) Silva, Rodrigo Lafayette da; Cavalcante, Everton Ranielly de Sousa; Coelho, Roberta de Souza; Barbosa, Eiji Adachi MedeirosAs principais linguagens de programação orientada a objetos admitem valores nulos para referências por questões de flexibilidade. Em Java, a tentativa de utilizar uma referência de objeto com valor nulo faz com que seja lançada uma Null Pointer Exception (NPE), uma das causas mais frequentes de falhas em aplicações Java. Para facilitar a tarefa dos desenvolvedores na inspeção do código fonte para localizar a origem da exceção, ferramentas de análise estática foram desenvolvidas nos últimos anos. Essas ferramentas têm se mostrado efetivas na localização de faltas através da análise do código fonte ou código binário da aplicação sem a necessidade de executá-la. Entretanto, apesar da ocorrência notável de NPEs em aplicações Java, há poucas pesquisas sobre o estudo de exceções em tempo de execução em Java e como elas podem ser detectadas quanto antes possível. A literatura também carece de estudos empíricos que especificamente analisam alternativas de código aberto capazes de detectar faltas que podem levar a NPEs em aplicações Java, uma questão relevante ao considerar os requisitos de usuário e os recursos das ferramentas. Este trabalho aborda essa lacuna através da condução de um estudo empírico com o objetivo de avaliar quatro ferramentas populares de código aberto para análise estática à respeito da detecção de faltas relacionadas a NPEs, a saber, PMD, SpotBugs, SonarLint e Infer. Essas ferramentas foram avaliadas em termos de eficácia e eficiência na sua aplicação a um conjunto de 35 projetos Java coletados a partir de conhecidos benchmarks. Os resultados obtidos apontaram SonarLint e SpotBugs como as ferramentas mais eficazes e eficientes para os projetos analisados.