[vem2014] polymorphicview: visualizando o uso do polimorfismo em projetos de software
DESCRIPTION
Apresentação do PolymorphicView no VEM2014, evento pertencente ao CBSoft2014.TRANSCRIPT
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
Introdução
Polimorfismo
Conceito chave da OO
Benefícios
Formato de uso
Problema
Proposta: PolymorphicView
Proposta: PolymorphicView
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
Experimento: JUnit
Experimento: JUnit
Experimento: FindBugs
Experimento: FindBugs
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
Conclusões e Trabalhos Futuros
Limitações
Dificuldade em analisar todos os níveis dehierarquia
Em alguns casos, precisou-se recorrer aocódigo
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?
Dúvidas?
Muito Obrigado!
Fábio Petrillo, Guilherme Lacerda, Marcelo Pimenta, Carla Freitas
{fspetrillo,gslacerda,mpimenta,carla}@inf.ufrgs.br
INF-UFRGS/FacIn-UniRitter