• Nenhum resultado encontrado

Analisando os trabalhos relacionados, foram identificadas algumas limita¸c˜oes que n˜ao

foram contempladas. A partir destas limita¸c˜oes foram elencados alguns itens que s˜ao

explorados no presente trabalho afim de contribuir para a ´area de minera¸c˜ao de aspectos

baseada em agrupamento.

1. Metodologia de avalia¸c˜ao padronizada: A existˆencia de padr˜oes distintos de ava-

lia¸c˜ao prejudica a compara¸c˜ao direta entre os algoritmos de agrupamento, medidas

de distˆancia e sistemas avaliados. Portanto ´e necess´aria a ado¸c˜ao de uma metodolo-

gia padronizada, e, que esta seja aplicada na compara¸c˜ao de todas as possibilidades

de combina¸c˜oes de algoritmos, medidas e sistemas.

2. Avalia¸c˜oes realizadas com poucos sistemas: Um bom resultado obtido em um sis-

tema n˜ao garante que o bom resultado seja obtido em outros sistemas. Portanto

´e necess´ario que os algoritmos sejam submetidos para avalia¸c˜ao com v´arios siste-

mas que possuam prop´ositos distintos e que tenham sido constru´ıdos por diferentes

desenvolvedores.

3. Aperfei¸coamento das medidas de distˆancia existentes: A medida de distˆancia ´e um

dos itens que mais influencia os resultados dos algoritmos de agrupamento. Uma

boa medida de distˆancia deve ser capaz de capturar as caracter´ısticas relevantes

dos elementos que ser˜ao agrupados. Sendo assim, ´e considerada a oportunidade de

aprimorar as medidas de distˆancia existentes e explorar outros sintomas relevantes

atrav´es do aproveitamento de ideias de outras t´ecnicas existentes, como a detec¸c˜ao

de m´etodos clones e agrupamento de m´etodos com nomes similares.

4. Uso do fan-in na fase de filtro: A t´ecnica de fan-in possui um modelo que permite

identificar o impacto que cada m´etodo causa no espalhamento do sistema. M´etodos

com baixo fan-in, por terem caracter´ıstica de baixo espalhamento, podem ser elimi-

nados antes mesmo da fase de agrupamento, reduzindo o universo de m´etodos que

precisam ser agrupados e consequentemente o tempo de processamento dos algorit-

mos de agrupamento.

5. Ordena¸c˜ao dos grupos: O processo geral existente na literatura de minera¸c˜ao de

aspectos baseada em agrupamento n˜ao prevˆe uma maneira de ordenar os grupos

conforme o potencial de serem candidatos a aspectos. A ausˆencia de tal ordena¸c˜ao

faz com que o analista receba uma centena de grupos, dos quais, ter´a que analisar

um a um sem a possibilidade de definir um crit´erio de prioridade de an´alise. Este

fato impacta em baixa produtividade, j´a que o analista perde muito tempo com

a an´alise de grupos que tem baixa probabilidade de serem aspectos. Portanto, ´e

vislumbrado a incorpora¸c˜ao de uma fase de ordena¸c˜ao de grupos ao processo geral

e a defini¸c˜ao de medidas de ordena¸c˜ao que permitam o c´alculo de uma pontua¸c˜ao

individual dos grupos de forma a orden´a-los por ordem de potencialidade de serem

aspectos.

6. Identifica¸c˜ao de pontos de corte: Um aspecto ´e basicamente composto por adendos

e a defini¸c˜ao de pontos de corte que entrecortam certos pontos de jun¸c˜ao. Um can-

didato a aspecto indica quais opera¸c˜oes dever˜ao ser refatoradas para um adendo,

por´em, n˜ao indica quais pontos de corte dever˜ao existir para a jun¸c˜ao dos interesses

transversais com os interesses base. ´E vislumbrada a cria¸c˜ao de um m´etodo auto-

matizado para a identifica¸c˜ao dos pontos de corte, que indique quais s˜ao os poss´ıveis

candidatos a pontos de corte para os candidatos a aspectos identificados.

7. Framework de implementa¸c˜ao: De forma a transformar a teoria em pr´atica, deve ser

definido um framework de implementa¸c˜ao de todo o processo para uma linguagem

de programa¸c˜ao que suporte orienta¸c˜ao a aspectos. O objetivo do framework ´e se

tornar um modelo de referˆencia de implementa¸c˜ao onde conste todos os detalhes

