A Novel Approach to Program Comprehension Process Using Slicing Techniques

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.