华为云软件冗余依赖智能消除技术Slimming取得重大突破,相应文章已被软工顶会ICSE 2024录用

由于构建工具对软件库的自动化配置管理,使得现代软件项目在版本演化的过程中,引入大量的第三方软件库,依赖树结构日益臃肿。然而,实际上很多引入的软件库并未被真正使用。臃肿的依赖在资源受限的设备上将严重影响代码的性能、增加安全攻击面、降低软件构建效率,并对依赖管理增加额外负担。现有技术在去除冗余依赖方面存在如下问题:

(a) 冗余依赖的误报

由于静态分析技术的局限性,不能良好地处理Java反射,导致冗余依赖检测的误报。

(b)去除冗余依赖可能会带来新的依赖管理问题

例如,被冗余依赖传递性引入的软件库可能会被客户端代码所间接调用。如果从配置文件中去除冗余依赖,则需要要把被其引用的传递依赖重新声明为客户端软件的直接依赖,以确保程序正确运行。这样修复后,开发人员将需要花费更多的代价来维护新增依赖的版本。为此,工业界亟需一种安全可靠的技术能够帮助开发者从依赖配置中去除冗余的第三方软件库。

图1 Slimming方法概览

华为云PaaS技术创新LAB与东北大学王莹副教授研究团队合作研发了安全去除软件冗余依赖的工具Slimming。该项技术:

(1) 设计了精确的Java反射分析技术,结合配置文件解析与程序分析,可以有效地处理流行框架(包括Spring Boot在内的6种流行框架)所涉及的动态行为、字符操作等难题。从而有效地识别出冗余依赖。

(2) 设计了"权衡收益和代价"的依赖分析方法,结合依赖树的结构和依赖软件库的特点,安全地去掉冗余依赖,从而为软件"减肥"。减少诸多不必要的许可证冲突、安全漏洞、过时依赖和依赖冲突等问题的维护和管理。能够为华为公司的软件生产提高效率、节约开发成本。与现有的程序分析技术相比,Slimming在冗余依赖的检测和修复能力方面均有明显地提升。

目前相关研究成果,已被软件工程领域顶会ICSE 2024(CCF A类)正式录用。文章详细内容即将公开,敬请关注。

图2 冗余依赖的可视化检测结果

该研究是华为云PaaS技术创新LAB在软件供应链领域的又一项重要的产学研合作实践,一方面助力高校创新型人才培养,为企业培养尖端人才;另一方面立足自主可控的软件供应链可信保障技术研究,为保障软件质量迈出了重要一步。

相关推荐
hangyuekejiGEO4 分钟前
临沂GEO技术服务方案对比分析
大数据·人工智能·python
happyprince6 分钟前
08-PEFT源码阅读-使用指南与实战案例
人工智能·peft
IT_陈寒16 分钟前
Vue的响应式更新把我坑惨了,原来是这个原因
前端·人工智能·后端
weixin_5498083617 分钟前
AI招聘的下半场:当“匹配”从技巧变成组织能力
人工智能
武子康17 分钟前
调查研究-217 Fortress:当浏览器 Agent 开始被网站识别,开源 Chromium 反拦截引擎来了
人工智能·爬虫·agent
大龄牛码21 分钟前
AI大模型在金融领域的垂直应用实践:从信息检索到自动化报告
人工智能·金融·自动化
新知图书24 分钟前
多模态智能体开发的核心挑战与解决方案
人工智能·agent·多模态·ai agent·智能体·langgraph
ACP广源盛1392462567325 分钟前
GSV2231@ACP# 增强型 8K MST 多屏扩展芯片
大数据·人工智能·分布式·嵌入式硬件
`流年づ35 分钟前
人工智能学习笔记-Transformer
人工智能·深度学习·transformer
Wanderer X42 分钟前
【ML】rope
人工智能