32
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

Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Embed Size (px)

Citation preview

Page 1: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Experiments with Clustering as a Software Remodularization Method

Nicolas Anquetil and Timothy C. LethbridgeUniversity of Ottawa, Canada

WCRE 1999: 235-255

Gustavo Jansen de Souza SantosHudson Silva Borges

Universidade Federal de Minas Gerais

Page 2: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Roteiro

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

2

Page 3: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 4: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Clusterização

Atividades da engenharia reversa:

Obter informações Composição do sistema Grupos independentes

---------------------------------------- = Clusterização

4

Page 5: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Clusterização

Requisitos para clusterização:

Descrição das Entidades Acoplamento das Entidades Algoritmo de Clusterização

5

Page 6: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Clusterização

Questões:

Como descrever as fontes?

Ex: Com caracteres.

6

Page 7: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Clusterização

Questões: O que é um cluster coeso?

7

Page 8: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Clusterização

Questões:

Qual algoritmo utilizar?

Depende do objetivo!

8

Page 9: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 10: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 11: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 12: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 13: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Algoritmos de Clusterização

Algoritmos aglomerativos hierárquicos; São não supervisionados;

13

Page 14: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Algoritmos de Clusterização

Algoritmos aglomerativos hierárquicos; Ex: Single, Complete, Weighted average e

Unweighted average linkage;

14

Page 15: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Algoritmos de Clusterização

Algoritmos aglomerativos hierárquicos geram uma hierarquia de clusters, onde é necessário cortá-la;

15

Page 16: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Avaliação

Questões Representativo Faz sentido Adaptáveis Geral

Critérios de Qualidade Redundância entre features Expert Design Tamanho

16

Page 17: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 18: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 19: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 20: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

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

Page 21: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Critério de Tamanho

Comparação com vários cortes na árvore hierárquica

21

Page 22: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Experimento

22

Page 23: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Experimento

23

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]

Page 24: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Redundância entre Features

24

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

Page 25: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Descrições das Entidades

25

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

Page 26: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Descrições das Entidades

26

Page 27: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Métricas de Similaridade

27

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

Page 28: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Métricas de Similaridade

28

Page 29: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Algoritmos de Clusterização

29

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

Page 30: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Algoritmos de Clusterização

30

Page 31: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Conclusões

31

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

Page 32: Experiments with Clustering as a Software Remodularization Method Nicolas Anquetil and Timothy C. Lethbridge University of Ottawa, Canada WCRE 1999: 235-255

Muito Obrigado

32