华为云软件冗余依赖智能消除技术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在软件供应链领域的又一项重要的产学研合作实践,一方面助力高校创新型人才培养,为企业培养尖端人才;另一方面立足自主可控的软件供应链可信保障技术研究,为保障软件质量迈出了重要一步。

相关推荐
算家计算4 分钟前
字节开源代码模型——Seed-Coder 本地部署教程,模型自驱动数据筛选,让每行代码都精准落位!
人工智能·开源
伪_装12 分钟前
大语言模型(LLM)面试问题集
人工智能·语言模型·自然语言处理
gs8014018 分钟前
Tavily 技术详解:为大模型提供实时搜索增强的利器
人工智能·rag
music&movie33 分钟前
算法工程师认知水平要求总结
人工智能·算法
量子位1 小时前
苹果炮轰推理模型全是假思考!4 个游戏戳破神话,o3/DeepSeek 高难度全崩溃
人工智能·deepseek
黑鹿0221 小时前
机器学习基础(四) 决策树
人工智能·决策树·机器学习
Fxrain1 小时前
[深度学习]搭建开发平台及Tensor基础
人工智能·深度学习
szxinmai主板定制专家1 小时前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发
laocui11 小时前
Σ∆ 数字滤波
人工智能·算法
Matrix_112 小时前
论文阅读:Matting by Generation
论文阅读·人工智能·计算摄影