Caampi : uma abordagem baseada em técnicas de agrupamento para mineração de aspectos e identificação de pontos de corte
Resumo
Resumo: A programação Orientação a Aspectos (AO) visa a solucionar alguns problemas da orientação a objetos (OO) relativos aos chamados interesses transversais, tais como funcionalidades duplicadas, espalhamento de funcionalidades e funcionalidades entrelaçadas. Os aspectos modularizam requisitos não funcionais que precisam estar presentes em várias partes do sistema e são encaixados conforme a necessidade por pontos de corte nos objetos a serem afetados. Para usufruir destes benefícios é necessário um processo de identificação e separação dos interesses base e transversais, o que é uma tarefa árdua e trabalhosa. A Mineração de Aspectos tem como objetivo automatizar este processo. Várias técnicas para identificar automaticamente os interesses transversais existem. Dentre estas, destaca-se a análise de agrupamento que _e capaz de descobrir possíveis candidatos a aspectos sem que seja necessário o conhecimento prévio das particularidades do sistema. Entretanto, a maioria das abordagens baseadas nesta técnica não utilizam uma medida de distância que considera diferentes características associadas aos sintomas de interesses transversais. Além disso, as abordagens carecem de instrumentos que permitam a eliminação de interesses base ou a rápida separação dos potenciais interesses transversais. Outra limitação é que elas não fornecem auxílio na identificação de pontos de corte. Considerando este fato, o objetivo principal deste trabalho é contribuir para a área de mineração de aspectos em código fonte baseada em análise de agrupamento através da proposição da abordagem CAAMPI, que contempla a definição de uma medida de distância que combina os sintomas de espalhamento, código duplicado e convenção de nomes. Além disso, a abordagem utiliza um filtro baseado na técnica de fan-in para a eliminação parcial de interesses base e permite a identificação de pontos de corte utilizando regras de associação e a ordenação dos grupos obtidos na fase de agrupamento de acordo com seu potencial de pertencer a um interesse transversal. O trabalho também descreve o framework CAAMPI4J, que define e implementa a abordagem CAAMPI para a análise de código fonte Java. O CAAMPI4J foi utilizado em experimentos com três sistemas reais, nos quais foram avaliadas diferentes combinações de medidas e tipos de algoritmos de agrupamento. Os resultados dos experimentos demonstram que a medida de distância proposta obteve melhores resultados que as medidas existentes, e que os pontos de corte identificados são realmente aproveitados nas versões refatoradas para aspectos dos sistemas OO utilizados. Além disso, a ordenação de grupos viabiliza a definição de critérios quantitativos para a priorização da análise e refatoração dos candidatos a aspectos. Abstract: The aspect-oriented (AO) programming aims at solving some of the object-oriented (OO) problems related to the called crosscutting concerns, such as code cloning, scattering and tangling. The aspects modularizes non-functional requirements that need to be spread in several parts of the system, and can be joined by pointcuts on objects that are a_ected by these concerns. To bene_t from AO, the software needs to go through a concern decomposition process, in which the core and crosscutting concerns are identi_ed and separated. This is a hard and labour-intensive task. The goal of the Aspect Mining _eld is to automate this process. To do this, di_erent techniques exist. Among them the technique based on clustering analysis is able to discover potential aspects associated to the existing crosscutting concerns without requiring prior knowledge of the software characteristics. However, the approaches based on this technique do not use a distance measure that considers di_erent characteristics of the crosscutting concern symptoms. Moreover, they do not allow neither the elimination of base concerns nor the isolation of potential crosscutting concerns. Other limitation is that they do not help in the identi_cation of the point cuts. Due to this fact, the main objective of this work is to contribute for the aspect mining area based on clustering analysis by proposing the CAAMPI approach, which introduces a distance measure that combines scattering, code cloning and naming convention symptoms. Moreover, the approach adopts fan-in analysis for partially eliminating core concerns. It allows the identi_cation of pointcuts by using association rules, and the ranking of groups obtained in the cluster analysis that potentially belong to a crosscutting concern. The work also describes the framework CAAMPI4J, for Java source code analysis. The CAAMPI4J was used in experiments with three real systems, which evaluated di_erent combinations of distance measures and clustering algorithms. The experimental results show that the proposed distance measure obtains better results than the most used distance measures, and the identi_ed pointcuts are in fact implemented in the AO versions of the systems. In addition to this, the group ranking enables the de_nition of quantitative criteria for aspect candidates prioritization and refactoring.
Collections
- Teses & Dissertações [10016]