Conference Proceeding

Automated refactoring of object oriented code into aspects

Loyola Coll., Baltimore, MD, USA;
10/2005; DOI:10.1109/ICSM.2005.27 ISBN: 0-7695-2368-4 In proceeding of: Software Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE International Conference on
Source: DBLP

ABSTRACT This paper presents a human-guided automated approach to refactoring object oriented programs to the aspect oriented paradigm. The approach is based upon the iterative application of four steps: discovery, enabling, selection, and refactoring. After discovering potentially applicable refactorings, the enabling step transforms the code to improve refactorability. During the selection phase the particular refactorings to apply are chosen. Finally, the refactoring phase transforms the code by moving the selected code to a new aspect. This paper presents the results of an evaluation in which one of the crosscutting concerns of a 40,000 LoC program (JHotDraw) is refactored.

0 0
 · 
0 Bookmarks
 · 
43 Views
  • Source
    Conference Proceeding: Migrating Object Oriented code to Aspect Oriented Programming
    [show abstract] [hide abstract]
    ABSTRACT: Aspect oriented programming (AOP) is a new programming paradigm that offers a novel modularization unit for the crosscutting concerns. Functionalities originally spread across several modules and tangled with each other can be factored out into a single, separate unit, called an aspect. We investigated automated techniques that can be used to support the migration of existing Object Oriented Programming (OOP) code to AOP. To migrate an application to the new paradigm, a preliminary identification of the cross-cutting concerns is required (aspect mining). Then refactoring is applied to transform the scattered concerns into aspects. The proposed methods have been assessed on case studies for a total of more than half a million lines of code.
    Software Maintenance, 2007. ICSM 2007. IEEE International Conference on; 11/2007
  • Source
    Article: On the benefits of quantification in AspectJ systems
    [show abstract] [hide abstract]
    ABSTRACT: In this paper, we argue that the most favorable uses of aspects happen when their code relies extensively on quantified statements, i.e.,statements that may affect many parts of a system. When this happens, aspects better contribute to separation of concerns, since the otherwise duplicated and tangled code related to the implementation of a crosscutting concern is confined in a single block of code. We provide in the paper both qualitative and quantitative arguments in favor of quantification. We also propose two new metrics to capture in a simple way the amount of quantification employed in the aspects of a given system. Finally, we describe an Eclipse plugin, called ConcernMetrics that estimates the proposed metrics directly from the object-oriented code of an existing system, i.e.,before crosscutting concerns are extracted to aspects. Our main motivation is to help developers and maintainers to decide in a cost-effective way if it is worthwhile to use aspects in their systems. KeywordsAspect-oriented programming-AspectJ-Quantification-Separation of Concerns-Metrics-Refactoring
    Journal of the Brazilian Computer Society 04/2012; 16(2):133-146.
  • Source
    Article: Refactoring object oriented software: cross-cutting concerns identification and isolation
    [show abstract] [hide abstract]
    ABSTRACT: The capability of dividing a big problem in smaller, inde-pendent and more tractable units is crucial for the success of the project. Object oriented decomposition uses to work well to manage decomposition in a software project. Altough there are some concerns that overcome the object oriented software decomposition schema. These concerns are called cross-cutting concerns. Being able to identify and isolate cross-cutting concerns, present in an object oriented software, can improve the soft-ware readability and maintainability. The identification of these concerns is called aspect mining. The mined cross-cutting concerns can be implemented as isolated compila-tion units, called aspects. Aspect oriented languages were born as object oriented extension to implement isolation of concerns. In this work we present the problem of cross-cutting con-cerns and their identification and isolation in an existing object oriented software.

Full-text (2 Sources)

View
3 Downloads
Available from
15 Jan 2013

Keywords

crosscutting concerns
 
enabling step
 
iterative application
 
new aspect
 
paper presents
 
particular refactorings
 
refactoring
 
refactoring phase
 
selected code
 
selection phase
 
steps