Mining Crosscutting Concerns through Random Walks

Inspired by our past manual aspect mining experiences, this paper describes a probabilistic random walk model to approximate the process of discovering crosscutting concerns (CCs) in the absence of the domain knowledge about the investigated application. The random walks are performed on the concept graphs extracted from the program sources to calculate metrics of “utilization” and “aggregation” for each of the program elements. We rank all the program elements based on these metrics and use a threshold to produce a set of candidates that represent crosscutting concerns. We implemented the algorithm as the Prism CC miner (PCM) and evaluated PCM on Java applications ranging from a small-scale drawing application to a medium-sized middleware application and to a large-scale enterprise application server. Our quantification shows that PCM is able to produce comparable results (95 percent accuracy for the top 125 candidates) with respect to the manual mining effort. PCM is also significantly more effective as compared to the conventional approach.

[1]  Hinrich Schütze,et al.  Introduction to information retrieval , 2008 .

[2]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[3]  Ramesh Govindan,et al.  Making Eigenvector-Based Reputation Systems Robust to Collusion , 2004, WAW.

[4]  Mariano Ceccato,et al.  Refactoring the aspectizable interfaces: an empirical assessment , 2005, IEEE Transactions on Software Engineering.

[5]  Ron Cytron,et al.  Footprint and feature management using aspect-oriented programming techniques , 2002, LCTES/SCOPES '02.

[6]  Hans-Arno Jacobsen,et al.  Refactoring Middleware with Aspects , 2003, IEEE Trans. Parallel Distributed Syst..

[7]  Arie van Deursen,et al.  Identifying Crosscutting Concerns Using Fan-In Analysis , 2006, TSEM.

[8]  Thomas Zimmermann,et al.  Mining Aspects from Version History , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[9]  M. Ceccato,et al.  Applying and combining three different aspect Mining Techniques , 2006, Software Quality Journal.

[10]  Rajeev Motwani,et al.  The PageRank Citation Ranking : Bringing Order to the Web , 1999, WWW 1999.

[11]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[12]  Ahmed E. Hassan,et al.  Identifying crosscutting concerns using historical code changes , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[13]  Taher H. Haveliwala Topic-Sensitive PageRank: A Context-Sensitive Ranking Algorithm for Web Search , 2003, IEEE Trans. Knowl. Data Eng..

[14]  Shinji Kusumoto,et al.  Component rank: relative significance rank for software component search , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[16]  Sushil Krishna Bajracharya,et al.  A theory of aspects as latent topics , 2008, OOPSLA.

[17]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[18]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[19]  Lori L. Pollock,et al.  Timna: a framework for automatically combining aspect mining analyses , 2005, ASE '05.

[20]  Danfeng Zhang,et al.  Automated Aspect Recommendation through Clustering-Based Fan-in Analysis , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[21]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[22]  Christopher D. Manning,et al.  Introduction to Information Retrieval , 2010, J. Assoc. Inf. Sci. Technol..

[23]  Silvia Breu,et al.  Extending dynamic aspect mining with static information , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[24]  Hans-Arno Jacobsen,et al.  Resolving feature convolution in middleware systems , 2004, OOPSLA.

[25]  Elisa L. A. Baniassad,et al.  Isolating and relating concerns in requirements using latent semantic analysis , 2006, OOPSLA '06.

[26]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[27]  Ruzanna Chitchyan,et al.  EA-Miner: a tool for automating aspect-oriented requirements identification , 2005, ASE.

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

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

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

[31]  Mariano Ceccato,et al.  Aspect mining through the formal concept analysis of execution traces , 2004, 11th Working Conference on Reverse Engineering.

[32]  Emily Hill,et al.  Using natural language program analysis to locate and understand action-oriented concerns , 2007, AOSD.

[33]  Hans-Arno Jacobsen,et al.  Efficiently mining crosscutting concerns through random walks , 2007, AOSD.

[34]  Jens Krinke,et al.  Aspect mining using event traces , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[35]  Yijun Yu,et al.  From goals to aspects: discovering aspects from requirements goal models , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[36]  Hans-Arno Jacobsen,et al.  Towards just-in-time middleware architectures , 2005, AOSD '05.