t´ecnicos necess´arios para a implementa¸c˜ao do processo, e que o mesmo possa ser

adaptado para outras linguagens.

4.8

Considera¸c˜oes Finais

Neste cap´ıtulo foram apresentados os principais conceitos da linha de pesquisa de mi-

nera¸c˜ao de aspectos. O cap´ıtulo englobou a contextualiza¸c˜ao da aplica¸c˜ao de aspectos em

sistemas, a apresenta¸c˜ao das t´ecnicas de minera¸c˜ao de aspectos encontradas na literatura

e o aprofundamento da an´alise de agrupamento aplicada na minera¸c˜ao de aspectos, apre-

sentando os algoritmos, medidas de distˆancia e ´ındices de avalia¸c˜ao existentes. Ao final

do cap´ıtulo foram elencadas algumas limita¸c˜oes identificadas dos trabalhos existentes que

motivaram o presente trabalho.

Com este cap´ıtulo encerra-se os fundamentos te´oricos deste trabalho. No pr´oximo

cap´ıtulo ´e apresentada a CAAMPI, uma abordagem baseada em agrupamento para a mi-

nera¸c˜ao de aspectos e a identifica¸c˜ao de pontos de corte a partir de c´odigo fonte orientado

a objetos. A CAAMPI objetiva eliminar as limita¸c˜oes identificadas nos trabalhos existen-

tes e aproveitar as oportunidades vislumbradas para o aperfei¸coamento da minera¸c˜ao de

aspectos.

CAP´ITULO 5

CAAMPI: UMA ABORDAGEM BASEADA EM

AGRUPAMENTO PARA MINERAC¸ ˜AO DE ASPECTOS E

IDENTIFICAC¸ ˜AO DE PONTOS DE CORTE

Neste cap´ıtulo ´e apresentada a CAAMPI (Clustering Based Approach for Aspect Mining

and Pointcut Identification), uma abordagem baseada em agrupamento para a minera¸c˜ao

de aspectos e a identifica¸c˜ao de pontos de corte a partir de c´odigo fonte orientado a objetos.

Al´em disto, ´e descrito o CAAMPI4J, um framework que permite a implementa¸c˜ao de

v´arios tipos de instˆancias da abordagem CAAMPI com base na linguagem Java.

Este cap´ıtulo est´a organizado nas seguintes se¸c˜oes: na Se¸c˜ao 5.1 ´e apresentado o

processo geral da abordagem CAAMPI, na Se¸c˜ao 5.2 s˜ao introduzidas quatro medidas

de distˆancia, na Se¸c˜ao 5.3 s˜ao propostas quatro medidas de ordena¸c˜ao de grupos, na

Se¸c˜ao 5.4 ´e descrito um m´etodo para a identifica¸c˜ao de pontos de corte e na Se¸c˜ao 5.5 ´e

descrito o framework CAAMPI4J.

5.1

Processo CAAMPI

A abordagem CAAMPI ´e composta por um processo integrado que tem como entrada o

c´odigo fonte do sistema orientado a objetos, e como sa´ıda, os grupos de m´etodos candida-

tos a aspectos ordenados conforme o potencial de ser ou n˜ao um aspecto e os respectivos

candidatos a pontos de corte identificados. A partir da sa´ıda do processo integrado, um

analista pode verificar os grupos obtidos e classific´a-los atrav´es de an´alise manual se os

mesmos s˜ao interesses transversais, ou, se tratam de interesses base ou m´etodos utilit´arios.

Os m´etodos utilit´arios, apesar de apresentarem sintomas idˆenticos ao de interesses

transversais, como espalhamento pelos m´odulos e entrela¸camento dos m´etodos que o uti-

lizam, n˜ao se enquadram como interesses transversais. Diferentemente de um interesse

transversal, um m´etodo utilit´ario tem por interesse criar bibliotecas de funcionalidades

de conveniˆencia para uso essencialmente t´ecnico, fato que desfavorece a sua refatora¸c˜ao

para aspectos. S˜ao exemplos de fun¸c˜oes de m´etodos utilit´arios: manipula¸c˜ao de cadeia de

caracteres, c´alculos com datas, transferˆencia de arquivos, entre outras.

Se o grupo for classificado como interesse transversal, o analista pode verificar se o

processo integrado identificou algum candidato a ponto de corte, caso positivo, o analista

