The Role of Program Slicing in Ripple Effect Analysis

Ripple Effect Analysis (REA) is an iterative process used to ensure consistency and integrity after changes are made to software. Many techniques, including program slicing, have been proposed to be used in this process with varying degrees of success. This paper shows how program slicing can be used in the REA process. Specifically this paper demonstrates the need of both forward and backward slicing in REA under different kinds of program changes. It also discusses the limitations of traditional program slicing techniques and shows how they can be overcome by employing a generalized program slicing technique. This paper also defines operations on program slices and show their usage in REA. A prototype supporting REA on COBOL programs has been implemented and data obtained by experimenting the tool on industrial COBOL code are presented. The data show the size of typical program slices and the importance of focusing on direct ripples in the REA process.

[1]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[2]  Wei-Tek Tsai,et al.  Automatic variable classification for COBOL programs , 1994, Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).

[3]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

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

[5]  Stephen S. Yau,et al.  Ripple effect analysis of software maintenance , 1978, COMPSAC.

[6]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[7]  Ellis Horowitz,et al.  SODOS: A software documentation support environment — Its definition , 1986, IEEE Transactions on Software Engineering.

[8]  Hiroshi Suganuma,et al.  Software maintenance - an industrial experience , 1995, J. Softw. Maintenance Res. Pract..

[9]  Shawn A. Bohner,et al.  Impact analysis-Towards a framework for comparison , 1993, 1993 Conference on Software Maintenance.

[10]  Penny Grubb,et al.  Software maintenance , 1996 .

[11]  Wei-Tek Tsai,et al.  Generalized Program Slicing for Software Maintenance , 1996, International Conference on Software Engineering and Knowledge Engineering.

[12]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[13]  Wojtek Kozaczynski,et al.  Automated support for legacy code understanding , 1994, CACM.

[14]  Wei-Tek Tsai,et al.  Business rule extraction from legacy code , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.