1 / 23

José Roberto de Melo Filho Orientadora: Prof.ª Ms . Marília Aranha Freire

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS NATAL-CENTRAL DIRETORIA DE EDUCAÇÃO E TECNOLOGIA DA INFORMAÇÃO. Implementação do Siga- Pattern no SIGAEPCT-EDU através de Análise Estática de Código utilizando a Ferramenta FindBugs Plugin.

adlai
Download Presentation

José Roberto de Melo Filho Orientadora: Prof.ª Ms . Marília Aranha Freire

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS NATAL-CENTRAL DIRETORIA DE EDUCAÇÃO E TECNOLOGIA DA INFORMAÇÃO Implementação do Siga-Pattern no SIGAEPCT-EDU através de Análise Estática de Código utilizando a Ferramenta FindBugsPlugin José Roberto de Melo Filho Orientadora: Prof.ª Ms. Marília Aranha Freire Co-orientador: Ms. Wanderson Câmara dos Santos 18 de julho de 2011

  2. Sumário • Introdução • Análise Estática • Arquitetura Eclipse Plugin • FindBugs

  3. Sumário • Padrões • Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Conclusão

  4. Introdução:Objetivos do Estudo e Implementação O principal objetivo deste trabalho consiste na criação de um detector utilizando a Análise Estática em conjunto com a ferramenta FindBugsPlugin e como esse detector pode ajudar no processo de desenvolvimento do sistema SIGA-EDU.

  5. Introdução:Motivação para a criação do detector • Necessidade para a equipe de desenvolvimento do SIGA-EDU a agilidade no processo de verificação e validação. • Ferramenta Open-Source.

  6. Introdução:Motivação para a criação do detector • Ótimo desempenho da ferramenta na detecção de falhas no sistema. • Fácil integração do FindBugs com as ferramentas utilizadas no desenvolvimento do sistema.

  7. Análise Estática • Processo realizado por uma ferramenta em um programa sem necessidade de execução do mesmo. • Análise em Código Fonte versus Código Compilado.

  8. Análise Estática • Falsos Positivos & Falsos Negativos • Penalidades • Ferramentas de análise estática • FindBugs X outras ferramentas

  9. Eclipse IDE • Histórico da plataforma • Plataforma para a integração de ferramentas de desenvolvimento. • Independência de Sistema Operacional.

  10. FindBugs • Ferramenta de Análise Estática • Utiliza a biblioteca BCEL para verificar o bytecode. • Formado por duas partes: Engine e Front-ends • Engine: Núcleo da ferramenta • Front-ends: Subdividem em Task para ANT, Plugin para Eclipse e aplicação stand-alone.

  11. Padrões • Evita a utilização de técnicas não-orientadas a objetos. • Bug Patterns são padrões de comportamentos errôneos • Detectores de Bug Patterns • Bug-patterns agrupam-se em categorias. • São identificados por pequenos códigos no arquivo findbugs.xml.

  12. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Situação • Classes “EJB” • Classes “DAO”

  13. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Ambiente de desenvolvimento • Java JDK com variáveis de ambiente configuradas • JDK 1.5 ou mais nova • Eclipse Galileo3.5.0 • FindBugssource1.3.9.qualifier

  14. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Configurando o FindBugsPlugin • findbugs.xml • messages.xml • SIGADetector.java

  15. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Configurando o FindBugsPlugin • findbugs.xml • Configuração da classe do detector • Tag<Detector> • Instancia todos os detectores definidos por essa tag • Tag<BugPattern> • Especifica o tipo de bug que será retornado

  16. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Configurando o FindBugsPlugin • messages.xml • Definição da nossa categoria: SIGAEDU

  17. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Configurando o FindBugsPlugin • messages.xml • Definição do nosso detector no arquivo messages.xml

  18. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Configurando o FindBugsPlugin • messages.xml • Definição das mensagens visíveis para os bugpatterns identificados pelos conteúdos do atributo type.

  19. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Implementando o SIGADetector.java • Deve implementar a interface Detector e estender a superclasse PreorderVisitor • Faz-se uma chamada à classe BugReporter no construtor • Declara o método visitClassContext(ClassContext)

  20. Criando um Detector do FindBugsPlugin para utilização no SIGA-EDU • Implementando o SIGADetector.java • Criamos dois métodos auxiliares, getLastName() e o isMesmoNome(), para ajudar a limpar mais o método visit(). • Sobrescrever o método visit()

  21. Resultados dos testes

  22. Conclusão • Implementação dos padrões restantes • Esse detector pode ser utilizado em qualquer Sistema Operacional que suporte o Eclipse SDK.

  23. Perguntas

More Related