Kalibro: Uma ferramenta de configuração e interpretação de métricas de código-fonte
1. Kalibro
Uma ferramenta de
configuração e interpretação de
métricas de código-fonte
Carlos Morais
Paulo Meirelles
Campus Party 2010
28 de Janeiro de 2010
By Carlos Morais, Paulo Meirelles and Fabio Kon is licensed under a Creative Commons Atribuição 2.5 Brasil
LicenseBased on a work at ccsl.ime.usp.br/mangue and softwarelivre.org/mezuro.
2. Motivação
Software livre e métodos ágeis
código-fonte: foco das atenções
Potencial de uso das métricas de código-
fonte não é explorado
Ferramentas apresentam valores isolados
para as métricas
2
4. O que falta nas ferramentas?
Flexibilidade na avaliação e recomendação
Possibilidade de diferenciação em domínio
de aplicação
Resultados em linguagem natural ou
gráfica
4
5. Kalibro
Uma ferramenta projetada para ser incorporada
a qualquer ferramenta de métricas
Especialista em métricas especifica um conjunto
de intervalos de avaliação para cada métrica
provida pela ferramenta base
Essa configuração pode ser usada por um
desenvolvedor comum para obter uma avaliação
de fácil entendimento do código-fonte analizado
6. Funcionalidades
Definir um projeto de avaliação de
código-fonte
Carregar métricas providas pela
ferramenta base
6
12. Funcionalidades
Calcular valores das métricas por
categoria
Visualizar resultados totalizados do
código inteiro
Visualizar resultados detalhados por
classe
12
14. Funcionalidades
Calcular uma nota final para o código
Salvar e carregar configurações e
resultados
14
15. Arquitetura
Entidades com responsabilidades bem
definidas
Serviços seguindo o padrão de projeto
Façade
Facilidade de integração com a
ferramenta base
15
17. Integração
A ferramenta base precisa apenas
implementar dois métodos:
GetSupportedMetrics()
devolve a lista de métricas nativas
calculateMetrics(String codePath)
calcula os valores das métricas
nativas
17
18. Analizo
Software livre também desenvolvido pelo grupo
de qualidade de código do CCSL-USP
Multilinguagem: C, C++ e Java
Usa o Doxygen
Ótimo desempenho:
Pidgin: +300 mil linhas de código C++ = ~1 min
PostgreSQL: +500 mil linhas de codigo C = ~2 min
Janus: + 60 mil linhas de código Java = ~20 seg
18
19. O que virá ...
Desenvolvimento do Mezuro, um serviço Web
baseado na Kalibro integrada com Analizo e
MacXim. Esse serviço permitirá aos usuários
submeter código-fonte para ser avaliado.
Realizar uma análise estatística dos valores
das métricas para os projetos submetidos,
visando obter valores de referência.