pode incluir o candidato a ponto de corte em sua estrat´egia de refatora¸c˜ao do interesse

transversal para aspectos.

O processo geral da CAAMPI ´e ilustrado na Figura 5.1. Um resumo das suas contri-

bui¸c˜oes ´e apresentado na Tabela 5.1. As suas sete fases s˜ao detalhadas a seguir:

1. Computa¸c˜ao: Esta fase ´e composta por duas etapas. Na primeira ´e efetuada a

an´alise do c´odigo fonte (parsing) de forma a gerar a ´Arvore de Sintaxe Abstrata

do sistema contendo toda a hierarquia de classes e m´etodos. Na segunda etapa o

corpo de cada m´etodo ´e analisado para identificar a rela¸c˜ao de invoca¸c˜ao entre os

m´etodos.

Historicamente o processo de an´alise de c´odigo fonte exige um esfor¸co consider´avel

devido a complexidade das linguagens de programa¸c˜ao. Como a abordagem CAAMPI

Figura 5.1: Processo da Abordagem CAAMPI

Tabela 5.1: Resumo das contribui¸c˜oes da CAAMPI

Fase

Contribui¸c˜ao

1. Computa¸c˜ao

Fase aproveitada. Defini¸c˜ao baseada em [57].

2. C´alculo Fan-In

Fase proposta. C´alculo do fan-in dos m´etodos com intuito

de elimina¸c˜ao de interesses base.

3. Filtro de M´etodos

Fase aperfei¸coada.

Elimina m´etodos com baixo fan-in

baseado no princ´ıpio de que s˜ao interesses base.

4. Agrupamento

Fase aperfei¸coada.

Proposta a medida de distˆancia

DSON D, que combina os sintomas de espalhamento (DS),

c´odigo duplicado (DO) e conven¸c˜ao de nomes (DN).

5. Ordena¸c˜ao de Grupos

Fase proposta. Contribui¸c˜ao com as medidas GSRank,

GSIRank, GFRank e GFIRank que permitem o c´alculo

de pontua¸c˜ao dos grupos conforme o potencial de serem

interesses transversais.

6. Pontos de Corte

Fase proposta. Contribui¸c˜ao com o m´etodo ARPIM, que

identifica os cinco principais tipos de pontos de corte e

efetua o v´ınculo com os grupos de candidatos a aspectos.

7. An´alise

Fase aperfei¸coada. Contribui¸c˜ao com a disponibiliza¸c˜ao

de uma pontua¸c˜ao para cada grupo obtido indicando o

potencial do grupo participar de um interesse transversal

e os respectivos pontos de corte identificados, auxiliando

a an´alise e refatora¸c˜ao.

exige o conhecimento de todas as rela¸c˜oes existentes entre os m´etodos, de forma que

seja poss´ıvel extrair as regras de associa¸c˜ao e identificar os sintomas de interesses

transversais baseados em espalhamento e entrela¸camento, este ´e um processo ine-

vit´avel. Por´em, atualmente j´a se encontram dispon´ıveis gratuitamente bibliotecas

e APIs que suportam a maior parte deste processo, o que reduz consideravelmente

o esfor¸co de implementa¸c˜ao. Na Sess˜ao 5.5 s˜ao apresentadas as APIs que foram

adotadas no framework CAAMPI4J para suportar a an´alise de c´odigo fonte Java.

Defini¸c˜ao: Um sistema de software S ´e definido como um conjunto de m´etodos MS

= {m1, m2, ..., mn}, onde mi, 1 ≤ i ≤ n, ´e um m´etodo do sistema, e n representa o

n´umero de m´etodos de S.

Cada m´etodo mi

possui um conjunto de invoca¸c˜oes (chamadas) C = {c1, c2, . . . , ct},

onde cj, 1 ≤ j ≤ t, ´e uma invoca¸c˜ao efetuada pelo m´etodo mi

a outro m´etodo do

sistema mj

∈ MS, e t representa a quantidade de invoca¸c˜oes efetuadas pelo m´etodo

mi.

Dois m´etodos invocados m1

e m2

s˜ao considerados distintos se possuem nomes,

classes, pacotes ou parˆametros distintos. Isto ´e, m1

6= m2SE nome(m1) 6= nome(m2)

OU classe(m1) 6= classe(m2) OU pacote(m1) 6= pacote(m2) OU parametros(m1) 6=

parametros(m2).

