The AMR project

Sometimes, the project's web-site could be more up-to-date than this page, although I try to keep them synchronized ... at least, the list of publications.

The AMR project is part of my PhD work at Delft University of Technology.

The goal of this research project is to develop techniques and tool support to aid software engineers in better dealing with the complexity of existing (object-oriented) systems, and in particular with crosscutting concerns in these systems. Crosscutting concerns are acknowledged to be a challenge to program comprehension and maintenance due to their lack of modularity -- the implementation of such concerns is not assigned to a dedicated modularization unit, but is scattered over several modules and tangled with code that belongs to other concerns.

 

The project's goals cover various steps towards increasing awareness and improving management of crosscutting concerns in existing systems, as well as towards migrating such concerns to aspect-oriented programming through refactoring.

One first step consists of the automatic identification of crosscutting concerns in existing code, the so-called aspect mining step. To support aspect mining, I have designed and implemented a number of source code analysis techniques able to support, independently and in combination, the automatic recognition of ("bad smells" specific to) crosscutting concerns. The results of the mining process provide us with the starting points for exploring crosscutting concerns in unknown systems.

A second step is to consistently document these findings and their associated concerns. To this end, I  investigate the use of code queries as a solution to modularizing and documenting crosscutting concerns. The tool support that I actively develop to support the mining and modeling/documentation of crosscutting concerns is freely available: FINT and SoQueT.

A subsequent step towards improving the modularity of a system is the refactoring to aspects of the crosscutting concerns; this starts from the identified concerns and is aimed at showing and applying a systematic process to migrate object-oriented systems to aspect-oriented ones. The show-case I am working on is the refactoring to ApsectJ of a popular object-oriented framework, namely the JHotDraw application. The aspect version is called AJHotDraw and is available as an open source project. The AJHotDraw experience helps us to assess how aspect-oriented languages help us to improve evolvability of software systems.

 

Others

Tools and open-source projects:

FINT - tool support for aspect mining. The tool supports a number of analyses like Fan-in, Grouped calls and Redirections finder.

SoQueT - tool support for modeling and documenting instances of typical crosscutting concerns using queries.

AJHotDraw - an aspect-oriented refactoring of the JHotDraw framework. For more details see the SCAM 2007 paper.

 

 

Organization

1st Workshop on Aspect Reverse Engineering in conjuction with WCRE 2004 (WARE 2004)

The Ninth ASTReNet Workshop IEEE International Astrenet Aspect Analysis Workshop (panel) (AAA 2006)

Workshop on Linking Aspect Technology and Evolution held in conjuction with AOSD 2007 (LATE 2007)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PhD dissertation
M. Marin - An Integrated System to Manage Crosscutting Concerns in Source Code (Delft University of Technology - Software Engineering)
 
Journals
M. Marin, A. van Deursen, L. Moonen, R. van der Rijst - An integrated crosscutting concern migration strategy and its semi-automated application to JHotDraw. Automated Software Engineering Journal (JASE), Vol. 16, No. 2, 2009. (pdf)
 
M. Marin, A. van Deursen, L. Moonen - Identifying Crosscutting Concerns Using Fan-in Analysis. ACM Transactions on Software Engineering and Methodology (TOSEM), Vol. 17, Issue 1, 2007. Earlier version available as Technical report TUD-SERG-2006-013
 
M. Ceccato, M. Marin, K. Mens, L. Moonen, P. Tonella, T. Tourwe - Applying and Combining Three Different Aspect Mining Techniques. Software Quality Journal 14(3), 2006. (pdf)
 
 
Proceedings conferences
 
M. Marin, L. Moonen, A. van Deursen - An Integrated Crosscutting Concern Migration Strategy and its Application to JHotDraw. In Proc. of the 7th IEEE Conference on Source Code Analysis and Manipulation (SCAM), 2007. (pdf)
 
M. Marin, L. Moonen, A. van Deursen - Documenting Typical Crosscutting Concerns. In Proc. of the 14th IEEE Conference on Reverse Engineering, 2007.(pdf)
 
M. Marin, L. Moonen, A. van Deursen - SoQueT: Query-Based Documentation of Crosscutting Concerns. In Proc. of the 29th International Conference on Software Engineering (ICSE), 2007.
 
M. Marin, L. Moonen, A. van Deursen - A common framework for aspect mining based on crosscutting concern sorts. In Proc. 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 Proc. of the 13th IEEE Working Conference on Reverse Engineering (WCRE), 2006.
 
Marius Marin, Leon Moonen, Arie van Deursen - A classification of crosscutting concerns. In Proc. 21st IEEE International Conference on Software Maintenance (ICSM), 2005. (pdf, bib)  .
 
M. Ceccato, M. Marin, K. Mens, L. Moonen, P. Tonella, T. Tourwe - A Qualitative Comparison of Three Aspect Mining Techniques. In Proc. 13th IEEE International Workshop/Conference on Program Comprehension (IWPC/ICPC), 2005. (pdf, bib)
 
Marius Marin, Arie van Deursen, Leon Moonen - Identifying Aspects using Fan-in Analysis. In Proc. 11th IEEE Working Conference on Reverse Engineering (WCRE), 2004 (pdf, report, bib)
 
 
Workshops
(These papers are typically covered by the conference papers)
 
Marius Marin - Reasoning about assessing and improving the candidate-seed quality for a generative aspect mining technique. In Linking Aspect Technology and Evolution Workshop (LATE) at AOSD, 2006. (pdf)
 
Marius Marin, Leon Moonen, Arie van Deursen - An Approach to Aspect Refactoring Based on Crosscutting Concern Types. In Proceedings International Workshop on the Modeling and Analysis of Concerns in Software (MACS) at ICSE, 2005. (pdf, bib)
 
Marius Marin - Refactoring JHotDraw's Undo concern to AspectJ. In Proceedings of the Workshop on Aspect Reverse Engineering (WARE), 2004 (pdf, bib)
 
Arie van Deursen, Marius Marin, Leon Moonen - AJHotDraw: A showcase for refactoring to aspects. In Proc. Linking Aspect Technology and Evolution Workshop (LATE) at AOSD, 2005 (pdf, bib)
 
Arie van Deursen, Marius Marin, Leon Moonen - Aspect Mining and Refactoring. In Proceedings First International Workshop on REFactoring: Achievements, Challenges, Effects (REFACE). University of Waterloo, 2003. (pdf, bib)
-------------------------------------------------------------------------
Arie van Deursen, Marius Marin, Leon Moonen - A Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw. Technical Report cs.SE/0503015 (arxiv.org) or SEN-R0507 (CWI) (pdf, bib)
 
Research areas related to the project

 

Reverse engineering

Program comprehension

Program analysis

Concern modeling, design patterns

Refactoring of object-oriented systems

Aspect-oriented programming

 
 
Marius M. - personal page