An empirical study of amorphous slicing as a program comprehension support tool

被引:44
作者
Binkley, D [1 ]
Harman, M [1 ]
Raszewski, LR [1 ]
Smith, C [1 ]
机构
[1] Loyola Coll, Baltimore, MD 21210 USA
来源
8TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION (IWPC 2000), PROCEEDINGS | 2000年
关键词
slicing; empirical validation; amorphous slicing; arrays; program comprehension;
D O I
10.1109/WPC.2000.852490
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Amorphous program slicing relaxes the syntactic constraint of traditional slicing and can therefore produce considerably smaller slices. This simplification power can be used to answer questions a software engineer might have about a program by first augmenting the program to make the question explicit and then slicing out an answer One benefit of this technique is that the answer is in the form of a program and thus, in a language that the software engineer understands well. To test the usefulness of amorphous slicing in answering such questions, the question of array access safety is considered. A safety slice, an amorphous slice of an augmented program, is used to guide a software engineer to potential array bounds violations. A series of experiments was conducted to determine whether the safety slice was an effective aid to an engineer Seventy six subjects participated in the controlled experiments. For experiments involving novice programmers, the null hypothesis could not be rejected, and so it was not possible to conclude that amorphous slicing assisted such programmers. However for more experienced groups, the experimental subjects (who were able to consult amorphous slices) significantly outperformed the control group. The study lends empirical support to the assertion that amorphous slicing assists program comprehension.
引用
收藏
页码:161 / 170
页数:10
相关论文
共 13 条
[1]  
Binkley D., 1993, ACM Letters on Programming Languages and Systems, V2, P31, DOI 10.1145/176454.176473
[2]  
BINKLEY D, 1996, ANN COMPUTING
[3]  
BINKLEY D, 1999, P 1999 ACM S APPL CO, P519
[4]  
CHOI J, 1991, ACM T PROGR LANG SYS, V16, P1097
[5]   THE PROGRAM DEPENDENCE GRAPH AND ITS USE IN OPTIMIZATION [J].
FERRANTE, J ;
OTTENSTEIN, KJ ;
WARREN, JD .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1987, 9 (03) :319-349
[6]   Program simplification as a means of approximating undecidable propositions [J].
Harman, M ;
Fox, C ;
Hierons, R ;
Binkley, D ;
Danicic, S .
SEVENTH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 1999, :208-217
[7]   Analysis of dynamic memory access using amorphous slicing [J].
Harman, M ;
Sivagurunathan, Y ;
Danicic, S .
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 1998, :336-345
[8]  
HARMAN M, 1995, J SOFTWARE TESTING V, V5, P143
[9]  
HARMAN M, 1999, CSTR0023
[10]   INTEGRATING NONINTERFERING VERSIONS OF PROGRAMS [J].
HORWITZ, S ;
PRINS, J ;
REPS, T .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1989, 11 (03) :345-387