Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!



Artigo Java Magazine 19 - Na Medida Certa

Artigo publicado pela Java Magazine 19.

BRK##: 23 - 23

Esse artigo faz parte da revista Java Magazine edição 19. Clique aqui para ler todos os artigos desta edição

jm19_capa.gif 

Na Medida Certa

Métricas de Qualidade com JavaNCSS e JDepend

Descubra se seu código segue a arquitetura proposta e identifique possíveis problemas automaticamente

“Não é possível melhorar o que não se controla, e não é possível controlar o que não se mede”. Essa é uma das máximas da qualidade de software e a principal idéia por trás da coleta de métricas. As métricas (um termo mais técnico para "medidas") são uma forma de medir a qualidade e ajudam a obter informações como a taxa de crescimento do sistema, o local do código de maior complexidade e problemas que prejudicam a manutenção (ex.: alto acoplamento).

A qualidade do código de uma aplicação tende naturalmente a diminuir com o passar do tempo. No começo do projeto geralmente existe uma arquitetura a ser seguida e boas práticas de programação estabelecidas. Mas à medida que o projeto evolui, vêm as mudanças nos requisitos, a urgência dos prazos – e as famosas “gambiarras”.

A boa notícia é que coletar métricas pode ser tão fácil quanto clicar num botão. Essa coleta pode ser automatizada através de ferramentas como JavaNCSS e JDepend, que podem ser integradas por meio de um script do Ant, permitindo até que a obtenção de métricas faça parte do build principal da aplicação.

JavaNCSS

O JavaNCSS é uma ferramenta livre que pode ser usada para levantar métricas de tamanho, de complexidade e de nível de documentação do código, que dão uma idéia do custo de manutenção da aplicação (veja o quadro "Métricas do JavaNCSS"). A ferramenta pode ser executada de forma integrada a um script do Ant. O resultado gerado é um site HTML bem organizado, apresentando as métricas com quebras por pacotes, classes e métodos, além de um resumo geral para o projeto.

Como exemplo, vamos colher métricas do framework de persistência relacional Hibernate 2.1. A coleta de métricas do JavaNCSS é feita sobre o código fonte da aplicação. O script para obtenção de métricas tanto do JavaNCSS quanto do JDepend (que apresentaremos adiante) pode ser visto na Listagem 1.

Para executar o JavaNCSS de forma integrada ao Ant, deve ser usada a tarefa javancss. Como esta não é uma tarefa padrão do Ant é necessário defini-la no script (veja a marcação ? na Listagem 1). O próximo passo é usar a tarefa javancss para colher as métricas sobre o código fonte (marcação ). Esta tarefa pode receber os seguintes parâmetros:

§         srcdir – diretório onde estão os arquivos-fonte

§         generateReport – determina se o resultado das métricas deve ser escrito num arquivo

§         outputfile – caminho e nome do arquivo de saída, com o resultado das métricas

§         format – formato do arquivo de saída, como XML ou texto simples

 

Sendo o formato de saída especificado como XML, precisamos usar a tarefa style para fazer uma transformação em HTML, usando XSL (veja a marcação ?). A Figura 1 mostra uma parte do site resultante, contendo o resumo das métricas para o código completo do Hibernate.

JDepend

O JDepend permite coletar métricas que validam o uso adequado de alguns princípios básicos da orientação a objetos. Para executar essa ferramenta de forma automática com o Ant, é usada a tarefa jdepend (marcação ). Como essa tarefa já faz parte da distribuição do Ant, não é necessário declará-la usando taskdef.

Estes são os parâmetros da tarefa jdepend:

§         classespath – especifica o conjunto de diretórios onde está localizado o código compilado (note que, ao contrário do JavaNCSS, que analisa o código fonte, o JDepend colhe as métricas a partir do bytecode)

§         outputfile – nome do arquivo de saída, com o resultado das métricas



ATENÇÃO! A exibição deste artigo foi interrompida.


  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!







    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Autor
Júlio César Lins

é Arquiteto de Tecnologias da Qualiti Software Processes (www.qualiti.com.br) e programador certificado pela Sun. Júlio César faz parte do Corpo Editorial da Java Magazine.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 4,90 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 1,96 (assinante) ou R$ 2,45 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 1,47
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03