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

CAM:GitHub Java 仓库快照及度量指标集合

CAM: A Collection of Snapshots of GitHub Java Repositories Together with Metrics

Yegor Bugayenko

AI总结:

CAM 项目提供开源工具,从 GitHub 克隆 Java 仓库并计算多种度量,定期生成含 532K 类、每类 48 个指标的数据集,供研究人员使用。

摘要:

尽管众多研究人员需要包含源代码及基于其计算的基本度量的稳定数据集,但无论是 GitHub 还是其他代码托管平台均未提供此类资源。因此,每位研究人员必须自行下载数据、计算所需度量,然后将数据集发布在某处以确保其可长期访问。我们的 CAM(代表“类与度量”)项目解决了这一需求。它是一个开源软件,能够从 GitHub 克隆 Java 仓库,过滤掉不必要的文件,解析 Java 类,并计算诸如圈复杂度、Halstead 工作量与体积、C&K 度量、可维护性度量、LCOM5 和 HND 以及一些基于 Git 的度量等指标。我们每年至少执行一次整个脚本,该过程在性能非常强大的服务器上至少需要十天,以生成新的数据集。随后,我们将其发布在 Amazon S3 上,从而确保其作为研究人员的参考资源可用。我们于 2024 年 3 月 2 日发布的最新归档文件大小为 2.2GB,包含 532K 个 Java 类,每个类有 48 个度量指标。

英文摘要:

Even though numerous researchers require stable datasets along with source code and basic metrics calculated on them, neither GitHub nor any other code hosting platform provides such a resource. Consequently, each researcher must download their own data, compute the necessary metrics, and then publish the dataset somewhere to ensure it remains accessible indefinitely. Our CAM (stands for ``Classes and Metrics'') project addresses this need. It is an open-source software capable of cloning Java repositories from GitHub, filtering out unnecessary files, parsing Java classes, and computing metrics such as Cyclomatic Complexity, Halstead Effort and Volume, C\&K metrics, Maintainability Metrics, LCOM5 and HND, as well as some Git-based Metrics. At least once a year, we execute the entire script, a process which requires a minimum of ten days on a very powerful server, to generate a new dataset. Subsequently, we publish it on Amazon S3, thereby ensuring its availability as a reference for researchers. The latest archive of 2.2Gb that we published on the 2nd of March, 2024 includes 532K Java classes with 48 metrics for each class.

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

↑