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

相关推荐
亚马逊云开发者1 小时前
Q CLI 助力合合信息实现 Aurora 的升级运营
人工智能
全栈胖叔叔-瓜州2 小时前
关于llamasharp 大模型多轮对话,模型对话无法终止,或者输出角色标识User:,或者System等角色标识问题。
前端·人工智能
坚果派·白晓明2 小时前
AI驱动的命令行工具集x-cmd鸿蒙化适配后通过DevBox安装使用
人工智能·华为·harmonyos
GISer_Jing3 小时前
前端营销技术实战:数据+AI实战指南
前端·javascript·人工智能
Dekesas96953 小时前
【深度学习】基于Faster R-CNN的黄瓜幼苗智能识别与定位系统,农业AI新突破
人工智能·深度学习·r语言
大佐不会说日语~3 小时前
Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践
人工智能·spring boot·python·spring·封装·spring ai
CeshirenTester4 小时前
Playwright元素定位详解:8种定位策略实战指南
人工智能·功能测试·程序人生·单元测试·自动化
世岩清上4 小时前
AI驱动的智能运维:从自动化到自主化的技术演进与架构革新
运维·人工智能·自动化
K2_BPM4 小时前
告别“单点智能”:AI Agent如何重构企业生产力与流程?
人工智能
TMT星球4 小时前
深业云从人工智能产业投资基金设立,聚焦AI和具身智能相关产业
人工智能