Variable Data-Flow Graph for Lightweight Program Slicing and Visualization

Yu KASHIMA  Takashi ISHIO  Shogo ETSUDA  Katsuro INOUE  

Publication
IEICE TRANSACTIONS on Information and Systems   Vol.E98-D   No.6   pp.1194-1205
Publication Date: 2015/06/01
Publicized: 2015/03/17
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2014EDP7395
Type of Manuscript: PAPER
Category: Software Engineering
Keyword: 
static analysis,  program slicing,  variable data-flow graph,  visualization,  

Full Text: PDF(794.5KB)>>
Buy this Article




Summary: 
To understand the behavior of a program, developers often need to read source code fragments in various modules. System-dependence-graph-based (SDG) program slicing is a good candidate for supporting the investigation of data-flow paths among modules, as SDG is capable of showing the data-dependence of focused program elements. However, this technique has two problems. First, constructing SDG requires heavyweight analysis, so SDG is not suitable for daily uses. Second, the results of SDG-based program slicing are difficult to visualize, as they contain many vertices. In this research, we proposed variable data-flow graphs (VDFG) for use in program slicing techniques. In contrast to SDG, VDFG is created by lightweight analysis because several approximations are used. Furthermore, we propose using the fractal value to visualize VDFG-based program slice in order to reduce the graph complexity for visualization purposes. We performed three experiments that demonstrate the accuracy of VDFG program slicing with fractal value, the size of a visualized program slice, and effectiveness of our tool for source code reading.