quinta-feira, 6 de fevereiro de 2014

Vem aí nosso novo projeto: jQana Control


O projeto jQana , nossa ferramenta livre de análise de código fonte Java, está fazendo sucesso, porém, ainda falta uma funcionalidade bem interessante: Um painel de controle, com visão de múltiplas amostragens, o que permite tirar conclusões rapidamente sobre o estado e a evolução da qualidade do software. Veja aqui nosso novo projeto de ferramenta Livre: o jQana Control.



Dashboard

Um "dashboard" é um quatro sinótico com informações importantes sobre a situação de determinado objeto ou evento. O jQana Control oferecerá um quadro sinótico com informações sobre a situação atual de cada projeto sob seu controle, por exemplo, como o da figura abaixo:

Veremos um resumo de uma única linha por projeto, separado nos três aspectos principais: Arquitetura, Projeto e Implementação. Clicando no nome do projeto, será possível ver o resumo das principais métricas, coletadas pelos vários plugins Maven: jQana, jDepend, PMD, Checkstyle e Cobertura, indicando se houve violação ou não.

Visão evolutiva

A cada análise, o jQana Control armazena os dados coletados, permitindo a criação de gráfico evolutivo das métricas:

Isto permite controlar a evolução da Dívida Técnica ao longo do projeto, pois os dados coletados na Integração Contínua permitirão sabermos exatamente quais os rumos que o projeto está tomando, permitindo a adoção de medidas proativas.

Arquitetura

O jQana Control é composto por três módulos distintos:

  • Plugin Maven, para coletar as métricas e enviar ao Web Service;
  • RESTful Web Service, que recebe mensagens vindas do Plugin em formato JSON;
  • Report Website, que exibe o "dashboard" e os gráficos evolutivos de cada projeto.
Eis uma prévia dos diagramas do projeto:

Serão 3 componentes básicos e um auxiliar (DAO).

Que serão distribuídos entre a máquina que executa o Build (Maven Builder), que pode ser a do próprio desenvolvedor ou a que está na Integração Contínua (Continuum, Jenkins ou IBM JBE), e a máquina que hospedará o RESTful Webservice e o Website. 

Haverá total independência de banco de dados, promovida através do uso de JPA/Hibernate. 

Gostou?

Então, nos ajude a desenvolver essa nova ferramenta, que também será livre e gratuita.