Aluno: Edison Klafke Fillus
Orientadora: Silvia S. Vergilio
UFPR
2012
 1 Contexto
◦ 1.1 Comparações
 2 Justificativa e Objetivos do Trabalho
 3 CAAMPI
◦ 3.1 ARPIM
 4 Avaliação
 5 Conclusõ...
Fundamentos e Trabalhos Relacionados
3
 OO é excelente para representar requisitos
funcionais, chamados interesses base (IB).
 Requisitos não funcionais introd...
 Encapsula os Interesses Transversais.
 Classes implementam somente requisitos
funcionais.
 Aspectos entrecortam as cla...
6
 Processo de decomposição de forma manual exige:
 Esforço;
 Tempo;
 Inviável para software complexos.
• Identifica IT automaticamente a partir da mineração
da documentação do Sistema.
Mineração de Aspectos Antecipada
• Ferra...
 Análise do código fonte ou rastros de
execução por sintomas de interesses
transversais.
8
 Fan-In
 Processamento de Linguagem Natural
 Detecção de Clones
 Detecção de Métodos Únicos
 Grafos
 Análise de Padr...
 Não é necessário conhecimento prévio do
sistema.
 Descoberta de grupos de métodos
relacionados ao mesmo interesse.
 Du...
11
Análise
Análise dos grupos obtidos
Descoberta de quais representam interesses
transversais
Agrupamento
Aplicação do Algori...
 Espalhamento – Agrupa métodos que são