2. C´alculo do Fan-In : Nesta fase ´e calculado o Fan-In de todos os m´etodos. Con-

forme definido em [43], o Fan-In de um m´etodo m ser´a igual a quantidade de corpos

de m´etodos distintos que invocam m. E, no caso de polimorfismo, s˜ao contabiliza-

dos tamb´em os m´etodos distintos que invocam os m´etodos que m sobrescreveu e os

m´etodos que refinaram m.

3. Filtro de M´etodos: Nesta fase s˜ao eliminados todos os m´etodos e invoca¸c˜oes

que n˜ao representam interesses transversais, ou, que n˜ao contribuem para a sua

identifica¸c˜ao. S˜ao eliminados:

• M´etodos de classes internas da linguagem: M´etodos internos da linguagem s˜ao

eliminados. Estes m´etodos, por serem da pr´opria linguagem, n˜ao s˜ao candida-

tos a aspectos.

• M´etodos de bibliotecas de terceiros: M´etodos pertencentes a classes de biblio-

teca de terceiros s˜ao eliminados. Estes m´etodos n˜ao fazem parte do escopo do

sistema em an´alise e portanto n˜ao s˜ao candidatos a aspectos.

• M´etodos de acesso a atributos: M´etodos de acesso a atributos, tamb´em conheci-

dos como propriedades, s˜ao eliminados. Estes m´etodos n˜ao efetuam opera¸c˜oes,

j´a que s˜ao simplesmente m´etodos que encapsulam o acesso aos atributos da

classe, e portanto n˜ao s˜ao candidatos a aspectos.

• M´etodos com baixo Fan-In: M´etodos que possuem Fan-In inferior a um li-

mite definido por parˆametro s˜ao eliminados. Estes m´etodos j´a possuem ca-

racter´ıstica de baixo espalhamento no sistema em an´alise e portanto n˜ao s˜ao

interessantes como candidatos a aspectos.

4. Agrupamento: Nesta fase ´e aplicado o algoritmo de agrupamento desejado para

gerar os grupos de m´etodos. A medida de distˆancia escolhida dever´a possuir carac-

ter´ısticas que possibilitem a identifica¸c˜ao de candidatos a aspectos. ´E sugerido o uso

da medida de distˆancia SOND (ou uma de suas derivadas), detalhada na Se¸c˜ao 5.2.

5. Ordena¸c˜ao de Grupos: Nesta fase ´e aplicada a medida de ordena¸c˜ao de grupos

de maneira a priorizar os grupos conforme o seu potencial de ser um interesse trans-

versal. Os grupos com maior pontua¸c˜ao obtida dever˜ao ser os primeiros a serem

verificados pelo analista. ´E sugerida a utiliza¸c˜ao de uma das medidas propostas na

Se¸c˜ao 5.3.

6. Identifica¸c˜ao de Pontos de Corte: Nesta fase s˜ao identificados os candidatos a

pontos de corte. ´E sugerida a aplica¸c˜ao do m´etodo de identifica¸c˜ao de pontos de

corte ARPIM, detalhado na Se¸c˜ao 5.4. O ARPIM ´e composto de quatro etapas.

Na primeira etapa, o conjunto de opera¸c˜oes de cada m´etodo ´e transformado em

um conjunto de transa¸c˜oes e ´e aplicado um algoritmo de extra¸c˜ao de regras de

associa¸c˜ao. Na segunda etapa as regras de associa¸c˜ao s˜ao filtradas de forma a manter

somente as regras de associa¸c˜ao que s˜ao ´uteis para a identifica¸c˜ao dos pontos de

corte. Na terceira etapa as regras de associa¸c˜ao s˜ao classificadas. Na ´ultima etapa

s˜ao aplicados crit´erios para a determina¸c˜ao dos tipos de candidatos a pontos de

corte identificados, encerrando com a vincula¸c˜ao dos candidatos a pontos de corte

com os respectivos candidatos a aspectos.

7. An´alise: Como ´ultima fase, o analista verifica os resultados obtidos ap´os a fase de

ordena¸c˜ao de grupos e identifica quais grupos representam interesses transversais, e

quais representam interesses base ou utilit´arios. Quando na identifica¸c˜ao de interes-

ses transversais, o analista confronta os resultados com os candidatos a pontos de

corte e define a estrat´egia para a refatora¸c˜ao do interesse transversal para aspectos.