论文

焦点:发现软件存储库中的改进机会

Spotlights: Discovering Improvement Opportunities in Software Repositories

摘要

一旦指定了目标和评估标准,编码代理和进化代码搜索系统就可以改进实现。将这些方法应用于现有的软件存储库提出了一个较早的问题:为了实现高级工程目标,哪些实现选择值得研究?我们引入\emph{优化机会发现},这是识别候选源区域的存储库级任务,解释它们与目标的关系,并提出可能的更改。该任务将存储库、工程目标和可选的运行时证据(例如离线遥测观测或配置文件)作为输入。它不需要用户指定缺陷、瓶颈或代码位置。我们提出了 \emph{Spotlights},这是一个通过逻辑存储库映射、连续代理审查以及将候选人与相关技术联系起来的可选研究来执行此任务的系统。我们在模型服务、文档检索、区块链排序和文档处理方面评估 Spotlights。在三个案例中,它恢复了专家选定的九个目标中的七个。在可靠性研究中,前十名候选者中有 70% 满足规定的正确性和严重性阈值。在五次重复检索运行中,73.6% 的候选出现在所有五次运行中都有匹配的源区域。 Spotlights 还重新发现保留检索优化的目标,并将其连接到相关的平铺技术。在一项实施研究中,发现的一项更改将端到端页面处理运行时间减少了 10.6%,同时保持了测量的输出质量。这些结果将优化机会发现确立为广泛的工程目标与后续实施和验证之间的独特且可凭经验评估的步骤。