返回
Predicting software reuse using machine learning techniques-A case study on open-source Java software systems
DOI:10.1371/journal.pone.0314512.png)
摘要
En 中文
软件复用是提高软件生产效率、降低成本的基本实践。软件复用实践包括复用制品、库、组件、包和API。识别适合复用的软件需要确定潜在候选对象。然而,目前尚无客观方法来衡量软件复用。这使得识别高度可复用软件变得具有挑战性。软件复用研究主要解决两大难题:1)有效高效地识别可复用候选对象,2)选择能提高可维护性和可扩展性的高质量软件组件。本文提出利用机器学习(ML)算法自动化软件复用预测,使未来研究和从业者能更好地识别高度可复用软件。我们的方法使用跨项目代码克隆检测来建立软件复用的基准事实,将流行GitHub项目中的代码克隆识别为潜在复用候选对象的指标。从Maven制品中提取软件度量,用于训练分类和回归模型以预测和估算软件复用。ML分类模型的平均F1得分为77.19%。表现最佳的模型Ridge Regression的F1得分为79.17%。此外,本研究旨在通过识别显著影响软件复用的关键度量来协助开发者。研究发现,文件级PUA(Public Undocumented API)度量是影响软件复用的最重要因素。我们还提出了前五大重要度量的合适取值范围,供开发者遵循以创建高度可复用软件。此外,我们开发了一个工具,利用训练好的模型预测现有GitHub项目的复用潜力,并按领域对Maven制品进行排名。
期刊
IF:
2.6
论文数:
2.6W
被引数:
81.6W
机构
引用论文
A scaling normalization method for differential expression analysis of RNA-seq dataRna-seq数据差异表达分析的尺度归一化方法
GENOME BIOLOGY
IF9.4

