Thumbnail
Access Restriction
Open

Author Breu, Silvia ♦ Zimmermann, Thomas ♦ Lindig, Christian
Source CiteSeerX
Content type Text
File Format PDF
Language English
Subject Domain (in DDC) Computer science, information & general works ♦ Data processing & computer science
Subject Keyword Aspect-oriented Programming ♦ Previous Dynamic Aspect Mining Approach ♦ Version Archive ♦ Second Step ♦ Concept Analysis ♦ Aspect Mining ♦ Data Flow ♦ Large Program ♦ Cv Transaction ♦ Cross-cutting Concern ♦ Cv Archive ♦ Various Unrelated Location ♦ Algebraic Theory ♦ Basic Idea ♦ Many Class ♦ Aspect Candidate ♦ Initial Evaluation ♦ Method Call ♦ So-called Aspect ♦ Object-oriented Mechanism ♦ Maintenance Problem ♦ Current Version ♦ Program Trace ♦ Development Time ♦ Typical Cross-cutting Concern ♦ Formal Concept Analysis ♦ Small Fraction ♦ Proper Encapsulation ♦ Mainline Code ♦ Short Amount
Description Every large program contains a small fraction of functionality that resists proper encapsulation. Code for debugging, logging, or locking is hard to conceal using object-oriented mechanisms alone. As a result, this code ends up scattered across many classes, which makes it a maintenance problem. At the same time, this code is largely orthogonal to surrounding (or mainline) code as it rarely impacts control or data flow. This observation gave rise to aspect-oriented programming (AOP) as a solution: Functionality is encapsulated in so-called aspects that are woven into mainline code during compilation. For existing projects to benefit from AOP, the cross-cutting concerns must be identified first; this task is called aspect mining. In this paper we address it based on the hypothesis that a typical cross-cutting concerns is added to a project within a short amount of development time: We mine CVS archives for sets of methods that got added together in various unrelated locations. To compute these efficiently, we apply formal concept analysis [3]—an algebraic theory. In this paper, we describe the basic idea and report on results from an initial evaluation of our technique. 2 Mining Cross-Cutting Concerns In our approach we first collect the data that represents the history of a project, namely all transactions to the CVS archive of the project. In a second step, we use formal concept analysis to mine aspect candidates from each transaction. 2.1 Version Archives and Transactions The history of a project is characterised by a sequence of CVS transaction. Each transaction represents the changes, i.e. addition and deletions, between the previous and the current version. Motivated by our previous dynamic aspect mining approaches that analysed program traces [1, 2], we are only interested in changes that insert (or delete) calls to methods. As we are interested in the introduction of cross-cutting concerns (due to our hypothesis that aspects emerge over time) we omit deletions of method calls and concentrate exclusively on additions of method calls. A method call is characterised by two components: a location l ∈ L where the call originates (in the body of a method) and the method m ∈ M being called.
Educational Role Student ♦ Teacher
Age Range above 22 year
Educational Use Research
Education Level UG and PG ♦ Career/Technical Study
Learning Resource Type Article
Publisher Date 2006-01-01
Publisher Institution Proc. of 8th Workshop on Software-Reengineering (WSR '06