freqüentemente invocados pelos mesmos
módulos:
◦ Classes (kAM, GAM)
◦ Métodos (AMU...
 Entrelaçamento – Agrupa métodos que possuem
contexto de invocação semelhante:
◦ Variáveis Locais
◦ Atributos acessados
◦...
 Nomes – Agrupa métodos que possuem nomes
similares.
• Tamanho da maior sub cadeia de caracteres comum
entre os nomes dos...
16
Índices de Avaliação e Resultados
17
•Proporção de métodos no primeiro grupo onde
o IT foi descoberto. *Obsoleta
ACC - Accuracy of a clustering based aspect mi...
 Princípio de que cada interesse transversal
deve ser representado por um único grupo, e,
cada grupo deve representar um ...
Estudo Algoritmo Sistema DISP DIV ACC PAME
kAM k-means JHotDraw 0.4005 0.9972 - -
PACO k-medoids JHotDraw 0.4444 0.9753 - ...
21
 Abordagens focam a descoberta de um único
sintoma de IT.
 Sintoma de código duplicado não foi explorado.
 Não possuem ...
 Criação de um processo integrado com:
◦ Filtro parcial de interesses base (com fan-in)
◦ Ordenação de grupos por potenci...
 Introdução e implementação de um
Framework em Java como modelo de
referência, utilizado nos experimentos.
 Avaliação de...
Clustering based Approach for Aspect
Mining and Pointcut Identification.
25
 Introduz um processo integrado para
mineração de aspectos e pontos de corte.
 Entrada: Código Fonte do Sistema OO.
 Sa...
27
 DSOND (Combinada) – Agrega as características
de identificação dos sintomas de
espalhamento, código duplicado e convençã...
 DS (Espalhamento) – Agrupa métodos que são
freqüentemente invocados pelos mesmos
módulos, considerando classes e métodos...
 DO (Operações) – Agrupa métodos que
possuem lógica de operações semelhante ou
clonada.
 Identifica código duplicado con...
 DN (Nomes) – Agrupa métodos que possuem
convenção de nomes semelhante.
 Considera o nome de métodos, nome de classes,
t...
 Espalhamento de Grupo (GSRank): Gera a
pontuação a partir da quantidade de métodos
distintos que invocaram os métodos
pe...
 Interconectividade: Penaliza grupos com
métodos pouco relacionados. Média das
distâncias entre todos os métodos associad...
Association Rules based Pointcut
Identification Method
34
 Identifica pontos de corte baseado em regras
de associação obtidas a partir das transações
efetuadas pelos métodos do si...
 Antes da Execução
 Após a Execução
 Antes da chamada
 Após a chamada SEGUIDOb c
SEGUIDO FIMd
ANTECEDIDO INÍCIOa
36
AN...
37
T1 = {t,a,b,a,q}
T2 = {x,a,b,a,w}
SEGUIDOb a
ANTECEDIDOb a
 Durante a Execução
T1 = {t,a,b,a,q}
T2 = {x,a,b,a,w}
T3 = ...
38
 Agrupamento
◦ Combinados os algoritmos de agrupamento k-
medoids, Hierárquico e Chameleon com as medidas
DSOND, DS, DO, ...
40
JHotDraw v5.4b1
• Ferramenta de edição de gráficos vetoriais
HSQLDB v1.8.0.2
• Servidor de Banco de Dados
Tomcat v5.5.1...
 Princípio de que cada interesse transversal
deve ser representado por um único grupo, e,
cada grupo que possui IT deve r...
 Princípio de que os n primeiros grupos com
as maiores pontuações obtidas devem ser as
n instâncias de IT.
42
•Grau de IT...
 Princípio de que todo grupo de IT deve possuir
ao menos um PC e que os PC identificados
sejam úteis na refatoração do IT...
44
Algoritmo Medida JHotDraw Tomcat HSQLDB
7 Hierárquico DCCC 1.1650 0.6367 0.2416
8 Hierárquico DHBZH 0.8947 0.4413 0.271...
45
Medida JHotDraw Tomcat HSQLDB
GSRank 1.0782 0.8200 2.0435
GSIRank 1.4833 0.5893 1.8195
GFRank 0.9784 1.4059 2.0520
GFIR...
46
Sistema Cobertura Aproveitamento
JHotDraw 0.7647 0.5263
Tomcat 0.4054 N/A
HSQLDB 0.4000 0.6666
47
 CAAMPI contribui com um processo que
integra agrupamento, ordenação de grupos e
identificação de pontos de corte.
 Agru...
 Pontos de Corte: O ARPIM viabilizou a
identificação dos principais tipos de pontos
de corte, com cobertura maior que 40%...
 DO não consegue comparar interfaces.
◦ Sugestão: Agrupar conforme polimorfismo.
 DN agrupa métodos pelo simples fato de...
 Aperfeiçoamento de filtro para eliminação de
métodos de acesso fora do padrão get e set e
métodos utilitários.
 Process...
Próximos SlideShares
Carregando em…5
×

Apresentacao - Final

77 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
77
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentacao - Final

  1. 1. Aluno: Edison Klafke Fillus Orientadora: Silvia S. Vergilio UFPR 2012
  2. 2.  1 Contexto ◦ 1.1 Comparações  2 Justificativa e Objetivos do Trabalho  3 CAAMPI ◦ 3.1 ARPIM  4 Avaliação  5 Conclusões 2
  3. 3. Fundamentos e Trabalhos Relacionados 3
  4. 4.  OO é excelente para representar requisitos funcionais, chamados interesses base (IB).  Requisitos não funcionais introduzem interesses transversais (IT), que entrecortam várias camadas, gerando espalhamento e entrelaçamento de código. 4
  5. 5.  Encapsula os Interesses Transversais.  Classes implementam somente requisitos funcionais.  Aspectos entrecortam as classes para introdução de requisitos não funcionais.  Compostos por duas partes fundamentais: •Identificam pontos de junção no programa. •Chamadas, execução, acesso a atributos, etc. Ponto de Corte •Ação que ocorrerá quando atingir o ponto de corte. •Antes, depois e durante o ponto de corte. Adendo 5
  6. 6. 6  Processo de decomposição de forma manual exige:  Esforço;  Tempo;  Inviável para software complexos.
  7. 7. • Identifica IT automaticamente a partir da mineração da documentação do Sistema. Mineração de Aspectos Antecipada • Ferramentas para exploração assistida do código fonte. Navegadores Dedicados • Identifica IT automaticamente a partir da mineração do código fonte de sistemas legados OO. Mineração de Aspectos 7
  8. 8.  Análise do código fonte ou rastros de execução por sintomas de interesses transversais. 8
  9. 9.  Fan-In  Processamento de Linguagem Natural  Detecção de Clones  Detecção de Métodos Únicos  Grafos  Análise de Padrões  Análise de Conceito Formal  Análise de Ligações (Ranking Web)  Análise de Agrupamento (Clustering) 9
  10. 10.  Não é necessário conhecimento prévio do sistema.  Descoberta de grupos de métodos relacionados ao mesmo interesse.  Duas partes principais: ◦ Algoritmo de Agrupamento. ◦ Medida de Distância. 10
  11. 11. 11
  12. 12. Análise Análise dos grupos obtidos Descoberta de quais representam interesses transversais Agrupamento Aplicação do Algoritmo de Agrupamento. Forma grupos de métodos com invocações em comum. Filtro Filtra métodos e invocações que devem ser ignorados. Computação Extração da Árvore Sintática Abstrata. Computação da relação de invocações entre métodos. 12
  13. 13.  Espalhamento – Agrupa métodos que são freqüentemente invocados pelos mesmos módulos: ◦ Classes (kAM, GAM) ◦ Métodos (AMUCA) ◦ Classes e Métodos (PACO, HACO) * Não tratam polimorfismo13
  14. 14.  Entrelaçamento – Agrupa métodos que possuem contexto de invocação semelhante: ◦ Variáveis Locais ◦ Atributos acessados ◦ Classes instanciadas ◦ Parâmetros utilizados 14
  15. 15.  Nomes – Agrupa métodos que possuem nomes similares. • Tamanho da maior sub cadeia de caracteres comum entre os nomes dos métodos. [Shepherd et al] • d(incluiCliente, alteraCliente) = 6 • Quebra do nome do método em palavras, compara a quantidade de palavras idênticas. [Zhang et al] • d(inclui|Cliente}, altera|Cliente) = 1 15
  16. 16. 16
  17. 17. Índices de Avaliação e Resultados 17
  18. 18. •Proporção de métodos no primeiro grupo onde o IT foi descoberto. *Obsoleta ACC - Accuracy of a clustering based aspect mining technique •Porcentagem de métodos que precisam ser analisados para identificar um IT. *Obsoleta PAME - Percentage of Analyzed Methods for a partition 18
  19. 19.  Princípio de que cada interesse transversal deve ser representado por um único grupo, e, cada grupo deve representar um único interesse. 19 •Grau de dispersão de um IT em grupos. DISP - DISPersion of crosscuting concerns •Grau na qual cada grupo contém elementos de interesses diferentes. DIV - DIVersity of a partition
  20. 20. Estudo Algoritmo Sistema DISP DIV ACC PAME kAM k-means JHotDraw 0.4005 0.9972 - - PACO k-medoids JHotDraw 0.4444 0.9753 - - HACO Hierárquico JHotDraw 0.4570 1.0000 - - kAM k-means Laffra - - 0.667 0.200 GAM AG Laffra - - 0.667 0.220 AMUCA Chameleon - - - - - 20
  21. 21. 21
  22. 22.  Abordagens focam a descoberta de um único sintoma de IT.  Sintoma de código duplicado não foi explorado.  Não possuem suporte a eliminação total ou parcial de IB.  Não fornecem suporte a uma rápida separação de grupos de potenciais IT de grupos de IB.  Descobrem adendos, porém, não identificam pontos de corte. *Exceção AMUCA, mas somente classifica.  Necessidade de mais estudos de caso e comparações. 22
  23. 23.  Criação de um processo integrado com: ◦ Filtro parcial de interesses base (com fan-in) ◦ Ordenação de grupos por potencial de serem IT. (por pontuação, medidas de ordenação) ◦ Identificação dos principais tipos de pontos de corte.  Introdução de uma medida de distância que combina os sintomas de Espalhamento, Código duplicado e Convenção de nomes.  Introdução de medidas para ordenação de grupos. 23
  24. 24.  Introdução e implementação de um Framework em Java como modelo de referência, utilizado nos experimentos.  Avaliação de diversas combinações de medidas e tipos de algoritmos de agrupamento.  Aplicação em três estudos de caso. 24
  25. 25. Clustering based Approach for Aspect Mining and Pointcut Identification. 25
  26. 26.  Introduz um processo integrado para mineração de aspectos e pontos de corte.  Entrada: Código Fonte do Sistema OO.  Saída: Grupos de candidatos a aspectos ordenados conforme o potencial de serem ou não um aspecto, e, respectivos candidatos a aspectos identificados. 26
  27. 27. 27
  28. 28.  DSOND (Combinada) – Agrega as características de identificação dos sintomas de espalhamento, código duplicado e convenção de nomes em uma única medida.  Combina as medidas através da definição de pesos para cada sintoma. 28
  29. 29.  DS (Espalhamento) – Agrupa métodos que são freqüentemente invocados pelos mesmos módulos, considerando classes e métodos.  Adaptação da medida proposta por Czibula et al de forma a limitar a saída no intervalo entre 0 e 1 e incluir o tratamento de polimorfismo.  Polimorfismo através de tratamento de todos os métodos polimórficos como um grupo, contabilizando todas as invocações a métodos que refinam e sobrescrevem. 29
  30. 30.  DO (Operações) – Agrupa métodos que possuem lógica de operações semelhante ou clonada.  Identifica código duplicado considerando as invocações efetuadas a métodos e classes (fan-out). 30
  31. 31.  DN (Nomes) – Agrupa métodos que possuem convenção de nomes semelhante.  Considera o nome de métodos, nome de classes, tipos de parâmetros e tipo de retorno.  Utiliza a distância de edição para contabilizar a similaridade de nomes, o que é mais eficaz: ◦ Maior sub cadeia:  d(figureChanged, figureWillChange)=6/16=37,5% ◦ Quantidade de Palavras Idênticas:  d(figure|Changed, figure|Will|Change)=1/3=33,3% ◦ Distância de Edição de Levenstein:  d(figureChanged, figureWillChange)=11/16 = 68,7% 31
  32. 32.  Espalhamento de Grupo (GSRank): Gera a pontuação a partir da quantidade de métodos distintos que invocaram os métodos pertencentes ao grupo.  Fan-In de Grupo (GFRank): Gera a pontuação a partir da soma do fan-in dos métodos pertencentes ao grupo. 32 m1() Fan-In: 2 m2() Fan-In: 2 GFRank = 4GSRank = 3
  33. 33.  Interconectividade: Penaliza grupos com métodos pouco relacionados. Média das distâncias entre todos os métodos associados ao grupo.  GSIRank: Espalhamento de Grupo com redutor de interconectividade.  GFIRank: Fan-In de Grupo com redutor de interconectividade. 33 m1() Fan-In: 2 m2() Fan-In: 2 GFIRank = 2GSIRank = 1,5 DS=0,5
  34. 34. Association Rules based Pointcut Identification Method 34
  35. 35.  Identifica pontos de corte baseado em regras de associação obtidas a partir das transações efetuadas pelos métodos do sistema.  São extraídas regras adjuntas, com a informação da ordem de ocorrência. SEGUIDOb c T1 = {a,b,c,d} T2 = {a,p,b,c,q,d} SEGUIDO FIMd ANTECEDIDO INÍCIOa 35 ANTECEDIDOc b
  36. 36.  Antes da Execução  Após a Execução  Antes da chamada  Após a chamada SEGUIDOb c SEGUIDO FIMd ANTECEDIDO INÍCIOa 36 ANTECEDIDOc b T1 = {a,b,c,d} T2 = {a,p,b,c,q,d} PC A Antes da Execução de [T1,T2] T1 = {a,b,c,d} T2 = {a,p,b,c,q,d} PC D Depois da Execução de [T1,T2] T1 = {a,b,c,d} T2 = {a,p,b,c,q,d} T3 = {q,w,b,e} PC B Antes da Chamada C PC C Após a Chamada B T1 = {a,b,c,d} T2 = {a,p,b,c,q,d} T3 = {q,w,c,e}
  37. 37. 37 T1 = {t,a,b,a,q} T2 = {x,a,b,a,w} SEGUIDOb a ANTECEDIDOb a  Durante a Execução T1 = {t,a,b,a,q} T2 = {x,a,b,a,w} T3 = {e,a,y,a,o} PC A Durante a Execução B = =
  38. 38. 38
  39. 39.  Agrupamento ◦ Combinados os algoritmos de agrupamento k- medoids, Hierárquico e Chameleon com as medidas DSOND, DS, DO, DN, DCCC e DHBZH. ◦ Efetuada a calibração de parâmetros para cada combinação entre algoritmo x medida x sistema.  Ordenação ◦ Avaliadas as medidas GSRank, GSIRank, GFRank e GFIRank com a melhor instância obtida na fase de agrupamento.  Pontos de Corte ◦ Avaliado o método ARPIM com a melhor instância obtida na fase de agrupamento 39
  40. 40. 40 JHotDraw v5.4b1 • Ferramenta de edição de gráficos vetoriais HSQLDB v1.8.0.2 • Servidor de Banco de Dados Tomcat v5.5.17 • Servidor de Aplicações WEB Java
  41. 41.  Princípio de que cada interesse transversal deve ser representado por um único grupo, e, cada grupo que possui IT deve representar um único IT. 41 •Grau de dispersão de um IT em grupos. Dispersão •Grau na qual grupos que possuem IT contém elementos de IT diferentes. Diversificação
  42. 42.  Princípio de que os n primeiros grupos com as maiores pontuações obtidas devem ser as n instâncias de IT. 42 •Grau de IT nas n primeiras posições. Liderança •Posição do último colocado em relação ao todo. Economia •Colocação dos grupos de IT em relação ao todo. Colocação
  43. 43.  Princípio de que todo grupo de IT deve possuir ao menos um PC e que os PC identificados sejam úteis na refatoração do IT. 43 •Grau de cobertura dos grupos de IT por PC. Cobertura •Grau de PC que foram úteis na refatoração do IT. Aproveitamento
  44. 44. 44 Algoritmo Medida JHotDraw Tomcat HSQLDB 7 Hierárquico DCCC 1.1650 0.6367 0.2416 8 Hierárquico DHBZH 0.8947 0.4413 0.2719 9 Hierárquico DS 0.3428 0.1734 0.1835 10 Hierárquico DO 0.9892 0.4672 0.3095 11 Hierárquico DN 0.5833 0.5763 0.5272 12 Hierárquico DSOND 0.1071 0.1272 0.1690 13 Chameleon DCCC 1.1368 0.5304 0.4325 14 Chameleon DHBZH 1.0378 0.7860 0.3916 15 Chameleon DS 0.3585 0.2687 0.4054 16 Chameleon DO 1.1750 0.6226 0.5607 17 Chameleon DN 0.3091 0.3615 0.4305 18 Chameleon DSOND 0.2211 0.2233 0.1690 *Diferença
  45. 45. 45 Medida JHotDraw Tomcat HSQLDB GSRank 1.0782 0.8200 2.0435 GSIRank 1.4833 0.5893 1.8195 GFRank 0.9784 1.4059 2.0520 GFIRank 1.0821 0.9494 1.9954 *Diferença
  46. 46. 46 Sistema Cobertura Aproveitamento JHotDraw 0.7647 0.5263 Tomcat 0.4054 N/A HSQLDB 0.4000 0.6666
  47. 47. 47
  48. 48.  CAAMPI contribui com um processo que integra agrupamento, ordenação de grupos e identificação de pontos de corte.  Agrupamento: A medida combinada DSOND foi a que obteve os melhores resultados na fase de agrupamento, alcançando uma eficácia maior que 91%.  Ordenação: As medidas propostas geram uma pontuação que permite ordenar os grupos por potencial de ser um IT, reduzindo esforço de análise e proporcionando maior eficiência. 48
  49. 49.  Pontos de Corte: O ARPIM viabilizou a identificação dos principais tipos de pontos de corte, com cobertura maior que 40% e aproveitamento maior que 52%.  CAAMPI4J demonstra a aplicabilidade prática da CAAMPI com a linguagem Java, servindo de modelo de referência para outras linguagens. 49
  50. 50.  DO não consegue comparar interfaces. ◦ Sugestão: Agrupar conforme polimorfismo.  DN agrupa métodos pelo simples fato de possuírem o mesmo nome. ◦ Sugestão: Quando método polimórfico, não agrupar hierarquias diferentes.  DSOND exige calibração de pesos. ◦ Sugestão: Gatilhos ou Algoritmos Multiobjetivos. 50
  51. 51.  Aperfeiçoamento de filtro para eliminação de métodos de acesso fora do padrão get e set e métodos utilitários.  Processamento de linguagem natural ◦ Similaridade semântica entre métodos. ◦ Ex: persist, save, insert. ◦ Filtro e Categorização de IT descobertos.  Catálogo de padrões ◦ Identificar estruturas de implementação conhecidas. ◦ Filtro e Categorização de IT descobertos.  Critério de avaliação de eficácia prática, independente de técnica. 51

×