RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Haratian, Vahid, Derakhshanfar, Pouria, Kovalenko, Vladimir, Tüzün, Eray
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866916508224978944
author Haratian, Vahid
Derakhshanfar, Pouria
Kovalenko, Vladimir
Tüzün, Eray
author_facet Haratian, Vahid
Derakhshanfar, Pouria
Kovalenko, Vladimir
Tüzün, Eray
contents 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 macro-level experiments, RefExpo outperformed existing tools by 31\% and 7\% in finding unique and shared results. The installable version of RefExpo is available on the IntelliJ marketplace, and a short video describing its functionality is available on YouTube.
format Preprint
id arxiv_https___arxiv_org_abs_2407_02620
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction
Haratian, Vahid
Derakhshanfar, Pouria
Kovalenko, Vladimir
Tüzün, Eray
Software Engineering
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 macro-level experiments, RefExpo outperformed existing tools by 31\% and 7\% in finding unique and shared results. The installable version of RefExpo is available on the IntelliJ marketplace, and a short video describing its functionality is available on YouTube.
title RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction
topic Software Engineering
url https://arxiv.org/abs/2407.02620