PHANTOM:利用时间序列聚类从GitHub中筛选工程化软件项目
软件工程
2020-07-01 v2
摘要
背景:在软件仓库挖掘领域,有许多方法用于过滤数据集以避免分析低质量项目。遗憾的是,现有的过滤方法未能跟上现有数据源(如GitHub)的增长,研究者常依赖粗略的技术来整理数据集。目标:本研究的目标是开发一种能够以资源高效方式过滤大量软件项目的方法。方法:本研究遵循设计科学研究(DSR)方法论。所提方法PHANTOM从Git日志中提取五项度量。每项度量被转换为时间序列,表示为特征向量,使用k-means算法进行聚类。结果:利用先前研究的 ground truth,PHANTOM被证明能够在训练数据集上重新发现该 ground truth,并能在验证数据集上以高达0.87的精确率和0.94的召回率识别“工程化”项目。PHANTOM在21.5天内使用一台个人计算机下载并处理了1,786,601个GitHub仓库的元数据,比使用200节点计算机集群的先前研究快33%以上。通过整理两家公司拥有的100个仓库,研究了该方法在开源社区之外应用的可能性。结论:使用无监督方法识别工程化项目是可行的。PHANTOM被证明与现有监督方法相比具有竞争力,同时将硬件需求降低了两个数量级。
引用
@article{arxiv.1904.11164,
title = {PHANTOM: Curating GitHub for engineered software projects using time-series clustering},
author = {Peter Pickerill and Heiko Joshua Jungen and Miroslaw Ochodek and Miroslaw Staron},
journal= {arXiv preprint arXiv:1904.11164},
year = {2020}
}
备注
Authors' Pre-Print submitted for consideration to Empirical Software Engineering Journal on 08-03-2019