[Cisl-comunidade] Ferramenta livre de análise de qualidade de código fonte em Java

Cleuton Sampaio de Melo Jr cleuton.melo em serpro.gov.br
Quarta Janeiro 29 11:35:36 BRST 2014


Comunidade, 

Todos os envolvidos na produção de software, entendem o peso que a "dívida técnica" exerce sobre os orçamentos das empresas, especialmente, as governamentais. 

E redução de dívida técnica passar por análise automatizada de código fonte. 

Existe uma ferramenta (que se diz livre), cujo nome começa com "S", que é muito utilizada para análise de código, pois possui um belo "dashboard" e é relativamente fácil de usar. 

O problema é que essa ferramenta vem mudando muito... Para começar, lançou um produto pago. Eu realmente desconfio de ferramentas livres/pagas, e existem muitos exemplos aí, no Mercado. Elas, geralmente, deixam a versão gratuita descoberta, enquanto privilegiam a versão paga.

Bem, está acontecendo com a ferramenta "S"... Primeiro, começaram a "suavizar" as métricas, talvez, para tornar os resultados mais "palatáveis" para possíveis compradores de licença, depois, começaram a substituir as ferramentas públicas tradicionais, como: PMD, Checkstyle e outras, por implementação própria. 

Foi com muito desgosto que concluí que não posso mais confiar nos resultados produzidos por essa ferramenta... 

Então, resolvemos criar uma ferramenta livre que complementa as principais métricas (antes providas pela "S"), de modo que, com um conjunto composto exclusivamente por ferramentas livres, podemos continuar analisando código fonte em Java. 

Por que usar só ferramentas livres?

Dois motivos: 

Transparência! Precisamos saber exatamente como e o que estão calculando;Padrões! Precisamos saber se estão calculado "by definition", ou seja, de acordo com a definição das métricas, e não de acordo com o "gosto" de algumas pessoas.
Se você usa Maven, então pode usar o nosso plugin "jQana", que lhe dará resultados detalhados sobre: 
Complexidade ciclomática;LCOM4 (Lack of Cohesion of Metrics - Hitz & Montazeri);RFC (Response For a Class - Chidamber & Kemerer).
Você tem e sempre terá TOTAL acesso ao código fonte do jQana, que está hospedado no Github e é licenciado sob Apache 2.0. Nossa política para "commit" é simples: 

Provas de que o código foi testado (só a presença de testes idempotentes prova isso);Transparência (não implementaremos nada que mude essa orientação):Padrões (não faremos nada que fuja às definições das métricas);Verdade (nada de "camuflar" ou "suavizar" resultados. Ferramenta não pode tomar decisão de humano);
Se seguir essa política e fizer um bom trabalho, poderá ser um "committer". 

Ele pode ser usado em conjunto com outros plugins para produzir uma análise completa e confiável do seu código Java, por exemplo, um conjunto que eu costumo usar é:
jQana (http://jqana.com);JDepend (http://clarkware.com/software/JDepend.html);PMD (http://pmd.sourceforge.net/);Checkstyle (http://checkstyle.sourceforge.net/);Findbugs (http://findbugs.sourceforge.net/)


Software proprietário não é a pior coisa do mundo. Você paga e tem um serviço em retorno. A pior coisa do mundo é falta de transparência! Software que se diz "livre" e muda as regras do jogo quando você mais precisa dele. Tenha certeza de uma coisa: o jQana é e sempre será livre e transparente. 

O jQana já está sendo utilizado, até por empresas privadas, embora ainda esteja em versão beta. Estamos sempre procurando novos desenvolvedores para nossa comunidade. 

-- 
Cleuton Sampaio, Analista. M.Sc., PMP, SCEA

------------------------------------------------------------------------------

SERPRO / SUPST / STDAI

#21 7802 / (21) 3509-7802


"Felizes aqueles cujo conhecimento é livre de ilusões e superstições", Sidarta Gautama, o Buda.


-


"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada exclusivamente a seu destinatário e pode conter informações confidenciais, protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, por gentileza, reenviá-la ao emitente, esclarecendo o equívoco."

"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a government company established under Brazilian law (5.615/70) -- is directed exclusively to its addressee and may contain confidential data, protected under professional secrecy rules. Its unauthorized use is illegal and may subject the transgressor to the law's penalties. If you're not the addressee, please send it back, elucidating the failure."
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.softwarelivre.org/pipermail/cisl-comunidade/attachments/20140129/544f09a4/attachment-0001.html>


More information about the Cisl-comunidade mailing list