基于自然语言理解和深度学习的类库规约的自动生成研究

基本信息
批准号:61802166
项目类别:青年科学基金项目
资助金额:27.00
负责人:翟娟
学科分类:
依托单位:南京大学
批准年份:2018
结题年份:2021
起止时间:2019-01-01 - 2021-12-31
项目状态: 已结题
项目参与者:潘敏学,司徒凌云,王豫,徐同同,朱博伦,刘拨杰,刘毅达,丁顺杰,朱亚伟
关键词:
静态分析统计机器翻译自然语言处理类库规约长短期记忆神经网络
结项摘要

Modern software systems are becoming increasingly complex, relying on a lot of third-party library support. Library behaviors are hence an integral part of software behaviors. Using libraries incorrectly can introduce potential software defects. .In order to ensure the reliability of the software, the client code that uses libraries must be analyzed when we verify the software. And in order to analyze the client code, we must have library specifications which play a significant role in many analysis techniques. Unfortunately, the library source code tends to be prohibitively large and has sophisticated implementation, making it really difficult to analyze. Moreover, the source code is often beyond reach. Consequently, efficiently and exactly generating specifications for libraries is an urgent issue. The proposed project aims to automatically generate library specifications from documentation which concisely describes the functionalities of the functions by leveraging techniques like natural language processing and statistical machine translation. However, the documentation is incomplete in some cases, which means we cannot generate specifications for such functions. As we know, there is a massive volume of code in the open-source community and the code contains the details of using libraries. Thus the project strives to mine the open-source code to generate library specifications via rule learning and long short term memory networks to complement and perfect the specifications generated from the documentation.

类库已经成为软件开发过程中必不可少的资源,类库的行为已经成为软件行为中不可分割的一部分,错误地使用类库将引入潜在的软件缺陷。为了保障软件系统的可靠性,在对软件系统进行分析验证时,必须对使用类库的客户代码进行分析验证,而对客户代码进行分析需要使用类库的规约,类库的规约在很多程序分析验证技术中都扮演着不可或缺的重要角色。然而,类库的源代码通常规模庞大、逻辑复杂,难以进行分析,有时甚至无法获取,因此,如何高效而准确地自动生成类库规约成为迫切需要解决的重要问题。本课题拟基于类库文档中包含的丰富而有效的信息,通过使用自然语言处理、统计机器翻译等技术进行分析来自动生成类库的规约。然而,类库文档可能存在信息不完整的情况,而开源社区中的海量代码包含了类库的使用细节,因此,本课题拟通过规则学习、长短期记忆神经网络等技术对开源代码进行学习来生成类库的规约,补充和完善所生成的类库规约。

项目摘要

无论是传统的软件系统还是智能软件系统,其可靠性和安全性都至关重要,因此,本项目的主要目标是提高软件系统的可靠性和安全性。具体而言,本项目从四个方面来增强软件的可靠性:第一,通过自动生成类库规约和智能家居系统的行为规约来辅助软件系统的分析验证,从而提高系统的可靠性。我们的方法为5个开源项目的511个函数生成了1145个程序规约,这些规约有效地提高了静态污点分析、自动化测试用例的生成等软件工程任务的效率和有效性;为智能家居的481个生活实例生成了形式化规约从而辅助系统的验证,提高了系统的安全性。第二,通过为代码元素自动传播得到代码注释来帮助发现代码缺陷,从而提高软件质量,我们的方法为5个开源项目生成了41573条新注释,正确性达88%,根据注释检测出37个代码缺陷,其中30个代码缺陷已经被开发人员确认并修复;第三,通过对深度神经网络开发中可能出现的工程性错误导致的模型缺陷进行检测和自动修复,从而提高智能软件的质量,对6个数据集,495个模型的评估表明我们的方法可以有效地检测出所有潜在问题,检测率达到100%,并且没有误报,另外可以修复其中97.33%的问题,平均提高47.08%的准确率;我们的方法还可以有效地提高所有模型的公平性,同时保持稳定的效用;第四,使用扩展的IFML模型对安卓应用进行测试来提高安卓应用的可靠性,通过对10个开源安卓应用进行测试,我们的方法可以达到68%的代码覆盖,并且发现了8个代码缺陷。本项目中大部分工作已经开源代码和数据。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

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

暂无此项成果

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

其他相关文献

1

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

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

DOI:
发表时间:
2

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

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

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

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

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

DOI:
发表时间:2018
4

环境类邻避设施对北京市住宅价格影响研究--以大型垃圾处理设施为例

环境类邻避设施对北京市住宅价格影响研究--以大型垃圾处理设施为例

DOI:10.11821/dlyj020190689
发表时间:2020
5

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

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

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

翟娟的其他基金

相似国自然基金

1

基于深度学习的图像文本描述自动生成方法研究

批准号:61806218
批准年份:2018
负责人:郭延明
学科分类:F0604
资助金额:19.00
项目类别:青年科学基金项目
2

自然语言理解中的知识自动获取

批准号:69075013
批准年份:1990
负责人:王晓龙
学科分类:F03
资助金额:2.78
项目类别:面上项目
3

基于多模态融合以及深度神经网络的视频内容自然语言描述自动生成的研究

批准号:61772535
批准年份:2017
负责人:金琴
学科分类:F0209
资助金额:62.00
项目类别:面上项目
4

基于弱监督和迁移学习的深度文本理解模型学习方法

批准号:61876144
批准年份:2018
负责人:管子玉
学科分类:F0606
资助金额:62.00
项目类别:面上项目