USING PROGRAM SLICING IN SOFTWARE MAINTENANCE

被引:316
作者
GALLAGHER, KB
LYLE, JR
机构
[1] UNIV MARYLAND,CATONSVILLE,MD 21228
[2] NATL INST STAND & TECHNOL COMP SYST LAB,GAITHERSBURG,MD
关键词
SOFTWARE MAINTENANCE; PROGRAM SLICING; DECOMPOSITION SLICING; SOFTWARE PROCESS MODELS; SOFTWARE TESTING; SOFTWARE TOOLS; IMPACT ANALYSIS;
D O I
10.1109/32.83912
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Program slicing, introduced by Weiser, is known to help programmers in understanding foreign code and in debugging. We apply program slicing to the maintenance problem by extending the notion of a program slice (that originally required both a variable and line number) to a decomposition slice, one that captures all computation on a given variable; i.e., is independent of line numbers. Using the lattice of single variable decomposition slices ordered by set inclusion, we demonstrate how to form a slice-based decomposition for programs. We are then able to delineate the effects of a proposed change by isolating those effects in a single component of the decomposition. This gives maintainers a straightforward technique for determining those statements and variables which may be modified in a component and those which may not. Using the decomposition, we provide a set of principles to prohibit changes which will interfere with unmodified components. These semantically consistent changes can then be merged back into the original program in linear time. Moreover, the maintainer can test the changes in the component with the assurance that there are no linkages into other components. Thus decomposition slicing induces a new software maintenance process model which eliminates the need for regression testing.
引用
收藏
页码:751 / 761
页数:11
相关论文
共 37 条