Métricas de software são muito úteis para identificar qual código merece atenção. Refactoring é uma técnica bem estabelecida de como evoluir um software de maneira ordenada. Qual a relação entre as duas coisas? Ambas exigem que seja feito algumas pesquisas sobre a base de código. Sempre imaginei as vantagens de uma ferramenta que permitisse executar algo como SQL só que o domínio seria um projeto e não tabelas.
O Refactoring browser do smalltalk desenvolveu uma mini linguagem nesse sentido, para facilitar localizar, por exemplo, as invocações de um dado métodos. Finalmente esse poder chegou ao Java. Desenvolvido como um plugin para o Eclipse, o Semmle Code permite executar queries muito semelhantes ao SQL sobre projetos Java. Só de olhar o tutorial você já fica com água na boca com as possibilidades.
Os exemplos do próprio site já são muito interessantes, e mostram como essa ferramenta permite extrair informações extremamente uteis sobre uma base de código com muita facilidade. Quer saber quais classes possuem atributos públicos, use a seguinte query:
from Field f, RefType t
where f.hasModifier("public")
and
not(f.hasModifier("final"))
select f.getDeclaringType().getPackage(),
f.getDeclaringType(),
f
Muito simples, e, para completar, o plugin tem várias formas diferentes de visualizar o resultado. No geral, achei uma ótima ferramenta, vou explorar um pouco mais como ela funciona, mas pelo pouco que já ví, sei que vou acabar usando muito.
2 responses so far ↓
1 Oege de Moor // Apr 8, 2007 at 9:35 am
(excuse me for writing in English)
Thanks for your supportive comments!
Why not join the forums at
http://semmle.com/component/option,com_smf/Itemid,26/
We rely on users such as yourself to help us improve the product, and in particular to prioritise the next features to implement.
[disclosure: I'm a prof at Oxford and the CEO of Semmle]
2 ASOBrasil // Apr 9, 2007 at 1:29 pm
Essa é realmente uma ótima dica! Muito legal esse plugin.
Leave a Comment