O artigo apresenta uma abordagem inovadora para detectar similaridades
entre classes Java, empregando árvores de sintaxe abstrata e três algoritmos de similaridade de árvores. Os resultados, validados em testes personalizados e no org.eclipse.compare-plug-in, destacam o algoritmo de distância de edição de árvores como o mais eficaz, seguido pelo isomorfismo de subárvores comuns de cima para baixo. Essa abordagem identificou com sucesso similaridades estruturais entre diferentes versões do projeto org.eclipse.compare-plug-in, oferecendo insights valiosos sobre a evolução do código. Observou-se que o algoritmo de distância de edição de árvores foi robusto na detecção de pequenas mudanças, enquanto o isomorfismo de subárvores comuns foi sensível a alterações próximas à raiz das árvores. Além disso, a visualização por mapas de calor demonstrou de forma clara as similaridades entre classes de diferentes versões. Em suma, o artigo destaca uma abordagem promissora para identificar similaridades, compreender refatorações e analisar dependências entre versões de projetos de software através de árvores em java.