paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Balancing the Quality and Cost of Updating Dependencies

平衡依赖更新的质量与成本
ASE Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering2024匹配度 1/10 · 论文研究依赖更新的多目标优化,属于软件维护与开发者工具方向,但未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析等用户核心研究问题。引用 10 inbox
Damien Jaime, Pascal Poizat, Joyce El Haddad, Thomas Degueule
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:将依赖更新建模为多目标线性规划,全局优化质量与成本并生成更新策略。

保持依赖更新是重要的软件维护任务,开发者需选择更新哪些依赖、目标版本,并减少破坏性变更和不兼容。本文把依赖更新问题形式化为多目标优化问题,从全局视角考虑所有直接与间接依赖,并允许开发者指定希望最大化的质量因素和最小化的成本。该问题被编码为线性规划,其解给出与开发者优先级一致且尽量减少不兼容的最优更新策略。作者使用107个测试良好的开源Java项目,在多种真实更新场景配置下评估,并考虑依赖新鲜度、时间窗口流行度和CVE漏洞评分三个质量指标。结果表明,该方法生成的更新在编译和测试通过方面与依赖机器人中的朴素方法相当,且在新鲜度上最多可优两个数量级;通过综合考虑新鲜度、流行度和漏洞的质量债概念,该方法能降低质量债,同时保持合理的内存与时间消耗。

问题
依赖更新需要选择待更新依赖及目标版本,并在新鲜度、流行度、安全性和兼容性等质量因素与破坏性变更等成本之间进行权衡。
方法
将依赖更新建模为多目标优化问题,编码为线性规划,全局考虑直接与间接依赖并支持开发者指定质量与成本偏好,从而求解最优更新策略。
评估
在107个测试良好的开源Java项目上,使用多种真实更新配置,围绕依赖新鲜度、时间窗口流行度和CVE漏洞评分,比较编译/测试通过情况、质量债及内存和时间开销。
原文摘要(Abstract)

Keeping dependencies up to date is a crucial software maintenance task that requires significant effort. Developers must choose which dependencies to update, select appropriate target versions, and minimize the impact of updates in terms of breaking changes and incompatibilities. Several factors influence the choice of a new dependency version, including its freshness, popularity, absence of vulnerabilities, and compatibility.In this paper, we formulate the dependency update problem as a multi-objective optimization problem. This approach allows for updating dependencies with a global perspective, considering all direct and indirect dependencies. It also enables developers to specify their preferences regarding the quality factors to maximize and the costs to minimize when updating. The update problem is encoded as a linear program whose solution provides an optimal update strategy that aligns with developer priorities and minimizes incompatibilities.We evaluate our approach using a dataset of 107 well-tested open-source Java projects using various configurations that reflect real-world update scenarios and consider three quality metrics: dependency freshness, a time-window popularity measure, and a vulnerability score related to CVEs. Our findings indicate that our approach generates updates that compile and pass tests as well as the naive approaches typically implemented in dependency bots. Furthermore, our approach can be up to two orders of magnitude better in terms of freshness. By considering a more comprehensive concept of quality debt, which accounts for freshness, popularity, and vulnerabilities, our approach is able to reduce quality debt while maintaining reasonable memory and time consumption.CCS CONCEPTS • Software and its engineering → Software libraries and repositories; Software maintenance tools; Software evolution.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{JaimePHD24,
  title = {Balancing the Quality and Cost of Updating Dependencies},
  author = {Damien Jaime and Pascal Poizat and Joyce El Haddad and Thomas Degueule},
  booktitle = {ASE},
  year = {2024},
  doi = {10.1145/3691620.3695595}
}