[vem2014] polymorphicview: visualizando o uso do polimorfismo em projetos de software
DESCRIPTION
Apresentação do PolymorphicView no VEM2014, evento pertencente ao CBSoft2014.TRANSCRIPT
![Page 1: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/1.jpg)
PolymorphicView:Visualizando o uso do Polimorfismo
em Projetos de Software
Fábio Petrillo, Guilherme Lacerda, Marcelo Pimenta, Carla Freitas
{fspetrillo,gslacerda,mpimenta,carla}@inf.ufrgs.br
INF-UFRGS/FacIn-UniRitter
![Page 2: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/2.jpg)
Introdução
Polimorfismo
Conceito chave da OO
Benefícios
Formato de uso
![Page 3: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/3.jpg)
Problema
![Page 4: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/4.jpg)
Proposta: PolymorphicView
![Page 5: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/5.jpg)
Proposta: PolymorphicView
![Page 6: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/6.jpg)
Experimento: Processo
1. Extrair os dados dos projetos
2. Pesquisar todas as classes abstratas e interfaces
3. FiltrarDIT >= 1, NOC >= 1, NAM >= 1, pelo menos um cliente
4. Construir o PolymorphicView
5. Analisar o polimorfismo através da visualização
6. Complementar a análise com o código fonte
![Page 7: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/7.jpg)
Experimento: JUnit
![Page 8: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/8.jpg)
Experimento: JUnit
![Page 9: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/9.jpg)
Experimento: FindBugs
![Page 10: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/10.jpg)
Experimento: FindBugs
![Page 11: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/11.jpg)
Discussão
Apoio na localização de estruturas polimórficas
Forma de encontrar e detectar patterns
PolymorphicViewPerspectiva Estrutural + Perspectiva Comportamental
Compreensão de padrões arquiteturais
![Page 12: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/12.jpg)
Conclusões e Trabalhos Futuros
Limitações
Dificuldade em analisar todos os níveis dehierarquia
Em alguns casos, precisou-se recorrer aocódigo
![Page 13: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/13.jpg)
Conclusões e Trabalhos Futuros
Perspectivas como os tipos polimórficos se relacionam com seus clientes?
quais padrões de projeto que adotam polimorfismo sãoencontrados?
quais anti-padrões são encontrados?
há diferenças entre o uso de polimorfismo em Java e em outraslinguagens?
uso do polimorfismo é uma opção deste as primeiras versões deum tipo ou é o resultado de um processo de evolução dosoftware, através de refatorações, por exemplo?
![Page 14: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/14.jpg)
Dúvidas?
![Page 15: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/15.jpg)
Muito Obrigado!
Fábio Petrillo, Guilherme Lacerda, Marcelo Pimenta, Carla Freitas
{fspetrillo,gslacerda,mpimenta,carla}@inf.ufrgs.br
INF-UFRGS/FacIn-UniRitter
![Page 16: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/16.jpg)
![Page 17: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/17.jpg)
![Page 18: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/18.jpg)
![Page 19: [VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software](https://reader036.vdocuments.us/reader036/viewer/2022081404/559580251a28abc73b8b4598/html5/thumbnails/19.jpg)