1. Métricas na Prática
Lucianna Thomaz
lucianna.th@gmail.com
João M. de Miranda
joaomm88@gmail.com
2. Como calcular as métricas?
Como extrair informações do código para
calcular as métricas?
Duas ferramentas:
Analizo
Novo extrator
3. Analizo
Ferramenta para análise do código-fonte
Multi-linguagem (C, C++ e Java)
Uso simples pela linha de comando
Reporta informações gerais e individuais de
cada módulo
Feita em Perl
http://softwarelivre.org/mezuro/analizo
7. Doxyparse
O Doxyparse usa o parser do Doxygen e
reporta as informações das suas estruturas de
dados
A chave para a extração de informações multi-
linguagem é o Doxygen
10. O problema
Queriamos extrair mais informações dos
métodos, atributos e classes
Complexidade Ciclomática, parâmetros,
abstratos e virtuais
Para resolver teríamos que mexer no Doxygen
Decidimos fazer um novo extrator!
11. Novo Extrator
Uso da ANTLR (www.antlr.org)
”is a language tool that provides a framework
for constructing recognizers, interpreters,
compilers, and translators from grammatical
descriptions containing actions in a variety of
target languages”
Gerador de Lexer e Parser na target language
12. Novo Extrator
●Definição de uma gramática
para reconhecer os padrões
desejados
● Target Language: Ruby
Trecho da gramática para
definição de método em Java
13. Uma Gramática
Queremos reconhecer uma Como fica a gramática?
simples declaração de variável:
• Toda declaração de variável
é formada por um tipo e seu
nome
• Pode também conter uma
inicialização com um número
14. O Modelo
Utilizamos o modelo para guardar as
informações e reportá-las ao final
Classe
Atributos
Métodos
Variáveis Locais
Parâmetros
Usos de variáveis e métodos
Cada um contém seu tipo e modificadores
15. Usando o Novo Extrator
Rodando para o mesmo
HelloWorld.java
16. Métricas na Prática
Lucianna Thomaz
lucianna.th@gmail.com
João M. de Miranda
joaomm88@gmail.com