How Crosscutting Concerns Evolve in JHotDraw

Programmers tend to isolate concerns in source code as a way to achieve a clearer visualization of scattered and tangled code. Thus, a crosscutting concern can be well represented as the set of tangled and scattered lines of code across the system. With such model, we found that crosscutting concerns are first inserted in the system and then maintained through a set of changes performed exclusively for those concerns. Versioned software systems provide a huge amount of historical data regarding source code changes. We use a fine grained analysis method of CVS repositories to observe the evolution of three crosscutting concerns, Observer, Persistence, and Undo, in JHotDraw. Analyzing the history of crosscutting concerns gives us the opportunity to better understand their nature, which helps in developing and evaluating new aspect mining techniques

[1]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[2]  Thomas Zimmermann,et al.  Preprocessing CVS Data for Fine-Grained Analysis , 2004, MSR.

[3]  Marius Marin Refactoring JHOTDRAW’s Undo concern to ASPECTJ , 2005 .

[4]  Eugene W. Myers,et al.  A file comparison program , 1985, Softw. Pract. Exp..

[5]  Moshe Bar,et al.  Open Source Development with CVS , 1999 .

[6]  Gregor Kiczales,et al.  Overcoming the Prevalent Decomposition in Legacy Code , 2001 .

[7]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[8]  Mariano Ceccato,et al.  A qualitative comparison of three aspect mining techniques , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[9]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[10]  William G. Griswold,et al.  AspectBrowser: Tool Support for Managing Dispersed Aspects , 1999 .

[11]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[12]  Qing Zhang,et al.  CVSSearch: searching through source code using CVS comments , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[13]  Tomoji Kishi,et al.  Implementing Design Patterns Using Advanced Separation of Concerns , 2001 .

[14]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[15]  N. Loughran,et al.  Mining Aspects , 2002 .