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

批准号:
61802067
项目类别:
青年科学基金项目
资助金额:
26.0 万元
负责人:
陈碧欢
依托单位:
学科分类:
F0203.软件理论、软件工程与服务
结题年份:
2021
批准年份:
2018
项目状态:
已结题
项目参与者:
赵文耘、刘汶谏、黄凯锋、李俊毅、阮航、张海锐
国基评审专家1V1指导 中标率高出同行96.8%
结合最新热点,提供专业选题建议
深度指导申报书撰写,确保创新可行
指导项目中标800+,快速提高中标率
微信扫码咨询
中文摘要
第三方API库是软件项目的重要组成部分,可以提高开发效率、缩短开发和交付时间、提高软件质量。然而,为了增加新特性或修复缺陷,第三方库在不断演化,不定期地发布新版本。这就给使用第三方库的软件项目的维护带来了严峻的挑战:开发人员难以及时更新第三方库、难以理解第三方库更新内容、难以进行第三方库更新集成和测试、甚至不知道特定第三方库的存在。针对这些问题,本项目以GitHub上海量JAVA开源项目及Maven上第三方库为基础,研究第三方库在JAVA开源项目中使用和更新的实践现状,定量评估第三方库对JAVA开源项目带来的风险;研究第三方库版本更新的语义理解,分析第三方库版本之间的API语义差异及其分类;研究第三方库在JAVA开源项目中的自动化推荐,降低第三方库对开源项目带来的风险及维护代价。在以上技术研究的基础上,本项目将研制面向第三方库的知识库系统和分析平台,支持开源项目和和第三方库的在线分析。
英文摘要
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.
第三方库是软件项目的重要组成部分,可以提高开发效率、缩短开发和交付时间、提 高软件质量。然而,为了增加新特性或修复缺陷,第三方库在不断演化,不定期地发布新版本 。这就给使用第三方库的软件项目的维护带来了严峻的挑战:开发人员难以及时更新第三方库、难以理解第三方库更新内容、难以进行第三方库更新集成和测试、容易同时使用同一第三方库的不同版本。针对这些问题,本项目以GitHub上海量JAVA开源项目及Maven上第三方库为基础,研究第三方库在JAVA开源项目中使用和更新的实践现状,并研究基于API分析的第三方库版本升级推荐方法,识别并量化旧的第三方库版本中的安全漏洞对软件系统的风险,推荐并量化升级到新的第三方库版本的代价;研究基于API分析的第三方库版本统一推荐方法,检测多模块软件项目中存在的第三方库版本不一致和假一致问题, 并基于软件项目中的第三方库API调用分析、以及第三方库版本间的API差异分析,推荐第三方库统一版本并量化统一代价;研究基于多源知识的第三方库版本更新中消失API的替代API定位方法,结合了多种知识源(弃用声明、自身库、以及外部库),不依赖于第三方库的历史开发数据,也不依赖于第三方库在软件项目中的使用数据,准确地定位第三方库版本更新中消失API的替代API。这些研究内容的主要贡献是为第三方库软件供应链的风险治理提供了切实可行的解决方案,有效减少了软件供应链所带来的风险。
期刊论文列表
专著列表
科研奖励列表
会议论文列表
专利列表
DEEPLINK: Recovering issue-commit links based on deep learning
DEEPLINK:基于深度学习恢复问题提交链接
DOI:10.1016/j.jss.2019.110406
发表时间:2019-12
期刊:Journal of Systems and Software
影响因子:3.5
作者:Ruan Hang;Chen Bihuan;Peng Xin;Zhao Wenyun
通讯作者:Zhao Wenyun
Identifying change patterns of API misuses from code changes
从代码更改中识别 API 滥用的更改模式
DOI:10.1007/s11432-019-2745-5
发表时间:2021-02
期刊:Science China Information Sciences
影响因子:--
作者:Liu Wenjian;Chen Bihuan;Peng Xin;Sun Qinghao;Zhao Wenyun
通讯作者:Zhao Wenyun
知识驱动的开源漏洞数据治理技术研究
- 批准号:62372114
- 项目类别:面上项目
- 资助金额:50.00万元
- 批准年份:2023
- 负责人:陈碧欢
- 依托单位:
国内基金
海外基金
