RefExpo:通过高级依赖图提取揭示软件项目结构
软件工程
2024-12-06 v2
摘要
软件项目的依赖图(DG)为识别其关键组件提供了有价值的洞察,并已在众多研究中被利用。然而,目前缺乏可复用的 DG 提取工具。现有工具要么过时且难以配置,要么无法提供准确的分析。本研究介绍了 RefExpo,这是一种可复用的 DG 提取工具,支持 Java、Python 和 JavaScript 等多种语言。RefExpo 是基于维护良好且声誉卓著的 IDE IntelliJ 的插件。我们还编制了数据集的初始版本,包含 20 个 Java 和 Python 项目。RefExpo 的有效性在两个层面上进行了评估:特定语言特征和与其他工具的比较,分别称为微观和宏观层面。我们的结果表明,RefExpo 在 Python 和 Java 的微测试套件 Judge 和 PyCG 上分别实现了 92% 和 100% 的召回率。在宏观实验中,RefExpo 在发现独特和共享结果方面分别比现有工具高出 31% 和 7%。RefExpo 的可安装版本可在 IntelliJ 市场上获取,描述其功能的简短视频可在 YouTube 上观看。
关键词
引用
@article{arxiv.2407.02620,
title = {RefExpo: Unveiling Software Project Structures through Advanced Dependency Graph Extraction},
author = {Vahid Haratian and Pouria Derakhshanfar and Vladimir Kovalenko and Eray Tüzün},
journal= {arXiv preprint arXiv:2407.02620},
year = {2024}
}