Estimativa de métricas de separação de interesses
-
Upload
sergiosouza -
Category
Technology
-
view
866 -
download
0
description
Transcript of Estimativa de métricas de separação de interesses
Estimativa de Métricas de Separação de Interesses em Processos de Refatoração para
Extração de Aspectos
Introdução ao Desenvolvimento de Software Orientado por Aspectos
José CorrêaLeonardo RodriguesMiquéias SouzaSérgio Souza
INTRODUÇÃO
Orientado a Objetos:
• Espalhamento de Código• Mesma implementação em várias classes• Localização de todos os Concerns a serem alterados• Difícil manutenibilidade
• Código entrelaçado• Mistura de código• Dificuldade em entender a implementação• Alterar sem afetar outros interesses
Orientado a Aspectos:
• Modularização de interesses• Escalabilidade• Manutenibilidade• Reutilização de código• Maior produtividade
INTRODUÇÃO
Dúvida:
AplicaAplicaçção OOão OO Aplicação OA
Vale a pena migrar?
MAPEAMENTO, MÉTRICAS E IMPLEMENTAÇÃO
Ferramenta:
ConcernMapper
ConcernMetrics
Mapeamento do interesse logging usando o ConcernMetrics
Mapeamento lógico de interesses transversaisEstimativa de métricas de separação de interesses
Funcionalidades
• Mapeamento lógico de interesses transversais• Permite uma visão modularizada dos interesses transversais• Métodos e Atributos de interesses transversais
• Estimativa de métricas de separação de interesses• Calculo das métricas clássicas de separação de interesses
1. Concern Diffusion over Operations (CDO)• MC onde ‘M’ representa os métodos e ‘c’ os interesses
concerns. Conta o número de métodos e ou adendos que chamam os métodos em MC .
2. Concern Diffusion over Components (CDC)• CC onde ‘C’ representa os componentes e ‘c’ os interesses
concerns. Conta o número de componentes que acessam os componentes em CC . Componentes são classes (Sistema OO) e classes e aspectos (Sistema OA).
MAPEAMENTO, MÉTRICAS E IMPLEMENTAÇÃO
Funcionalidades:
Calculo de CDO e CDC:
• Framework ASM2 Manipulação, analise e reengenharia de bytecodes.
Sistemas OO é direto:Chamadas estão incluídas fisicamente no bytecode.
Sistemas OA exige analise:Identificar as chamadas que podem ser incluídas no mesmo adendo.
MAPEAMENTO, MÉTRICAS E IMPLEMENTAÇÃO
Implementação:
Calculo de CDO e CDC:
Algoritmot1 .m(arg1 ) and t2 .m(arg2 ), onde ti denota o alvo da chamadae argi denota seu argumento (i = 1 ou i = 2).
As duas chamadas podem ser agrupadas em um mesmo adendo, usando os recursos de quantificação de AspectJ, quando as seguintes condições são simultaneamente válidas:
1. t1 e t2 são variáveis da mesma classe (ou mesma classe, no caso de métodos estáticos).2. arg1 e arg2 representam o mesmo valor constante (seja ele, um inteiro, real, string, etc).
MAPEAMENTO, MÉTRICAS E IMPLEMENTAÇÃO
Implementação:
Calculo de CDO e CDC:
Chamadas a start• Mesmo tipo (Transaction)• Mesmos Argumentos, valor constante (1)
ㄨ
Chamada a log• Diferentes argumentos (“panic” e “finished”)
MAPEAMENTO, MÉTRICAS E IMPLEMENTAÇÃO
Implementação:
ESTUDO DE CASO JSPIDER
JSpider:
JSpider é um robô que permite recuperar e validar páginas Web.Versão OO e OA (Binkley et al).
(http://j-spider.sourceforge.net)
Interesse Logging
• Calculo de CDO.
Métrica CDO para o interesse logging nas versões OO e OA
ESTUDO DE CASO JSPIDER
JSpider:(http://j-spider.sourceforge.net)
Interesse Logging
• Calculo de CDC.
Métrica CDC para o interesse logging nas versões OO e OA
ESTUDO DE CASO JSPIDER
JSpider:(http://j-spider.sourceforge.net)
Análise dos Resultados
• Calculo de CDO: Diferenças de valores, por adição ou remoção de código.• Calculo de CDC: Sem diferenças.
Trabalhos Relacionados
ConcernMetrics (CM) x ConcernTagger (CT):
ConcernTagger
• Extensão que também permite o mapeamento lógico de interesses transversais e elementos sintáticos. Calculando métricas comoCDC e CDO.
Diferenças – CM e CT
• Identificação manual de interesses transversais. (Métodos e chamadas a esses métodos)
• Calculo semi-automático
• Não realiza estimativas de novos valores de CDO e CDC para “aspectização” do código OO.
Conclusão
Conclusão:
A ferramenta ConcernMetrics, utilizada para mapeamento de interesses transversais em códigos de sistemas OO, se mostrou eficiente atendendo a seu propósito de calcular métricas para uma possível modularização de interesses a ser realizada.
Diante de analise dessas métricas, os mantenedores de software estudam a viabilidade de se utilizar aspectos em seus sistemas ou não.