Evolution Issues in Aspect-Oriented Programming

  title={Evolution Issues in Aspect-Oriented Programming},
  author={Tom Mens and Tom Tourw{\'e}},
  booktitle={Software Evolution},
This chapter identifies evolution-related issues and challenges in aspect-oriented programming. It can serve as a guideline for adopters of aspect technology to get a better idea of the evolution issues they may confront sooner or later, of the risks involved, and of the state-of-the-art in the techniques currently available to help them in addressing these issues. We focus in particular on the programming level, although some of the issues and challenges addressed may apply to earlier software… 

Toward automated refactoring of crosscutting concerns into aspects

Towards a Hybrid Approach to Build Aspect-Oriented Programs

This work proposes to take the AOP out of the conventional style of coding by using a new approach, which is partially visual, to better support the coding process by introducing more interactivity and a high-degree of flexibility.

An empirical study on the impact of AspectJ on software evolvability

The overall result indicates that AspectJ has a different effect on two sub-characteristics of the evolvability: understandability and changeability, while Aspect J decreases the former, it improves one aspect of the latter.

Identifying crosscutting concerns using historical code changes

A new mining technique (COMMIT) is proposed that recovers up to 87.5% more unique concerns than two leading concern mining techniques, and that the three techniques complement each other.

Formal Model and DSL for Separation of Concerns based on Views

A formal algebra-based model to describe different entities related to VOC is described, which introduces algebra and formalism associated with a Domain Specific Language (DSL) notation to illustrate the VOC paradigm.

Aspect Interaction Analysis using Slicing and Graph based Semantics

This work proposes an approach to detect aspect interference, Aspect composition are modeled by using graph production system for modelling aspect-language semantics and results in LTS (labelled transition system) that can be used to analyze verify different behavior at join points.

Co-evolution of source code and the build system

  • B. Adams
  • Computer Science
    2009 IEEE International Conference on Software Maintenance
  • 2009
This dissertation presents a conceptual framework with tool support to recover, analyze and refactor a build system, and hypothesizes four conceptual reasons of co-evolution to guide future research in the area of build systems.

Software architecture evolution through evolvability analysis

Identifying cross-cutting concerns using software repository mining

The software repository mining technique can uncover relationships between modules that may not be present in the source code and thereby provide a different perspective on the cross-cutting concerns in a software system.



Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts

A model-based pointcut mechanism is implemented, which was used to define some aspects on SmallWiki, a medium-sized application, and subsequently detected and resolved occurrences of the fragile pointcut problem when this application evolved.

On the Existence of the AOSD-Evolution Paradox

It is shown that aspect programmers are forced to write aspects that only work for one specific version of an application, and current AOSD technologies deliver applications that are as hard, or even harder, to evolve than was the case before.

Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study

It is found that the aspect-oriented design has exhibited superior stability and reusability through the changes, as it has resulted in fewer lines of code, improved separation of concerns, weaker coupling, and lower intra-component complexity.

Modularizing design patterns with aspects: a quantitative study

This paper presents a quantitative study that compares aspect-based and OO solutions for the 23 Gang-of-Four patterns and finds that most aspect-oriented solutions improve separation of pattern-related concerns, although only 4 aspect- oriented implementations have exhibited significant reuse.

Refactoring of Aspect-Oriented Software

A number of new aspect-orientation refactorings are introduced which help on the one hand to migrate from object-oriented to aspect- oriented software and on the other hand to restructure existing aspect-oriented code.

Concern graphs: finding and describing concerns using structural program dependencies

  • M. RobillardG. Murphy
  • Computer Science
    Proceedings of the 24th International Conference on Software Engineering. ICSE 2002
  • 2002
The concern graph representation, a representation that abstracts the implementation details of a concern and makes explicit the relationships between different parts of the concern, is introduced and the results indicate that concern graphs can be used to document a concern for change, that developers unfamiliar with concern graph can use them effectively, and that the underlying technology scales to industrial-sized programs.

Sustainable System Infrastructure and Big Bang Evolution: Can Aspects Keep Pace?

A case study considers several categories of aspects – design invariants, dynamic analysis tools, and domain specific design patterns – and shows the concrete ways in which aspects had positive, negative and neutral impact during the restructuring of the memory management subsystem of a virtual machine.

Discovering early aspects

This article describes how to identify and capture early aspects in requirements and architecture activities and how they're carried over from one phase to another.

On the use of clone detection for identifying crosscutting concern code

This paper manually identifies five specific crosscutting concerns in an industrial C system and analyzes to what extent clone detection is capable of finding them and considers the results as a stepping stone toward an automated "aspect miner" based on clone detection.

PRISM is research in aSpect mining

Prism is a major extension of AMTEX, which is designed for IDE integration, cross-language mining support, and multimodal analysis, and Prism is also an extensible mining platform,Which is open for supporting new mining techniques.