A Node-Marking Technique for Dynamic Slicing of Aspect-Oriented Programs

We propose an efficient dynamic slicing technique for aspect-oriented programs. We use a dependence- based intermediate program representation called extended aspect-oriented system dependence graph (EASDG) to represent aspect-oriented software. The EASDG of an aspect-oriented program consists of a system dependence graph (SDG) for non-aspect code, a group of dependence graphs for aspect code and some additional dependence edges used to connect the system dependence graph for non-aspect code to the dependence graphs for aspect code. Our dynamic slicing algorithm is based on marking and unmarking of the executed nodes in EASDG appropriately during run-time. In our approach, we do not use any trace file to store the execution history. Also, our approach does not create any additional nodes during run-time. We use the term node and vertex interchangeably in this paper.

[1]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[2]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[3]  Rajib Mall,et al.  An edge marking technique for dynamic slicing of object-oriented programs , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[4]  Anil K. Jain,et al.  Data clustering: a review , 1999, CSUR.

[5]  Ujjwal Maulik,et al.  Genetic algorithm-based clustering technique , 2000, Pattern Recognit..

[6]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[7]  Jian-jun Zhao Dynamic slicing of object-oriented programs , 2009, Wuhan University Journal of Natural Sciences.

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

[9]  Rajib Mall,et al.  Computation of intraprocedural dynamic program slices , 2003, Inf. Softw. Technol..

[10]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[11]  Lothar Thiele,et al.  Multiobjective evolutionary algorithms: a comparative case study and the strength Pareto approach , 1999, IEEE Trans. Evol. Comput..

[12]  P. Song,et al.  Clustering Categorical Data Based on Distance Vectors , 2006 .

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

[14]  Ujjwal Maulik,et al.  Performance Evaluation of Some Clustering Algorithms and Validity Indices , 2002, IEEE Trans. Pattern Anal. Mach. Intell..

[15]  Martin Rinard,et al.  System Dependence Graph Construction for Aspect-Oriented Programs , 2003 .

[16]  Ujjwal Maulik,et al.  Multiobjective Genetic Clustering for Pixel Classification in Remote Sensing Imagery , 2007, IEEE Transactions on Geoscience and Remote Sensing.

[17]  Ujjwal Maulik,et al.  Fuzzy partitioning using a real-coded variable-length genetic algorithm for pixel classification , 2003, IEEE Trans. Geosci. Remote. Sens..

[18]  Michael K. Ng,et al.  A fuzzy k-modes algorithm for clustering categorical data , 1999, IEEE Trans. Fuzzy Syst..

[19]  Jingde Cheng,et al.  Static slicing of concurrent object-oriented programs , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.

[20]  Donglin Liang,et al.  Slicing objects using system dependence graphs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[21]  Jianjun Zhao,et al.  Slicing aspect-oriented software , 2002, Proceedings 10th International Workshop on Program Comprehension.

[22]  Joshua D. Knowles,et al.  Multiobjective clustering around medoids , 2005, 2005 IEEE Congress on Evolutionary Computation.