usp ufba ferramentas kalibro
TRANSCRIPT
![Page 1: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/1.jpg)
Uma ferramenta de configuração e interpretação de
métricas de código-fonteCarlos Morais
Paulo Meirelles
Campus Party 2010
28 de Janeiro de 2010
Kalibro
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.
![Page 2: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/2.jpg)
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
![Page 3: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/3.jpg)
3
O que falta nas ferramentas?
![Page 4: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/4.jpg)
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
![Page 5: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/5.jpg)
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
![Page 6: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/6.jpg)
6
Funcionalidades
Definir um projeto de avaliação de código-fonte
Carregar métricas providas pela ferramenta base
![Page 7: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/7.jpg)
7
Funcionalidades
![Page 8: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/8.jpg)
8
Funcionalidades
Criar métricas compostas a partir das providas pela ferramenta base
Configurar métricas (categoria e peso)
![Page 9: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/9.jpg)
9
Funcionalidades
![Page 10: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/10.jpg)
10
Funcionalidades
Definir intervalos de avaliação das métricas
Associar nota, comentários e recomendações aos intervalos
![Page 11: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/11.jpg)
11
Funcionalidades
![Page 12: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/12.jpg)
12
Funcionalidades
Calcular valores das métricas por categoria
Visualizar resultados totalizados do código inteiro
Visualizar resultados detalhados por classe
![Page 13: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/13.jpg)
13
Funcionalidades
![Page 14: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/14.jpg)
14
Funcionalidades
Calcular uma nota final para o código Salvar e carregar configurações e
resultados
![Page 15: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/15.jpg)
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
![Page 16: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/16.jpg)
16
Arquitetura
![Page 17: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/17.jpg)
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
![Page 18: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/18.jpg)
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
![Page 19: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/19.jpg)
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.
![Page 20: Usp Ufba Ferramentas Kalibro](https://reader033.vdocuments.net/reader033/viewer/2022052623/559e7cae1a28abdf318b4873/html5/thumbnails/20.jpg)
20
Comunidade Mezuro