Visual Exploration of Dependency Graph in Source Code Via Embedding-Based Similarity.

Liu Huan,Tao Yubo,Huang Wenda,Lin Hai
DOI: https://doi.org/10.1007/s12650-020-00727-x
IF: 1.7
2021-01-01
Journal of Visualization
Abstract:A large software system contains millions of lines of source code, and the development often involves many developers over a long period. How to understand and analyze its complex code dependencies is challenging but meaningful to developers for program comprehension. In this paper, we propose a novel visual analytics system to explore code dependencies between files for visually understanding software architecture and interactively analyzing bad dependencies. The dependencies between files are abstracted as a directed graph (i.e., the dependency graph) at different levels via the file hierarchy to show the modularization design of source code. Node embeddings of the dependency graph are learned to identify the files with specific dependencies and analyze the similarity between bad dependencies. Finally, we evaluate the usability of our system by two case studies in different JavaScript libraries as well as a user study on software architecture understanding and bad dependency analysis.
What problem does this paper attempt to address?