Bootstrap

论文学习_CENTRIS: A Precise and Scalable Approach for Identifying Modified Open-Source Software Reuse

1. 文章概述

这篇论文提出了一种新的软件组成分析(SCA)方法 CENTRIS,旨在精确且可扩展地识别修改过的开源软件(OSS)的重用。论文作者指出,目前的 OSS 重用识别方法存在几个主要挑战:修改过的 OSS 重用: 开发者通常只重用 OSS 的部分代码或对其进行修改,而不是完整地重用。嵌套的 OSS 组件: 重用的 OSS 可能包含多个子 OSS 组件,甚至这些子组件也可能包含其他 OSS 组件。OSS 项目和代码规模的快速增长: OSS 项目数量和代码量迅速增加,给识别 OSS 重用带来挑战。

为了解决这些问题,CENTRIS 提出了两个关键技术:冗余消除(Redundancy elimination):消除同一 OSS 项目不同版本之间的函数重复,大幅减少了空间复杂度,提高了扩展性。代码分段(Code segmentation):将 OSS 代码分为应用代码(独特的部分)和借用代码(嵌套第三方软件部分),只分析应用代码的重用模式,从而有效地过滤掉了由嵌套引起的误报。

作者在一个包含 10,241 个 GitHub 项目、229,326 个版本和 80 亿行代码的大型 OSS 数据集上评估了 CENTRIS。结果表明,尽管 95% 的组件都是修改过的重用,但 CENTRIS 仍能以 91% 的精确度和 94% 的召回率识别出重用的组件,而且平均每个项目只需要不到一分钟的时间。相比之下,现有的克隆检测方法精确度不足10%,召回率最高也只有 40%。这充分展现了 CENTRIS 在精确性和可扩展性方面的

;