The target of this research is to determine how program slicing contributes to program comprehension and to enhance its functionality by applying the slicing tree concept to its implementation. Slicing tree is a concept that refers to automatically repeating program slicing while the slicing criterion is changeable until the program decomposes into its atomic parts. Using this technique offers several advantages over traditional program slicing. First, it facilitates the process of understanding. In the original slicing, even after the slicing, the number of lines remains excessive for easy understanding. By using slicing trees, the final nodes of the tree point to a relatively small fragment of the code, which is the starting point to understand the program’s behavior. In other words, we have a bottom-up approach and our comprehension process becomes faster and easier. Furthermore, it is much easier to use our knowledge based on recognizing the patterns in smaller fragments of code. Recognizing the patterns will play a great role in comprehending the code and intuiting the intention behind it. Third, this method answers the programmer’s question about deciding the next best slicing criteria for the next step, since it will be chosen automatically and efficiently. We applied the slicing tree concept to several program codes containing basic programming functions to analyze the efficiency of this technique and its contribution to improve program comprehension.
[1]
Karl J. Ottenstein,et al.
The program dependence graph in a software development environment
,
1984,
SDE 1.
[2]
Frank Tip,et al.
A survey of program slicing techniques
,
1994,
J. Program. Lang..
[3]
Spencer Rugaber,et al.
The relationship of slicing and debugging to program understanding
,
1999,
Proceedings Seventh International Workshop on Program Comprehension.
[4]
M. Hemalatha,et al.
Program slicing techniques and its applications
,
2011,
ArXiv.
[5]
Margaret-Anne D. Storey,et al.
Theories, Methods and Tools in Program Comprehension: Past, Present and Future
,
2005,
IWPC.
[6]
Mark Harman,et al.
The next 700 slicing criteria
,
1996
.
[7]
Anneliese Amschler Andrews,et al.
Program Comprehension During Software Maintenance and Evolution
,
1995,
Computer.
[8]
Thomas Ball,et al.
Slicing Programs with Arbitrary Control-flow
,
1993,
AADEBUG.
[9]
Keith H. Bennett,et al.
Approaches to program comprehension
,
1991,
J. Syst. Softw..
[10]
David W. Binkley,et al.
Interprocedural slicing using dependence graphs
,
1988,
SIGP.
[11]
David W. Binkley,et al.
Program slicing
,
2008,
2008 Frontiers of Software Maintenance.
[12]
Yonggang Zhang,et al.
An ontology-based program comprehension model
,
2007
.