"The research domain of aspect mining studies the problem of (semi-)automatically identifying potential aspects and crosscutting concerns in a software system, to improve the system’s comprehensibility or enable its migration to an aspect-oriented solution. Unfortunately, most proposed as- pect mining techniques have not lived up to their expectations yet. In this paper we provide a list of problems that most aspect mining techniques suffer from and identify some of the root causes underlying these problems. Based upon this analysis, we conclude that many of the problems seem to be caused directly or indirectly by the use of inappro- priate techniques, a lack of rigour and semantics on what is being mined for and how, and in how the results of the mining process are presented to the user."
By Kim Mens, Andy Kellens.
Resumo do artigo:
O artigo fala dos problemas apresentados nas técnicas mais utilizadas em mineração de interesses, qual é a causa dos problemas e qual é o futuro desta área de pesquisa.
A area de mineração de interesses preocupa-se de encontrar interesses transversais (aspectos candidatos) dentro do código fonte para poder ser refatorizados em aspectos. O artigo está focado em analisar propostas de mineria de aspectos automatizadas que utilizam técnicas de data mining como “data analysis, formal concept analysis, cluster analysis” e técnicas de analise de código como “program slicing, software metrics and heuristics, clone detection, pattern matching, dynamic analysis”.
Os problemas encontrados são os seguintes:
1. Pobre presisão (P = aspectos candidatos relevantes/todos os candidatos encontrados).
O problema é que a maioria das técnicas apresentam muitos falsos positivos que tem impacto na escalabilidade e os resultados são apresentados sem indicar o tipo de granularidade que pode ser a um nivel individual, do código ou grupo de interesses. A falta de um usuario especialista em identificar interesses para fazer uma comparação com a ferramenta de mineração de aspectos, fazem que os resultados publicados perdem subjetividade.
2. Pobre recall (R= aspectos candidatos relevantes não descobertos/aspectos candidatos relevantes ).
Um dos problemas encontrados é que não se conhece quais são os aspectos relevantes a serem identificados a menos que exista um usuario especialista. Outro problema é que a maioria das técnicas, identifican apenas alguns sintomas de aspectos perdendo ocorrências de aspectos que apresentem outros sintomas. A maior precisão menor recall e vice versa.
3. Subjetividade.
Muitas técnicas apresentam ambiguidade em seus resultados. Depende das definições dos aspectos que as pessoas indicam. Cada ferramenta aplica seus própios filtros e são as pessoas que finalmente fazem a seleccão dos aspectos, assim, a intervenção dos usuarios podem causar subjetividade.
4. Escalabilidade.
Um factor importante a considerar é o tempo-eficiência da ferramenta. A quantidade de tempo requerido para calcular seus resultados. Porém, onde existem maiores problemas é onde existe intervenção humana. Pré-processamento (preparar dados de entrada) e pós-processamento (analisar os resultados).
5. Validação Empírica.
Para validar a qualidade de uma ferramenta, devem ser considerados a medição da precisão e o recall dos resultados em distintos níveis de granularidade. Porém, precisa-se de um benchmark comum para evaluar técnicas de mineração de aspectos que reconheza distintos tipos de aspectos onde exista um consenso.
6. Outros problemas encontrados. como comparação dos resultados de diferentes técnicas, compor distintas técnicas para melhores resultados e o jeito em que os interesses são programados pode mudar dependendo do programador.
Analise dos problemas:
Os problemas têm suas raízes por usar técnicas inadequadas (técnicas de propósito geral, suposições rigidas, propostas excessivamente otimista, técnicas que identifican código espalhado mas não enmaranhado, falta de informação semântica), Definições imprecisas (extração de interesses que não precisam ser convertidas em aspectos), representação inadequada dos resultados (falta de granularidade e uma representação padronizada porque assim não é factível comparar e poder combinar com diferentes técnicas).
Conclusões finais:
Com relação ao presisão e recall: Para um entendimento inicial de um programa de software, pouca presisão e recall não é necessariamente um problema, mas se é necessario migrar para aspectos, estos indicadores devem ser rigorosos.
Com relação as técnicas de mineração de aspectos:
1. Deveriam têr em conta uma maior quantidade de informação semântica, olhando sintomas de “tangling” em adição dos sintomas de “scattering”. Além disso, tomar em conta outras informações. Perguntar-se, É realmente necessario transformar os interesses encontrados em aspectos? Si fora assim, têr uma boa justificação para fazer isso.
2. Utilizar um framework para comparar metodologicamente difetentes técnicas .
3. Precisa-se de técnicas mais inteligentes, a tendência é combinar técnicas que façam mineração de padrões de desenho (ocorrencias de padrões) em vez de representações de estruturas, combinado com máquinas de estado para filtrar falsos positivos.
4. AspectJ é criticado por a falta de base semântica.
No hay comentarios:
Publicar un comentario