[发明专利]缺陷驱动的第三方库版本升级推荐方法有效
申请号: | 202010077123.0 | 申请日: | 2020-01-23 |
公开(公告)号: | CN111240719B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 陈碧欢;彭鑫;赵文耘 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/71;G06F8/41 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缺陷 驱动 第三 版本 升级 推荐 方法 | ||
本发明属于软件工程技术领域,具体为缺陷驱动的第三方库版本升级推荐方法。本发明方法包括:分析软件项目的第三方库依赖,获得软件项目所依赖的所有第三方库版本;通过基于程序调用图的第三方库风险分析,检测并量化旧第三方库版本中的缺陷对软件项目带来的风险,包括影响软件项目的第三方库缺陷个数、软件项目所调用的带缺陷第三方库API的个数和调用次数;通过基于API差异分析的第三方库升级代价分析,推荐并量化升级到新第三方库版本的更新代价,包括软件项目调用的、在新第三方库版本中被删除和修改的第三方库API个数和调用次数。本发明方法驱使并辅助开发人员及时升级第三方库,减少开发人员的升级工作量,并提高软件项目的质量。
技术领域
本发明属于软件工程技术领域,具体涉及一种缺陷驱动的第三方库版本升级推荐方法。
背景技术
在软件开发过程中,第三方库扮演着重要角色。一方面,第三方库可以被开发人员复用来构建软件系统,使得开发人员可以更多地关注于软件系统的业务逻辑。因此,第三方库可以提高开发效率、缩短开发时间和交付时间。另一方面,第三方库往往经过了第三方库开发/测试人员以及其他使用第三方库的开发/测试人员的广泛使用和测试,使得第三方库的质量有一定保证。因此,第三方库可以提高软件系统的整体质量。由此可见,随着开源软件社区以及互联网软件资源的飞速发展,第三方库已经成为了软件项目中不可或缺的重要组成部分。
为了增加新功能或者修复缺陷(功能、性能、安全等缺陷),第三方库在不断地演化,而且不定期地发布新版本。这就给使用第三方库的软件系统的维护带来了严峻挑战。一方面,开发人员通常较少关注所使用的第三方库是否是最新版本、或者是否发布了新版本,导致软件系统使用了可能包含各类已知缺陷的第三方库旧版本,严重影响了软件系统的功能和质量。另一方面,即使开发人员知道了第三方库有新版本,他们往往难以确定新版本中修复的各类已知缺陷是否会真正影响到他们的软件系统,导致开发人员花费大量的时间去决定是否需要更新版本,从而使得第三方库不能及时升级。
发明内容
本发明的目的在于提供一种缺陷驱动的第三方库版本升级推荐方法,以帮助开发人员确定带缺陷的第三方库版本是否影响到软件项目并量化对软件项目带来的风险,同时推荐并量化升级到新第三方库版本的更新代价,从而帮助开发人员及时升级第三方库。
本发明提供的缺陷驱动的第三方库版本升级推荐方法,包括:分析软件项目的第三方库依赖,获得软件项目所依赖的所有第三方库版本;通过基于程序调用图的第三方库风险分析,检测并量化旧第三方库版本中的缺陷对软件项目带来的风险;通过基于API差异分析的第三方库升级代价分析,推荐并量化升级到新第三方库版本的更新代价。本发明所检测到的第三方库风险包括影响软件项目的第三方库缺陷个数、软件项目所调用的带缺陷第三方库API的个数和调用次数;本发明所推荐的第三方库升级代价包括软件项目调用的、在新第三方库版本中被删除和修改的第三方库API个数和调用次数。具体步骤如下。
(1)第三方库依赖分析
软件项目通常通过自动化构建工具(例如Maven和Gradle)来声明和管理软件项目所依赖的第三方库版本。这一步通过解析软件项目的依赖配置文件(例如pom.xml和build.gradle)来抽取软件项目所依赖的第三方库版本。
(2)第三方库风险分析
软件项目的代码调用了第三方库API,而有些第三方库API包含各类已知缺陷,影响到软件项目的功能和质量。这一步通过API调用分析识别软件项目所调用的第三方库API并分析这些第三方库API是否含有各类缺陷。具体包括以下步骤:
1)从第三方库版本知识库(保存了所有开源第三方库版本的二进制包)加载软件项目所依赖的第三方库版本二进制包,通过静态分析二进制包获得第三方库API列表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010077123.0/2.html,转载请声明来源钻瓜专利网。