Estimativa de métricas de separação de interesses

13
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êa Leonardo Rodrigues Miquéias Souza Sérgio Souza

description

Elaborado a partir do artigo no seguinte link http://www.inf.pucminas.br/professores/mtov/pub/wmswm2009.pdf

Transcript of Estimativa de métricas de separação de interesses

Page 1: 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

Page 2: Estimativa de métricas de separação de interesses

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

Page 3: Estimativa de métricas de separação de interesses

INTRODUÇÃO

Dúvida:

AplicaAplicaçção OOão OO Aplicação OA

Vale a pena migrar?

Page 4: Estimativa de métricas de separação de interesses

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

Page 5: Estimativa de métricas de separação de interesses

• 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:

Page 6: Estimativa de métricas de separação de interesses

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:

Page 7: Estimativa de métricas de separação de interesses

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:

Page 8: Estimativa de métricas de separação de interesses

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:

Page 9: Estimativa de métricas de separação de interesses

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

Page 10: Estimativa de métricas de separação de interesses

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

Page 11: Estimativa de métricas de separação de interesses

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.

Page 12: Estimativa de métricas de separação de interesses

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.

Page 13: Estimativa de métricas de separação de interesses

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.