[发明专利]缺陷驱动的第三方库版本升级推荐方法有效
申请号: | 202010077123.0 | 申请日: | 2020-01-23 |
公开(公告)号: | CN111240719B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 陈碧欢;彭鑫;赵文耘 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/71;G06F8/41 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缺陷 驱动 第三 版本 升级 推荐 方法 | ||
1. 一种缺陷驱动的第三方库版本升级推荐方法,其特征在于,具体步骤如下:
(1)第三方库依赖分析
软件项目通常通过自动化构建工具来声明和管理软件项目所依赖的第三方库版本;通过解析软件项目的依赖配置文件来抽取软件项目所依赖的第三方库版本;
(2)第三方库风险分析
软件项目的代码调用第三方库API,有些第三方库API包含各类已知缺陷,影响到软件项目的功能和质量;通过API调用分析识别软件项目所调用的第三方库API并分析这些第三方库API是否含有各类缺陷,从而度量第三方库风险;具体为通过静态分析工具Soot获得第三方库API列表;通过Java Parser遍历软件项目源代码的抽象语法树并获得软件项目所调用的第三方库API;通过静态分析工具Soot获得所调用第三方库API的调用图并判断调用图上是否包含受缺陷影响的第三方库API;分析总结影响软件项目的第三方库缺陷个数、软件项目所调用的带缺陷第三方库API的个数和调用次数;
(3)第三方库升级代价分析
第三方库不同版本之间往往包含不兼容的第三方库API,影响到第三方库的升级代价;通过API调用和差异分析推荐不含有缺陷的第三方库升级版本,并分析升级版本中被删除和修改的第三方库API,从而度量第三方库升级代价;具体为通过静态分析工具Soot获得第三方库新版本中软件项目所调用的第三方库API的调用图,并分析所调用第三方库API是否不受缺陷影响,从而确定第三方库升级版本;通过基于哈希值的差异对比分析确定软件项目所调用的第三方库API在第三方库升级版本中被删除和修改的API个数和调用次数。
2.根据权利要求1所述的缺陷驱动的第三方库版本升级推荐方法,其特征在于,步骤(2)中所述的第三方库风险分析,具体包括以下子步骤:
1)从第三方库版本知识库加载软件项目所依赖的第三方库版本二进制包,通过静态分析二进制包获得第三方库API列表;
2)通过软件项目源代码和第三方库版本二进制包建立软件项目源代码的抽象语法树并做类型绑定,遍历抽象语法树中的方法调用并确定所调用方法是否是第三方库API,即判断所调用方法是否在第三方库API列表中;
3)通过静态分析二进制包建立所调用第三方库API的调用图,第三方库缺陷知识库保存了第三方库版本中的缺陷、以及受缺陷影响的第三方库API,通过第三方库缺陷知识库分析所调用第三方库API是否受缺陷影响,即判断调用图上是否包含受缺陷影响的第三方库API;
4)总结以上分析结果获得第三方库的风险度量,包括影响软件项目的第三方库缺陷个数、软件项目所调用的带缺陷第三方库API的个数和调用次数。
3.根据权利要求1所述的缺陷驱动的第三方库版本升级推荐方法,其特征在于,步骤(3)中所述的第三方库升级代价分析,具体包括以下子步骤:
1)在第三方库版本知识库中找到所有第三方库新版本的二进制包,并通过静态分析二进制包建立所调用第三方库API的调用图,同时通过第三方库缺陷知识库分析所调用第三方库API是否不受缺陷影响,如果不受影响,则作为第三方库升级版本;
2)通过差异对比分析确定软件项目所调用的第三方库API在第三方库升级版本中被删除和修改的API个数和调用次数,作为升级代价的度量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010077123.0/1.html,转载请声明来源钻瓜专利网。