usp ufba ferramentas kalibro

20
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 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.

Upload: campus-party-brasil

Post on 09-Jul-2015

632 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Usp Ufba Ferramentas Kalibro

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

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

3

O que falta nas ferramentas?

Page 4: Usp Ufba Ferramentas Kalibro

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

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

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

7

Funcionalidades

Page 8: Usp Ufba Ferramentas Kalibro

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

9

Funcionalidades

Page 10: Usp Ufba Ferramentas Kalibro

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

11

Funcionalidades

Page 12: Usp Ufba Ferramentas Kalibro

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

13

Funcionalidades

Page 14: Usp Ufba Ferramentas Kalibro

14

Funcionalidades

Calcular uma nota final para o código Salvar e carregar configurações e

resultados

Page 15: Usp Ufba Ferramentas Kalibro

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

16

Arquitetura

Page 17: Usp Ufba Ferramentas Kalibro

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

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

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

20

Comunidade Mezuro