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
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
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
23 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]
24 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
25 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
27 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
29 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
31 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
1 Avaliação da Qualidade para Engenharia de Requisitos Orientada a Agentes Emanuel Batista dos Santos 11/05/2007.