1 |
Identifying Crosscutting Concerns from Requirement Specifications - A Case StudyLi, GANG 13 April 2010 (has links)
Aspect-Oriented Requirement Engineering (AORE) is an emerging software engineering paradigm with increasing attention from academic as well as industrial communities. AORE aims at the systematic identification, modularization, composition and analysis of crosscutting concerns that manifest in requirements. It is believed that systematically managing crosscutting concerns early on at the requirement engineering stage can provide valuable insight at the architecture design and implementation stages and can help identify and thus manage crosscutting concerns at these stages. Moreover, identifying crosscutting concerns in requirements can help to reveal the scope of each concern in a software system, to detect potential conflicts between concerns and to facilitate trade-off negotiation early on. Hundreds of papers regarding AORE have been published in AORE communities. However, few of them address crosscutting concerns in real world requirements. Whether the proposed AORE approaches are productive when applied to real world requirements is unknown. In this thesis, we conduct an AORE case study consisting of an experiment using a real world software requirement specification in order to examine how crosscutting concerns present in real world requirement documents, explore the difference between crosscutting concerns in requirements and crosscutting concerns in code, and reason whether identifying and thus managing crosscutting concerns from real world requirements is a productive practice. / Thesis (Master, Computing) -- Queen's University, 2009-09-21 15:09:27.262
|
2 |
Aspect Mining Using Model-Based ClusteringRand McFadden, Renata 01 January 2011 (has links)
Legacy systems contain critical and complex business code that has been in use for a long time. This code is difficult to understand, maintain, and evolve, in large part due to crosscutting concerns: software system features, such as persistence, logging, and error handling, whose implementation is spread across multiple modules. Aspect-oriented
techniques separate crosscutting concerns from the base code, using separate modules called aspects and, thus, simplifying the legacy code. Aspect mining techniques identify aspect candidates so that the legacy code can be refactored into aspects.
This study investigated an automated aspect mining method in which a vector-space model clustering approach was used with model-based clustering. The vector-space model clustering approach has been researched for aspect mining using a number of different heuristic clustering methods and producing mixed results. Prior to this study,
this model had not been researched with model-based algorithms, even though they have grown in popularity because they lend themselves to statistical analysis and show results that are as good as or better than heuristic clustering methods.
This study investigated the effectiveness of model-based clustering for identifying aspects when compared against heuristic methods, such as k-means clustering and agglomerative hierarchical clustering, using six different vector-space models. The study's results indicated that model-based clustering can, in fact, be more effective than heuristic methods and showed good promise for aspect mining. In general, model-based algorithms performed better in not spreading the methods of the concerns across the multiple clusters but did not perform as well in not mixing multiple concerns in the same cluster. Model-based algorithms were also significantly better at partitioning the data such that, given an ordered list of clusters, fewer clusters and methods would need to be analyzed to find all the concerns. In addition, model-based algorithms automatically determined the optimal number of clusters, which was a great advantage over heuristic-based algorithms. Lastly, the study found that the new vector-space models performed better, relative to aspect mining, than previously defined vector-space models.
|
3 |
An Evaluation Of Aspect-oriented Programming For Embedded Real-time SystemsKartal, Yusuf Bora 01 May 2007 (has links) (PDF)
Crosscutting concerns are the issues in software that cannot be modularized within a software module. In this thesis work, a detailed evaluation of the use of Aspect Oriented Programming for the implementation of crosscutting concerns in embedded real-time systems is presented. The pilot Audio Switch project implementations are first evaluated in terms of software quality attributes. Then a detailed analysis of the two implementations, according to embedded real-time performance metrics has been carried out. Evaluation results show the benefits of Aspect Oriented Programming in embedded real-time systems.
|
4 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
5 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
6 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
7 |
[en] AN ASPECT ORIENTED REQUIREMENTS MODELING STRATEGY / [pt] UMA ESTRATÉGIA ORIENTADA A ASPECTOS PARA MODELAGEM DE REQUISITOSLYRENE FERNANDES DA SILVA 19 June 2006 (has links)
[pt] Devido ao tamanho e complexidade dos sistemas de software,
torna-se cada
vez mais difícil manipular os modelos que os representam.
É difícil identificar o
impacto de mudanças, modificar, ou reutilizar partes da
modelagem em outros
projetos porque as características do sistema são, na
maioria das vezes, muito
relacionadas umas às outras. Métodos tradicionais de
modelagem e programação
utilizam métodos de separação para minimizar este
acoplamento, porém eles
priorizam apenas uma dimensão das características do
sistema (classes, funções,
eventos, dentre outras). Características em outras
dimensões permanecem
espalhadas e entrelaçadas, i.e, elas são características
transversais. Nesta tese,
propomos que a separação considerando diferentes
dimensões, abordado pela
programação orientada a aspectos, seja realizada durante a
definição de requisitos.
Definimos um metamodelo para integração de características
transversais que
provê um conjunto de atividades e mecanismos para
facilitar a modularização,
rastreabilidade, modificação e reuso de requisitos. Estes
mecanismos são
centrados em uma linguagem que define um novo construto
para ser utilizado em
linguagens de requisitos tradicionais, possibilitando a
descrição e composição de
características transversais. Mostramos como aplicar este
metamodelo utilizando o
V-graph, um tipo de modelo de metas, e realizando dois
estudos de caso. / [en] Due to the increasing software complexity, it has been
difficult to
manipulate the models that represent them. It is difficult
to identify the impact of
changes, to modify, or reuse model parts in other projects
because the system
concerns are, in general, strongly interconnected.
Traditional modeling and
programming methods use separation method to minimize this
coupling, however
they consider only one dimension (classes, functions,
events). Therefore, the
concerns in other dimensions continue scattered and
tangled, i.e., they are
crosscutting concerns. In this thesis, we applied aspect-
oriented concepts in
modeling requirements. We define a metamodel to integrate
crosscutting concerns
that provides a set of activities and mechanisms to
facilitate the requirements
modularization, traceability, evolution and reuse. These
mechanisms are centered
in a language that defines new constructs to be used in
traditional requirements
languages, allowing the separation and composition of
crosscutting concerns. We
present two detailed case studies to show the proposed
metamodel instantiated to
a goal oriented requirements model, V-graph.
|
8 |
GT4CCI: uma abordagem baseada em grounded theory para a identifica??o de interesses transversais em documentos de requisitos / GT4CCI: a grounded theory-based approach for the identification of crosscutting concerns in requirements documentsSobral, Larissa de Alencar 05 February 2013 (has links)
Made available in DSpace on 2014-12-17T15:48:07Z (GMT). No. of bitstreams: 1
LarissaAS_DISSERT.pdf: 2513975 bytes, checksum: c4af91c9ccb8a615b65c89426c2338d2 (MD5)
Previous issue date: 2013-02-05 / Coordena??o de Aperfei?oamento de Pessoal de N?vel Superior / When crosscutting concerns identification is performed from the beginning of
development, on the activities involved in requirements engineering, there are many
gains in terms of quality, cost and efficiency throughout the lifecycle of software
development. This early identification supports the evolution of requirements,
detects possible flaws in the requirements specification, improves traceability among
requirements, provides better software modularity and prevents possible rework.
However, despite these several advantages, the crosscutting concerns identification
over requirements engineering faces several difficulties such as the lack of
systematization and tools that support it. Furthermore, it is difficult to justify why
some concerns are identified as crosscutting or not, since this identification is, most
often, made without any methodology that systematizes and bases it. In this context,
this paper proposes an approach based on Grounded Theory, called GT4CCI, for
systematizing and basing the process of identifying crosscutting concerns in the
initial stages of the software development process in the requirements document.
Grounded Theory is a renowned methodology for qualitative analysis of data.
Through the use of GT4CCI it is possible to better understand, track and document
concerns, adding gains in terms of quality, reliability and modularity of the entire
lifecycle of software / Quando a identifica??o de interesses transversais ? feita desde o princ?pio do
processo de desenvolvimento de software, ainda nas atividades relacionadas ?
Engenharia de Requisitos, muitos s?o os ganhos em termos de qualidade, custo e
efici?ncia ao longo do ciclo de vida do software. Esta identifica??o precoce d? suporte
? evolu??o de requisitos, detecta poss?veis falhas na especifica??o de requisitos,
melhora a rastreabilidade entre os requisitos, proporciona uma melhor
modulariza??o de software e previne poss?veis retrabalhos. Entretanto, apesar de
todas estas vantagens, a identifica??o de interesses enfrenta diversas dificuldades,
tais como a falta de sistematiza??o e de ferramentas que a ofere?am um bom suporte.
Al?m disto, ? dif?cil, muitas vezes, justificar as raz?es pelas quais alguns interesses
s?o ou n?o considerados transversais, uma vez que esta identifica??o ?, na maioria
das vezes, feita sem qualquer metodologia que a sistematize e a embase. Neste
contexto, este trabalho prop?e uma abordagem baseada nos princ?pios da Grounded
Theory, chamada GT4CCI, que sistematiza e embasa o processo de identifica??o de
interesses transversais nas etapas mais iniciais do processo de desenvolvimento de
software, utilizando o documento de requisitos como artefato para a identifica??o.
Grounded Theory ? uma renomada metodologia para a an?lise qualitativa de dados.
Atrav?s do uso da abordagem GT4CCI ? poss?vel melhor compreender, rastrear e
documentar interesses, adicionando assim ganhos em termos de qualidade,
confiabilidade e modulariza??o ? todo o ciclo de vida do software
|
9 |
Um metamodelo para facilitar a integração de ferramentas de visualização de software e mineração de interesses transversaisTanner, Oscar José Fernandes 22 November 2013 (has links)
Made available in DSpace on 2016-06-02T19:06:13Z (GMT). No. of bitstreams: 1
6078.pdf: 14032295 bytes, checksum: 116eccd4fd841045293650d9b4779ff3 (MD5)
Previous issue date: 2013-11-22 / Financiadora de Estudos e Projetos / A goal of the Object-Oriented Programming is to develop software with better modularization and separation of concerns, although tangling and scattering of some of these concerns cannot be prevented. The Aspect-Oriented Programming was proposed to solve this problem. However, the identification of the scattering and tangling concerns, also known as crosscutting concerns (CC), is not simple. To assist this identification, it is recommended the use of CC Mining tools (MT), but some MTs do not properly display these CCs in the source code. One way to improve the presentation of this CCs is displaying them through software visualization tools. Software visualization aims to abstract the structural information of the software through visual metaphors. However, it is not always simple to integrate CC and visualization tools, because each tool store their results in a specific format that is usually not recognized by the others. In order to solve this problem, this work created a metamodel that facilitates this integration. The results obtained from a MT are transformed to this metamodel format, so they can be processed by a software visualization tool. Presenting the results of a MT through software visualization tools helps the comparison of these results, facilitating the detection of false negatives and the identification of visual patterns that indicate false positives. Four MT and two software visualization tools were integrated to demonstrate the benefits of an integrated environment. Moreover, two experiments were conducted: one to evaluate the use of the proposed metamodel; and another to evaluate the use of the integrated environment. The results revealed that the use of the proposed metamodel facilitates this integration and the software engineer must be a specialist of each of the integrated tools in order to enjoy the benefits from this integration. / Um dos objetivos do desenvolvimento Orientado a Objetos é a construção de software com melhor modularização e separação de interesses, porém não há como evitar que haja entrelaçamento e espalhamento de alguns desses interesses. O desenvolvimento Orientado a Aspecto é uma proposta de solucionar esse problema. Entretanto, a identificação de interesses entrelaçados e espalhados pelo código fonte, conhecidos como interesses transversais (IT), não é simples. Para auxiliar essa identificação é recomendado o uso de ferramentas de mineração de interesses transversais (MIT). Após esses interesses serem identificados, muitas vezes, persiste a dificuldade de visualizá-los adequadamente no código fonte. Uma forma de melhorar a apresentação dos ITs é exibir os resultados das ferramentas de MIT usando as ferramentas de visualização de software. A visualização de software tem como objetivo abstrair as informações estruturais de um software por meio de metáforas visuais. Porém, nem sempre é possível integrar facilmente essas ferramentas, pois cada uma armazena seus resultados em um formato específico que normalmente não é reconhecida pelas demais. Para solucionar esse problema, neste trabalho foi criado um metamodelo que facilita essa integração. Os resultados obtidos a partir de uma ferramenta de MIT são transformados para o formato desse metamodelo, para que sejam processados por uma ferramenta de visualização de software. A exibição dos resultados das ferramentas de MIT por meio das ferramentas de visualização facilita a comparação desses resultados, sendo evidenciados os falsos negativos e facilitada a identificação de novos padrões visuais para falsos positivos. Para mostrar a utilidade de um ambiente integrado, foram utilizadas quatro ferramentas de MIT e duas de visualização de software. Além disso, dois experimentos foram conduzidos: um para avaliar a utilização do metamodelo proposto, e outro para avaliar a utilização do ambiente integrado. Os resultados apontaram que a integração é facilitada com a utilização do metamodelo proposto e que é necessário que o engenheiro de software tenha pleno domínio de cada uma das ferramentas envolvidas, a fim de beneficiar-se dessa integração.
|
10 |
Towards a Taxonomy of Aspect-Oriented Programming.Hankerson, Mario Bernard 13 December 2003 (has links) (PDF)
As programs continue to increase in size, it has become increasingly difficult to separate concerns into well localized modules, which leads to code tangling- crosscutting code spread throughout several modules. Thus, Aspect-Oriented Programming (AOP) offers a solution to creating modules with little or no crosscutting concerns. AOP presents the notion of aspects, and demonstrates how crosscutting concerns can be taken out of modules and placed into a centralized location.
In this paper, a taxonomy of aspect-oriented programming, as well as a basic overview and introduction of AOP, will be presented in order to assist future researchers in getting started on additional research on the topic. To form the taxonomy, over four-hundred research articles were organized into fifteen different primary categories coupled with sub-categories, which shows where some of the past research has been focused. In addition, trends of the research were evaluated and paths for future exploration are suggested.
|
Page generated in 0.0972 seconds