arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2407.02620cs.SE
收藏

RefExpo:通过先进的依赖图提取揭示软件项目结构

RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction

Vahid Haratian, Pouria Derakhshanfar, Vladimir Kovalenko, Eray Tüzün

AI总结:

本文提出基于 IntelliJ 的多语言依赖图提取工具 RefExpo,并通过微观与宏观实验证明其在 Java、Python 项目上具有更高召回率和分析准确性。

摘要:

软件项目的依赖图(DG)为识别其关键组件提供了宝贵见解,并已在众多研究中得到利用。然而,目前缺乏可复用的 DG 提取工具。现有工具要么已经过时且难以配置,要么无法提供准确的分析。本研究介绍了 RefExpo,这是一款可复用的 DG 提取工具,支持 Java、Python 和 JavaScript 等多种语言。RefExpo 是一个基于 IntelliJ 的插件,而 IntelliJ 是一款维护良好且声誉良好的 IDE。我们还编制了数据集的初始版本,包含 20 个 Java 和 Python 项目。RefExpo 的有效性在两个层面上进行评估:特定语言特性,以及与其他工具的比较,分别称为微观和宏观层面。结果表明,RefExpo 在针对 Python 和 Java 的微观测试套件 Judge 和 PyCG 上分别取得了 92% 和 100% 的召回率。在宏观层面实验中,RefExpo 在发现唯一结果和共享结果方面分别比现有工具高出 31% 和 7%。RefExpo 的可安装版本已在 IntelliJ marketplace 上提供,介绍其功能的短视频可在 YouTube 上观看。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