RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction
Fuente:
arXiv
Salvato in:
| Autori principali: | , , , |
|---|---|
| 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 |