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.
Top Related