Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Usp Ufba Ferramentas Analizo Antlr

1,301 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

Usp Ufba Ferramentas Analizo Antlr

  1. 1. Métricas na Prática Lucianna Thomaz lucianna.th@gmail.com João M. de Miranda joaomm88@gmail.com
  2. 2. Como calcular as métricas?  Como extrair informações do código para calcular as métricas?  Duas ferramentas:  Analizo  Novo extrator
  3. 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
  4. 4. Usando a Analizo Um exemplo bem simples em Java... Main.java HelloWorld.java
  5. 5. Usando a Analizo $ analizo-metrics hello_world/java/ Resultados Gerais Resultados do Resultados do HelloWorld.java Main.java
  6. 6. Entendendo Analizo Funcionamento da Analizo
  7. 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
  8. 8. Usando o Doxyparse Outro exemplo simples, agora em C++... cat.h mammal.h animal.h cat.cc main.cc
  9. 9. Usando o Doxyparse $ doxyparse animals/cpp/
  10. 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. 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. 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. 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. 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. 15. Usando o Novo Extrator Rodando para o mesmo HelloWorld.java
  16. 16. Métricas na Prática Lucianna Thomaz lucianna.th@gmail.com João M. de Miranda joaomm88@gmail.com

×