An important current direction in software engineering research addresses so-called "crosscutting concerns", aspects such as error handling or tracing that are inherently difficult to modularize. This gives rise to the aspect-oriented programming paradigm, in which code generation techniques are used to deal with cross cutting concerns.
Promising as aspect-oriented programming may seem for systems that are yet to be built, it is less clear how aspects can help improving the quality of existing object-oriented software systems. The purpose of the Aspect Mining and Refactoring (AMR) project is to develop concepts, principles, methods and tools supporting the identification of aspects in existing object-oriented software systems as well as their subsequent refactoring into aspect-oriented systems. The research involves the automated analysis of object-oriented (Java) systems, the creation of novel program analysis and transformation techniques, and the validation of the research results on industrial strength software systems.
Publications
- M. Marin - An Integrated System to Manage Crosscutting Concerns in Source Code.
PhD Thesis at Delft University of Technology. Manuscript approved by the committee in October, 2007. (pdf)
- M. Marin, L. Moonen, A. van Deursen - Documenting Typical Crosscutting Concerns.
In Proceedings of the 14th IEEE Conference on Reverse Engineering, 2007 (TUD-SERG-2007-010)
- M. Marin, L. Moonen, A. van Deursen - A systematic crosscutting concern migration strategy and its application to JHotDraw.
In Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), 2007 (TUD-SERG-2007-019)
- M. Marin, L. Moonen, A. van Deursen - SoQueT: Query-Based Documentation of Crosscutting Concerns.
In Proceedings 29th International Conference on Software Engineering (ICSE), 2007 - Formal Reseach Demonstration
- M. Marin, A. van Deursen , L. Moonen - Identifying Crosscutting Concerns Using Fan-in Analysis.
ACM Transactions on Software Engineering and Methodology (TOSEM), 17(1), January 2008 -
Earlier version available as Technical report TUD-SERG-2006-013
- M. Marin, L. Moonen, A. van Deursen - A common framework for aspect mining based on crosscutting concern sorts.
In Proceedings of the 13th IEEE Working Conference on Reverse Engineering (WCRE), 2006.
(pdf)
- M. Marin, L. Moonen, A. van Deursen - FINT: Tool support for aspect mining.
In Proceedings of the 13th Working Conference on Reverse Engineering (WCRE), 2006.
(pdf)
- M. Ceccato, M. Marin, K. Mens, L. Moonen, P. Tonella, T. Tourwe - Applying and Combining Three Different
Aspect Mining Techniques.
Software Quality Journal, Volume 14, Issue 3 (September 2006)
(pdf)
- M. Marin - Reasoning about assessing and improving the candidate-seed quality for a generative aspect mining technique.
In Linking Aspect Technology and Evolution Workshop at AOSD, 2006.
(pdf)
- M. Marin, L. Moonen, and A. van Deursen. A Classification of Crosscutting Concerns.
In Proceedings IEEE International Conference on Software Maintenance (ICSM 2005), 2005.
(pdf,
bib)
- M. Marin, A. van Deursen, and L. Moonen. Identifying Aspects using Fan-in Analysis.
In Proceedings of the 11th IEEE Working Conference on Reverse Engineering (WCRE), 2004.
(pdf,
bib,
report)
- M. Ceccato, M. Marin, K. Mens, L. Moonen, P. Tonella, T. Tourwe - A Qualitative Comparison of
Three Aspect Mining Techniques.
In Proceedings 13th IEEE International Workshop on Program Comprehension (IWPC 2005).
(pdf,
bib)
- M. Marin, L. Moonen, and A. van Deursen. An Approach to Aspect Refactoring Based on Crosscutting
Concern Types.
In Proceedings First International Workshop on the Modeling and Analysis of Concerns in Software
(MACS) at ICSE 2005. ACM SIGSOFT Software Engineering Notes Volume 30, Issue 4, 2005.
(pdf,
bib)
- A. van Deursen, M. Marin, L. Moonen - AJHotDraw: A showcase for refactoring to aspects.
In Proceedings Linking Aspect Technology and Evolution Workshop (LATE) at AOSD, 2005.
(pdf,
bib)
- M. Marin - Refactoring JHotDraw's Undo concern to AspectJ.
In Proceedings Workshop on Aspect Reverse Engineering (WARE) at WCRE 2004.
(pdf,
bib)
- A. van Deursen, M. Marin, and L. Moonen. Aspect Mining and Refactoring.
In Proceedings First International Workshop on REFactoring: Achievements, Challenges, Effects
(REFACE). University of Waterloo, 2003.
(pdf,
bib)
Fan-In Analysis
Various research groups have started to work on the topic of aspect mining, but in general it is difficult to discuss the approaches and assess them for false positives of false negatives since this would require a report of all the aspects that could be found in the case studies considered. Such reports were not available at time of our first study, and we consider our work to be a first step towards a common benchmark for various aspect mining techniques being developed. To promote such a common benchmark, we have set up these pages where aspect mining researchers can exchange and discuss aspect candidates found in (open source) software systems.
- Proposed guinea pigs:
- JHotDraw, version 5.4b1, 18,000 NCLOC, 2900 methods.
- PetStore version 1.3.2, 17,000 NCLOC, 1855 methods.
- TomCat version 5.x, 172,000 NCLOC, 16,400 methods.
- Report on the Fan In Analysis approach to Aspect Mining which is published as M. Marin, A. van Deursen, and L. Moonen. Identifying Aspects using Fan-in Analysis. In Proceedings of the 11th Working Conference on Reverse Engineering (WCRE2004), IEEE Computer Society, 2004.
FINT is an aspect mining tool that implements three aspect mining techniques: fan-in analysis, grouped calls analysis and redirections finder. (
more about FINT)
Minig (and combination) results of the techniques implemented by
FINT:
SoQueT is the tool support for documenting and modeling crosscutting concerns as instances of classes of concerns, called
sorts.
AJHotDraw is an aspect-oriented refactoring of the
JHotDraw two-dimensional graphics framework, developed as an open-source project.
Towards a combination of techniques for crosscutting concerns identification
The goal of our aspect mining work, initiated with the fan-in analysis, is to achieve
a tool with a high degree of automation that supports the identification and exploration of
crosscutting concerns.
As a first step, we compare the fan-in technique and other two
aspect mining techniques that
were developed independently by different research teams:
identifier analysis and
dynamic analysis. We
apply each technique to the proposed benchmark of
JHotDraw and mutually compare
the individual results of each technique based on the discovered
aspects and on the level of detail and quality of those
aspects. Strengths, weaknesses and underlying assumptions of each
technique are discussed, as well as their complementarity.
The results are published in the IWPC 2005 proceedings, and available
here.
Other collaborations
We actively participate in
AIRCO, an ad-hoc collaboration of researchers from our group, UCL, CWI, ITC-irst that work on aspect identification.
The End Result
On January 25th, 2008, the project was successfully completed with the
PhD defense of Marius Marin at
Delft University of Technology.