1 / 32

Experiments with Clustering as a Software Remodularization Method

Experiments with Clustering as a Software Remodularization Method. Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255 Gustavo Jansen de Souza Santos Hudson Silva Borges Universidade Federal de Minas Gerais. Roteiro. Introdução Clusterização

ziva
Download Presentation

Experiments with Clustering as a Software Remodularization Method

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. Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255 Gustavo Jansen de Souza Santos Hudson Silva Borges Universidade Federal de Minas Gerais

  2. Roteiro • Introdução • Clusterização • Entidades e suas descrições • Outras questões em clusterização • Avaliação • Experimento • Conclusão 2

  3. Introdução • Valorização do Software • Manutenção • Engenharia reversa • Clusterização • Complexo • Horizonte de possibilidades • Comparação entre diferentes métodos • Foco em remodularização 3

  4. Clusterização • Atividades da engenharia reversa: • Obter informações • Composição do sistema • Grupos independentes ---------------------------------------- = Clusterização 4

  5. Clusterização • Requisitos para clusterização: • Descrição das Entidades • Acoplamento das Entidades • Algoritmo de Clusterização 5

  6. Clusterização • Questões: • Como descrever as fontes? Ex: Com caracteres. 6

  7. Clusterização • Questões: • O que é um cluster coeso? 7

  8. Clusterização • Questões: • Qual algoritmo utilizar? Depende do objetivo! 8

  9. Clusterização • Entidades e Descrições • O que são entidades: • Arquivos • Rotinas • Classes • Processos • Descrição através de features • Formal • Não formal 9

  10. Clusterização • Descrição Formal • São informações que tem impacto direto no comportamento do sistema; • Escolhas óbvias. • Testados: Tipos, Variáveis, Rotinas, Arquivos, Macros. • Limitação da taxonomia e redundância. 10

  11. Clusterização • Descrição Não Formal • São informações que não tem influência direta no comportamento do sistema; • Testados: Identificadores e Comentários; • Muitos problemas em sistemas legados; • Quando relevantes: • Menor redundância, facilmente extraída, mais informações, mais próximo do entendimento humano. 11

  12. Metricas de Similaridade • Tão importante quanto o algoritmo; • Quanto mais similar a descrição de duas entidades, maior o acoplamento entre elas. • Meio de agrupá-los: • Coeficiente de associação; • Coeficiente de distância; • Coeficiencia de correlação; • Coeficiente probabilístico 12

  13. Algoritmos de Clusterização • Algoritmos aglomerativos hierárquicos; • São não supervisionados; 13

  14. Algoritmos de Clusterização • Algoritmos aglomerativos hierárquicos; • Ex: Single, Complete, Weighted average e Unweighted average linkage; 14

  15. Algoritmos de Clusterização • Algoritmos aglomerativos hierárquicos geram uma hierarquia de clusters, onde é necessário cortá-la; 15

  16. Avaliação • Questões • Representativo • Faz sentido • Adaptáveis • Geral • Critérios de Qualidade • Redundância entre features • Expert • Design • Tamanho 16

  17. Redundância entre Features • Duas features geram resultados similares • Quantos pares de entidades no mesmo cluster tem em comum • Não é um teste perfeito • Cada feature pode ter um conjunto de features similares • Resultado depende da função de similaridade • Execução para métricas diferentes 17

  18. Critério do Expert • Faz sentido para os projetistas • Critério Ideal • Grupo de experts avaliando os clusters • Impraticável • Uso da distribuição de pastas do sistema • Visão inicial da arquitetura • Métricas • Precisão • Revocação 18

  19. Critério de Design • Maior interesse dentre os critérios • Manutenibilidade • Métricas • Coesão • Similaridade média entre entidades de mesmo cluster • Acoplamento • Similaridade média entre entidades de clusters diferentes • Métrica de similaridade parecida com a usada no algoritmo 19

  20. Critério de Tamanho • Tamanhos similares • Evitar cluster unitários ou muito grandes • Inerente à propriedade do sistema • Também depende da métrica de similaridade e do algoritmo de clusterização • Métricas • Número de clusters unitários • Número de entidades no maior cluster • Número de entidades restantes (clusters intermediários) 20

  21. Critério de Tamanho • Comparação com vários cortes na árvore hierárquica 21

  22. Experimento 22

  23. Experimento • Entidades são arquivos, pastas são subsistemas • Coesão e acoplamento são calculadas com features formais • Comparação com abordagem hill climbing de Bunch [7] 23

  24. Redundância entre Features • Features formais têm mais redundância entre si do que features não-formais • Exceção: “all” e “ident” • Métrica de similaridade influencia no resultado 24

  25. Descrições das Entidades • Propriedades do vetor de descrição das entidades • Influência no resultado a partir de vetores vazios • Tendência a criar um cluster com tais entidades 25

  26. Descrições das Entidades 26

  27. Métricas de Similaridade • Diferentes métricas para vários cortes na árvore • Métricas que não utilizam dimensões nulas tem melhores resultados • Jaccard e Sorensen-Dice dão melhores resultados 27

  28. Métricas de Similaridade 28

  29. Algoritmos de Clusterização • Comporta-se como esperado • Graduação de Complete Linkage a Simple Linkage em relação aos resultados • Complete Linkage resulta clusters mais coesos • Single Linkage resulta clusters menos acoplados • Unweighted Linkage dá melhor combinação 29

  30. Algoritmos de Clusterização 30

  31. Conclusões • Estudo de direfentes fatores que influenciam o resultado de clusterização • Como entidades são descritas • Como calcular acoplamento entre entidades • Qual variante de algoritmo utilizar • Critérios de avaliação • Algoritmos hierárquicos se comportam tão bem quanto as outras abordagens • Vantagem de recuperar partição de qualquer nível da árvore • Níveis de abstração 31

  32. Muito Obrigado 32

More Related