第三方API库的分险分析与自动推荐

基本信息
批准号:61802067
项目类别:青年科学基金项目
资助金额:26.00
负责人:陈碧欢
学科分类:
依托单位:复旦大学
批准年份:2018
结题年份:2021
起止时间:2019-01-01 - 2021-12-31
项目状态: 已结题
项目参与者:赵文耘,刘汶谏,黄凯锋,李俊毅,阮航,张海锐
关键词:
修改影响分析软件修改版本更新风险分析程序理解
结项摘要

Third-party libraries have been a key component of software systems. They can improve the development efficiency, reduce the development and delivery time, and improve the overall software quality. However, third-party libraries are continuously evolving by releasing new versions to add new functionalities or fix bugs. Therefore, several challenges arise for the maintenance of software systems: developers cannot timely update the new versions of third-party libraries, cannot precisely understand the semantic differences of the new versions, cannot effectively integrate the new versions, or even do not know the existence of certain third-party libraries. To address these challenges, the proposed project will use the JAVA projects hosted on GitHub as well as the third-party libraries on Maven as the knowledge base to conduct researches on third-party libraries. Firstly, this project will conduct an empirical study to understand the usage and update of third-party libraries in JAVA projects and to assess the risk of third-party libraries on JAVA projects. Secondly, this project will analyze the semantic differences between the versions of third-party libraries and their classification. Thirdly, this project will propose novel approaches to automatically recommend and update third-party libraries, which can effectively mitigate the risk of third-party libraries on JAVA projects. Finally, based on the results of the above three research directions, this project will build a knowledge system and analysis platform for third-party libraries, which can support the online analysis of third-party libraries and JAVA projects.

第三方API库是软件项目的重要组成部分,可以提高开发效率、缩短开发和交付时间、提高软件质量。然而,为了增加新特性或修复缺陷,第三方库在不断演化,不定期地发布新版本。这就给使用第三方库的软件项目的维护带来了严峻的挑战:开发人员难以及时更新第三方库、难以理解第三方库更新内容、难以进行第三方库更新集成和测试、甚至不知道特定第三方库的存在。针对这些问题,本项目以GitHub上海量JAVA开源项目及Maven上第三方库为基础,研究第三方库在JAVA开源项目中使用和更新的实践现状,定量评估第三方库对JAVA开源项目带来的风险;研究第三方库版本更新的语义理解,分析第三方库版本之间的API语义差异及其分类;研究第三方库在JAVA开源项目中的自动化推荐,降低第三方库对开源项目带来的风险及维护代价。在以上技术研究的基础上,本项目将研制面向第三方库的知识库系统和分析平台,支持开源项目和和第三方库的在线分析。

项目摘要

第三方库是软件项目的重要组成部分,可以提高开发效率、缩短开发和交付时间、提 高软件质量。然而,为了增加新特性或修复缺陷,第三方库在不断演化,不定期地发布新版本 。这就给使用第三方库的软件项目的维护带来了严峻的挑战:开发人员难以及时更新第三方库、难以理解第三方库更新内容、难以进行第三方库更新集成和测试、容易同时使用同一第三方库的不同版本。针对这些问题,本项目以GitHub上海量JAVA开源项目及Maven上第三方库为基础,研究第三方库在JAVA开源项目中使用和更新的实践现状,并研究基于API分析的第三方库版本升级推荐方法,识别并量化旧的第三方库版本中的安全漏洞对软件系统的风险,推荐并量化升级到新的第三方库版本的代价;研究基于API分析的第三方库版本统一推荐方法,检测多模块软件项目中存在的第三方库版本不一致和假一致问题, 并基于软件项目中的第三方库API调用分析、以及第三方库版本间的API差异分析,推荐第三方库统一版本并量化统一代价;研究基于多源知识的第三方库版本更新中消失API的替代API定位方法,结合了多种知识源(弃用声明、自身库、以及外部库),不依赖于第三方库的历史开发数据,也不依赖于第三方库在软件项目中的使用数据,准确地定位第三方库版本更新中消失API的替代API。这些研究内容的主要贡献是为第三方库软件供应链的风险治理提供了切实可行的解决方案,有效减少了软件供应链所带来的风险。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

玉米叶向值的全基因组关联分析

玉米叶向值的全基因组关联分析

DOI:
发表时间:
2

论大数据环境对情报学发展的影响

论大数据环境对情报学发展的影响

DOI:
发表时间:2017
3

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

DOI:10.19713/j.cnki.43-1423/u.t20201185
发表时间:2021
4

硬件木马:关键问题研究进展及新动向

硬件木马:关键问题研究进展及新动向

DOI:
发表时间:2018
5

基于SSVEP 直接脑控机器人方向和速度研究

基于SSVEP 直接脑控机器人方向和速度研究

DOI:10.16383/j.aas.2016.c150880
发表时间:2016

陈碧欢的其他基金

相似国自然基金

1

基于概率标记图的API自动推荐算法研究

批准号:61602286
批准年份:2016
负责人:吕晨
学科分类:F0203
资助金额:19.00
项目类别:青年科学基金项目
2

应用分形图形库的分析与建造

批准号:69374035
批准年份:1993
负责人:陶懋颀
学科分类:F0304
资助金额:6.00
项目类别:面上项目
3

基于知识图谱的个性化API推荐及组合技术研究

批准号:61702500
批准年份:2017
负责人:黄龙涛
学科分类:F0202
资助金额:27.00
项目类别:青年科学基金项目
4

基于复杂网络的自动推荐系统理论与算法研究

批准号:60875049
批准年份:2008
负责人:曾大军
学科分类:F03
资助金额:27.00
项目类别:面上项目