2003Unpublished venueRequires access

Refactoring of Aspect-Oriented Software

Stefan Hanenberg, Christian Oberschulte, Rainer Unland

Open publisher page 97 citations

Abstract

The application of refactorings during an object-oriented development process improves the design and therefore the quality of software. Aspectorientation is a new programming paradigm that increases the modularity of software. Hence, it seems natural to apply both aspect-orientation as well as refactoring during a software development process since both techniques permit to increase the modularity and comprehensibility of software. However, on the one hand existing object-oriented refactoring techniques cannot directly be applied to aspect-oriented software because traditional object-oriented refactoring applied in an aspect-oriented environment is no longer behavior preserving. On the other hand, since the new features of aspect-oriented languages permit to modularize software in different ways there is a large variety of new refactorings based on these features. This paper discusses the relationship between object-oriented refactoring and aspect-orientation. We show what aspect-oriented elements conflict with existing refactorings and propose solutions for these conflicts for the aspect language AspectJ. Furthermore, we introduce a number of new aspect-oriented refactorings 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.

About this research paper

What this paper is about

The application of refactorings during an object-oriented development process improves the design and therefore the quality of software. Aspectorientation is a new programming paradigm that increases the modularity of software. Hence, it seems natural to apply both aspect-orientation as well as refactoring during a software development process since both techniques permit to increase the modularity and comprehensibility of software. However, on the one hand existing object-oriented refactoring techniques cannot directly be applied to aspect-oriented software because traditional object-oriented refactoring applied in an aspect-oriented environment is no longer behavior preserving. On the other hand, since the new features of aspect-oriented languages permit to modularize software in different ways there is a large variety of new refactorings based on these features. This paper discusses the relationship between object-oriented refactoring and aspect-orientation. We show what aspect-oriented elements conflict with existing refactorings and propose solutions for these conflicts for the aspect language AspectJ. Furthermore, we introduce a number of new aspect-oriented refactorings 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.

Why it matters

OpenAlex reports 97 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

The application of refactorings during an object-oriented development process improves the design and therefore the quality of software. Aspectorientation is a new programming paradigm that increases the modularity of software. Hence, it seems natural to apply both aspect-orientation as well as refactoring during a software development process since both techniques permit to increase the modularity and comprehensibility of software. However, on the one hand existing object-oriented refactoring techniques cannot directly be applied to aspect-oriented software because traditional object-oriented refactoring applied in an aspect-oriented environment is no longer behavior preserving. On the other hand, since the new features of aspect-oriented languages permit to modularize software in different ways there is a large variety of new refactorings based on these features. This paper discusses the relationship between object-oriented refactoring and aspect-orientation. We show what aspect-oriented elements conflict with existing refactorings and propose solutions for these conflicts for the aspect language AspectJ. Furthermore, we introduce a number of new aspect-oriented refactorings 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.

Key concepts: Code refactoring, Aspect-oriented programming, AspectJ, Computer science, Modularity (biology), Software development, Programming language, Object-oriented programming

Related papers

Back to paper searchBrowse research topicsOriginal source
Refactoring of Aspect-Oriented Software — Research Paper | ScholarLens