Computing dynamic slices of concurrent object-oriented programs

We propose a novel dynamic program slicing technique for concurrent object-oriented programs. Our technique uses a Concurrent System Dependence Graph (CSDG) as the intermediate program representation. We mark and unmark the edges in the CSDG appropriately as and when the dependencies arise and cease during run-time. We mark an edge when its associated dependence exists and unmark an edge when the dependence ceases to exist. Our approach eliminates the use of trace files. Another advantage of our approach is that when a request for a slice is made, it is already available. This appreciably reduces the response time of slicing commands.

[1]  Yuming Zhou,et al.  A novel approach to measuring class cohesion based on dependence analysis , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[2]  Stephen A. Edwards,et al.  Generating fast code from concurrent program dependence graphs , 2004, LCTES '04.

[3]  Mangala Gowri Nanda,et al.  Slicing concurrent programs , 2000, ISSTA '00.

[4]  Baowen Xu,et al.  Slicing concurrent java programs , 2001, SIGP.

[5]  Baowen Xu,et al.  Regression testing for Web applications based on slicing , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

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

[7]  Zhao Jianjun Slicing Concurrent Java Programs , 1999 .

[8]  Rajib Mall,et al.  An efficient method for computing dynamic program slices , 2002, Inf. Process. Lett..

[9]  Mark Harman,et al.  Unions of slices are not slices , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[10]  Yeong-Tae Song,et al.  Forward dynamic object-oriented program slicing , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[11]  Bogdan Korel,et al.  Dynamic program slicing methods , 1998, Inf. Softw. Technol..

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

[13]  Jingde Cheng Dependence analysis of parallel and distributed programs and its applications , 1997, Proceedings. Advances in Parallel and Distributed Computing.

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

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

[16]  Baowen Xu,et al.  Slicing object-oriented java programs , 2001, SIGP.

[17]  Baowen Xu,et al.  An overview of methods for dependence analysis of concurrent programs , 2002, SIGP.

[18]  Carl Kesselman,et al.  The Compositional C++ Language Definition , 1993 .

[19]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[20]  Jens Krinke,et al.  Static slicing of threaded programs , 1998, PASTE '98.

[21]  Doug Brown,et al.  Lex and Yacc , 1990 .

[22]  Katsuro Inoue,et al.  Design and implementation of bytecode-based Java slicing system , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[23]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

[24]  Robert J. Hall Automatic extraction of executable program subsets by simultaneous dynamic program slicing , 2004, Automated Software Engineering.

[25]  Tao Wang,et al.  Using compressed bytecode traces for slicing Java programs , 2004, Proceedings. 26th International Conference on Software Engineering.

[26]  Herbert Schildt Java: The Complete Reference , 1996 .

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

[28]  Baowen Xu,et al.  Dynamic slicing object-oriented programs for debugging , 2002, Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation.

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

[30]  Herbert Schildt,et al.  Java 2: The Complete Reference , 1997 .

[31]  Giuliano Antoniol,et al.  Flow Insensitive C++ Pointers and Polymorphism Analysis and its application to slicing , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[32]  Xiangyu Zhang,et al.  Efficient forward computation of dynamic slices using reduced ordered binary decision diagrams , 2004, Proceedings. 26th International Conference on Software Engineering.

[33]  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..

[34]  Rajib Mall,et al.  An efficient dynamic program slicing technique , 2002, Inf. Softw. Technol..

[35]  Jens Krinke,et al.  Context-sensitive slicing of concurrent programs , 2003, ESEC/FSE-11.

[36]  Neil Walkinshaw,et al.  The Java system dependence graph , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[37]  Jianjun Zhao,et al.  Slicing concurrent Java programs , 1999, Proceedings Seventh International Workshop on Program Comprehension.