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.

[VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software

343 views

Published on

Apresentação do PolymorphicView no VEM2014, evento pertencente ao CBSoft2014.

Published in: Technology
  • Be the first to comment

[VEM2014] PolymorphicView: Visualizando o uso do Polimorfismo em Projetos de Software

  1. 1. 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
  2. 2. Introdução Polimorfismo  Conceito chave da OO  Benefícios  Formato de uso
  3. 3. Problema
  4. 4. Proposta: PolymorphicView
  5. 5. Proposta: PolymorphicView
  6. 6. Experimento: Processo 1. Extrair os dados dos projetos 2. Pesquisar todas as classes abstratas e interfaces 3. Filtrar DIT >= 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
  7. 7. Experimento: JUnit
  8. 8. Experimento: JUnit
  9. 9. Experimento: FindBugs
  10. 10. Experimento: FindBugs
  11. 11. Discussão  Apoio na localização de estruturas polimórficas  Forma de encontrar e detectar patterns  PolymorphicView Perspectiva Estrutural + Perspectiva Comportamental  Compreensão de padrões arquiteturais
  12. 12. Conclusões e Trabalhos Futuros Limitações  Dificuldade em analisar todos os níveis de hierarquia  Em alguns casos, precisou-se recorrer ao código
  13. 13. 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ão encontrados?  quais anti-padrões são encontrados?  há diferenças entre o uso de polimorfismo em Java e em outras linguagens?  uso do polimorfismo é uma opção deste as primeiras versões de um tipo ou é o resultado de um processo de evolução do software, através de refatorações, por exemplo?
  14. 14. Dúvidas?
  15. 15. Muito Obrigado! Fábio Petrillo, Guilherme Lacerda, Marcelo Pimenta, Carla Freitas {fspetrillo,gslacerda,mpimenta,carla}@inf.ufrgs.br INF-UFRGS/FacIn-UniRitter

×