RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction
Vahid Haratian, Pouria Derakhshanfar, Vladimir Kovalenko, Eray, T\"uz\"un

TL;DR
RefExpo is a new, reusable dependency graph extraction tool supporting multiple programming languages, providing accurate analysis and outperforming existing tools, thus aiding software project understanding.
Contribution
Introduces RefExpo, a versatile plugin-based dependency graph extraction tool for Java, Python, and JavaScript, with validated high accuracy and improved performance over existing tools.
Findings
RefExpo achieves 92% and 100% recall on micro test suites for Python and Java.
RefExpo outperforms existing tools by 31% and 7% in macro-level experiments.
RefExpo is available on the IntelliJ marketplace with supporting resources.
Abstract
The dependency graph (DG) of a software project offers valuable insights for identifying its key components and has been leveraged in numerous studies. However, there is a lack of reusable tools for DG extraction. Existing tools are either outdated and difficult to configure or fail to provide accurate analysis. This study introduces RefExpo, a reusable DG extraction tool that supports multiple languages such as Java, Python, and JavaScript. RefExpo is a plugin based on IntelliJ, a well-maintained and reputed IDE. We also compile an initial version of our dataset, consisting of 20 Java and Python projects. RefExpo's validity is evaluated at two levels: specific language features and comparisons against other tools, referred to as micro and macro levels. Our results show RefExpo achieves 92\% and 100\% recall on micro test suites Judge and PyCG for Python and Java, respectively. In…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Engineering Techniques and Practices · Software System Performance and Reliability
