一、程序切片技术的研究与应用(论文文献综述)
梅瑞,严寒冰,沈元,韩志辉[1](2021)在《二进制代码切片技术在恶意代码检测中的应用研究》文中指出恶意代码检测技术作为网络空间安全的重要研究问题之一,无论是传统的基于规则的恶意代码检测方法,还是基于机器学习的启发式恶意代码检测方法,首先都需要自动化或人工方式提取恶意代码的结构、功能和行为特征。随着网络攻防的博弈,恶意代码呈现出隐形化、多态化、多歧化特点,如何正确而有效的理解恶意代码并提取其中的关键恶意特征是恶意代码检测技术的主要目标。程序切片作为一种重要的程序理解方法,通过运用"分解"的思想对程序代码进行分析,进而提取分析人员感兴趣的代码片段。由于经典程序切片技术主要面向高级语言,而恶意代码通常不提供源代码,仅能够获取反汇编后的二进制代码,因此二进制代码切片技术在恶意代码检测技术中的应用面临如下挑战:(1)传统的面向高级语言的程序切片算法如何准确而有效的应用到二进制代码切片中;(2)针对恶意代码如何尽可能完整的提取能够表征关键恶意特征的程序切片。本文通过对经典程序切片算法的改进,有效改善了二进制代码过程间切片和切片粒度问题,并通过人工分析典型恶意代码,提取了42条有效表征恶意代码关键恶意特征的切片准则。实验表明,本文提出的方法可以提升恶意代码同源性检测的精度和效率。
黄秋月[2](2020)在《基于延续传递风格的多无人机编队系统优化研究》文中研究表明多无人机编队系统在无人机编队与重编队、监控与预警、任务设计与演示等各个方面都发挥着重要作用。如今多无人机执行的任务种类逐渐变得多样化,所涉及的领域越来越广泛,多无人机编队系统所具备的功能也越来越复杂,但是这也给系统调用栈正常运行和系统后期维护带来一定的挑战。现有的多无人机编队系统普遍缺乏对程序调用栈状态堆积问题的优化方法,另外也常常忽视系统程序内部耦合性和后期可维护性。当出现编队规模过大、飞行路径过于复杂的情况,多无人机编队系统的调用栈会存储并堆积程序执行时的各种参数和状态信息,从而引发栈溢出的问题,最终影响系统的整体运行。多无人机编队系统的各功能模块对远程服务的异步请求必不可少,然而多重异步请求会相互依赖层层嵌套,这会引发回调金字塔问题,进而导致系统内部程序的耦合性增强,严重影响后期的可维护性。本文的主要工作如下:(1)针对状态堆积问题,提出一种基于延续传递风格(Continuation Passing Style,CPS)的无人机编队递归算法的优化方法。利用CPS技术中不使用栈的特点,将编队问题中的递归算法改写成尾递归的形式,从而让原本挤压在栈中的信息转移到堆中,有效缓解系统调用栈的压力。(2)针对多重异步请求的嵌套问题,提出一种基于程序切片的CPS转化方法。采用程序切片技术中的程序依赖图作为CPS转化的辅助工具,再根据程序依赖图中控制流和数据流的依赖关系对系统程序进行CPS转化,这样不仅可以有效地提高CPS转化的正确率,而且在一定程度上削弱程序内部的耦合性和提高后期可维护性。(3)研究一种基于延续的系统程序调试方法,该方法利用延续技术实现程序的暂停和恢复执行功能,同时显式地将无人机编队系统程序的内部代码和调用栈展示出来。实验结果表明:本文提出的基于延续传递风格的递归优化算法可以有效地解决系统程序栈溢出的问题;本文提出的基于程序切片的CPS优化转换方法有效解决回调金字塔的问题,同时一定程度上提高了系统程序内部耦合性和后期可维护性。根据本文研究的内容可知,延续传递风格技术在多无人机编队系统优化方面发挥了很大的作用。
张玉[3](2020)在《软件度量关键技术研究》文中研究说明21世纪以来,互联网技术迅猛发展,计算机已经完全融入人们生活的方方面面。随着人们日益增长的物质和文化需求,软件作为计算机系统的灵魂,其种类更加繁多,规模更加庞大,架构也更加复杂。与此同时,由软件质量引发的一系列安全问题也越来越严重,安全可靠的软件已经成为软件开发的标准。软件度量一直是软件工程领域保证软件质量的有效手段,主要从复杂性、可靠性、可维护性等角度进行度量评估。然而,目前大多数的软件度量研究工作中度量维度较为单一,而单一的特性已无法满足人们对软件的需求。因此本文重点从与软件安全相关的复杂度、恶意性和漏洞风险三个维度对软件进行安全风险度量,以期望更好地提早发现软件中存在的问题。本文的主要工作和贡献如下:(1)针对现有的软件复杂度度量方法中,存在对衡量程序复杂度的指标考虑不够全面的问题,本文提出一种改进的面向对象的软件复杂度度量方法—ECB度量。该方法考虑了多继承、多态、函数调用等导致复杂度增加的因素,并将广泛应用的复杂度度量方法的衡量指标—Weyuker属性对ECB进行评估。最后通过实验对比证明其比改进前的度量方案更能准确地描述程序的复杂度,而且满足9个Weyuker属性。(2)针对当前基于图像的软件恶意检测的研究方案中,存在当样本中存在过多的干扰信息时,图像的纹理特征将发生较大变化,从而导致准确率降低的问题,本文提出基于图像的细粒度软件恶意性度量模型—Image-FGDM。该模型不仅仅从二进制程序转化的灰度图像中提取全局特征,而且还从最能代表软件行为的代码段和数据段中提取局部特征以克服干扰因素的影响,最后将全局特征与局部特征相结合以进行更加准确地度量。实验结果表明,该模型能以96.33%的准确度高效地识别出软件的恶意性,相较于对比方案准确度提高了3.4%。(3)现有的基于源代码的软件漏洞检测的研究中,大多数基于粒度较大的程序级别,而且对程序语义的提取研究较少,因此其耗费的时间和资源过多且准确率较低。针对这些不足,本文提出基于程序切片的漏洞检测模型—SAT-BLSTM。该模型通过程序切片技术获取包含漏洞的代码片段,并利用词嵌入技术将其转化为向量,最后输入到引入Attention(注意力)机制的BLSTM神经网络中进行学习和分类。通过在包含漏洞和无漏洞的166615个切片数据集中验证该模型,并与传统深度学习网络模型进行对比,结果表明,SAT-BLSTM模型能有效地检测出软件中的漏洞,准确度可达97.73%的准确度。其中,通过引入注意力机制该模型能更好地学习代码中包含的语义信息,模型的准确度提高了2.95%。本文在深度调研软件度量研究现状的基础上,重点对与软件安全相关的复杂度、恶意性以及漏洞风险三个度量维度进行研究,并针对这三个维度的现有方案中存在的不足提出相应的解决方案。其中提出的改进的复杂度度量方案ECB比改进前的方案更能准确地描述程序的复杂度,且满足9个Weyuker属性。提出的软件恶意性度量方案比对比方案的准确度提高了3.4%。提出的软件漏洞风险度量SAT-BLSTM模型能以高达97.73%的准确度有效地检测出软件中的漏洞,最终实现了软件安全性的多维度度量。
段亚男[4](2020)在《基于代码属性图和图卷积神经网络的软件漏洞检测方法研究》文中进行了进一步梳理随着开源软件的广泛使用,在软件设计与开发实现的过程中存在的一些缺陷或不足即软件漏洞容易被恶意攻击者利用。作为软件安全的第一层检查,从源代码中尽早检测漏洞并及时修补可以减少软件漏洞带来的损失,然而传统的源代码审查技术在很大程度上取决于审查人员对安全问题的理解与长期经验的积累,并且在代码规模日益增大的情况下无法满足对漏洞检测的需求。基于机器学习的漏洞检测方法虽然避免了基于规则的漏洞检测方法依赖专家人工编写检测规则的问题,但是仍需要人工提取漏洞特征,而近年来深度学习技术在各领域取得的研究成果为代码漏洞检测的研究提供了新的方向。然而,现存的研究方法在源代码的中间表示形式上常常忽略了其结构信息,深度神经网络通常把代码当作自然语言文本来对其进行表示学习。针对上述问题,本文提出了基于代码属性图和图卷积神经网络的漏洞检测方法,具体工作如下:首先,通过分析源代码生成对应的代码属性图(Code Property Graph),并根据图结构边的类型提取出漏洞检测关注的图结构。进一步,我们利用程序切片技术,根据可能的漏洞关键点生成程序切片对图结构进行简化,仅保留与指定漏洞关键点相关的图结构,这样既可以减轻无关节点对漏洞检测的噪声干扰,又加快了模型的学习速度。之后我们将提取出的图结构抽象化表示为若干文件,使得后续图神经网络模型可以读取。其次将软件漏洞检测问题转换成对源代码图结构的分类问题,实现对属性信息和结构信息端对端的学习。本文在图表示学习问题上使用了图卷积神经网络模型学习图的局部和全局信息。在表示学习上,本文将其分为节点的向量表示学习和图整体的向量表示学习。节点表示学习阶段引入了代码内容作为节点属性信息以提高节点学习的质量,图整体表示学习阶段则提出了按关系类型拆分子图的算法与基于子图自注意力的READOUT(读出)模型、基于整图节点注意力机制的READOUT模型以及基于子图自注意力和节点注意力机制的READOUT模型,并进行了实验评估。实验表明本文提出的代码的图结构表示方法和对应的端到端特征学习网络可以在大数据上取得了很好的漏洞检测结果。最后,本文为便于开发人员操作,将各个模块封装起来并构建了一个图形化界面,并展示了相应的操作。
门铎[5](2020)在《基于切片覆盖过滤的测试代码推荐系统的设计与实现》文中研究指明软件测试是软件生命周期中至关重要的一部分,而白盒测试是其中关键的一环,如何帮助无经验人员掌握白盒测试是一个值得关注的问题。传统的白盒测试学习过程通常需要使用到一些测试辅助工具,如覆盖率可视化工具和测试用例自动化生成工具等等。测试用例自动化工具产生的结果过多且可读性差,难以被借鉴。而覆盖率可视化工具产生的结果太过简约,不足以引导初学者进一步改进测试,提高测试质量。为了解决类似问题,一种快速高效的方式是在用户进行测试学习时,通过推荐与被测代码相关的测试代码片段的方式,帮助用户理解被测代码、引导用户挖掘测试方向、指导用户设计测试用例。本文依托于慕测公司的WebIDE在线编程平台,设计和实现了一个基于切片覆盖过滤的测试代码推荐系统。本系统采用Wala作为程序切片和分析工具,处理慕测已有提交测试代码项目数据,得到代码片段集合;使用了 AST程序分析技术将代码片段与项目模板融合;使用OpenClover工具分析代码片段的测试覆盖情况并存入语料库中。用户在测试学习过程中,系统会实时分析用户的测试覆盖信息,使用测试覆盖向量计算Jaccard向量相似度过滤得到推荐语料库中相关代码片段。动态地推荐给用户易于理解的优质代码片段,帮助其提高测试覆盖率,从而有助于初学者更快地理解源代码并掌握白盒测试。本系统划分为离线数据处理模块和动态代码推荐模块,其中离线数据处理模块用于构建测试代码片段语料库,动态代码推荐模块用于用户实时学习过程的追踪。本系统为提高吞吐量使用Nginx做负载均衡;为实现异步通信使用Web Socket技术进行服务器端主动推送消息;为了降低用户等待时间使用ElasticSearch提高查询性能;为了保证可扩展性,系统支持测试代码片段语料库的增量扩充。本系统目前已在慕测平台测试环境经历了持续一个月的正常稳定运行,同时本系统构建了一个包含11道原创题目,内含2200多个测试代码片段的推荐语料库。本文通过可用性测试和可靠性测试的验证以及真实案例分析证明了系统可对无经验初学者的测试学习过程起到帮助作用并提高用户学习效率。
徐文远[6](2020)在《基于机器学习的Java静态漏洞扫描系统的设计与实现》文中研究指明随着软件系统应用领域不断扩大,对于软件和信息系统的攻击日益增多,人们对软件安全的要求不断提升。为此,在软件开发和测试过程中,工程师使用静态代码分析系统对软件代码进行安全性扫描,并评估分析报告,只有通过安全性评估的软件才可以部署至线上运行。然而,传统代码分析是保守的,为不遗漏安全风险,系统往往会抛出大量误报,这些误报增加了安全工程师工作量,进而对软件开发进度产生影响。随着机器学习领域的发展,学术界已将机器学习算法运用于代码分析以发现漏洞或降低误报,然而这些工作只适用于小规模程序,对于在大规模应用还存在着种种问题。本系统旨在将学术研究成果应用于工业界实际项目中,面向Web开发常用的Java语言,利用污点分析、程序切片和BLSTM为开发或安全工程师提供更准确的代码扫描服务,进而减轻用户工作量,保证软件开发进度和质量。在污点分析方面,本系统利用Find Security Bugs的大量规则,保证低漏报的同时,对该工具的输出进行改进,使之反馈更详细的污点传播路径,增强报告可解释性;接着,本系统利用程序切片技术,对每一个漏洞实例进行代码切片,为了保证切片效率和稳定性,本文针对实际Jar包对切片器进行优化并提出分段切片思想,对于一个漏洞报告,将其对应的污点传播路径分解为小的污染流片段集合,再对每一个片段进行后向程序切片;最后,系统通过BLSTM模型,对预处理后的漏洞切片集合做预测,根据切片的预测结果推导漏洞实例本身是否为误报。本系统目前已代替传统污点传播分析引擎在线上部署,同时实验结果表明,本系统可以在可接受的扫描时间下,取得更加准确的扫描结果。在效率上,本系统优化传统切片,每个项目的整体扫描时间不超过1小时,在准确性上,本系统误报预测精确率达90.53%,即相对于单纯的污点传播,本系统在遗漏少量真实漏洞的前提下,排除25.44%误报,大大减轻安全运营人员的代码审计工作量,从而在整体上加快软件开发过程。
段定[7](2020)在《基于程序切片的测试代码抄袭检测系统的设计与实现》文中提出软件测试是保障软件产品质量的重要手段之一,也是软件教育课程的重要组成部分。为提高学习效率,降低学习成本,出现了大批专注于软件测试技术训练的在线实践平台。尽管当前众多在线测试实践平台已能够实现大规模测试开发训练,但学生们并不是在封闭现场进行训练,他们是在不同地点进行在线训练,此时存在互相抄袭的可能性很大,如何保证训练质量成为难题。因此测试代码抄袭检测成为所有在线测试实践平台切实管控训练质量的关键举措之一。然而,通过人工审核的方式对海量测试代码实行检测并不可取,需要耗费大量的人力资源,由此如何实现自动化代码抄袭检测以降低审核成本,是目前面临的挑战之一。为解决上述问题,本文对单元测试框架下设计的测试代码和生产代码深入分析,探究两者间存在的潜在差异,设计实现了一种基于程序切片的测试代码抄袭检测系统。为实现高质量的测试代码抄袭检测,本系统创新性地提出了静态双向程序切片技术,基于待测方法,从非标准测试代码中提取有效的测试片段,并进一步计算测试片段之间的相似度,基于相似度进行抄袭分析。根据此思路,本系统可划分为待测方法提取、测试片段提取、相似度计算、抄袭分析与测试报告生成共五个功能模块。本系统前端采用Angular2框架技术,利用Spring Boot技术搭建后端框架,通过My SQL数据库存储数据信息。为保障系统高可扩展性与可用性,系统选取Nginx实现负载均衡,选用Redis作为缓存。经过一系列严格的系统测试,本系统已实现功能性需求与非功能性需求,符合预期设想。通过在大量真实数据集上进行分析验证,实验结果证明本系统可以有效地检测出测试代码的抄袭行为,并且通过性能分析证实了本系统具有较好的健壮性。因此,本系统可以提升测试代码抄袭检测准确性,极大地节省了所需投入的人力成本,本系统对测试抄袭检测生态的建设起到了积极促进作用。
田永清[8](2020)在《基于程序切片的软件缺陷预测模型研究》文中进行了进一步梳理缺陷是软件中的固有问题,可能会给系统和用户带来很多难以预料的麻烦。对软件进行缺陷预测,发现并改正缺陷,已成为软件生产中必不可少的环节。目前软件缺陷预测技术研究主要集中在设计与潜在缺陷代码相关的特征以及采用程序的树形表示方式与深度学习相结合的方法方面。但是,这些方法不能充分表达源代码中的语法和语义信息。本文提出了一种基于程序切片的软件缺陷预测模型,该模型能够通过基于系统依赖图的程序切片方法,进行控制流和数据流分析,从程序中提取程序切片,保留程序语句间的语义信息。设计了一个结合词向量模型与门控循环单元神经网络的深度学习模型,通过利用词向量模型将程序切片转换为定长的向量表示。用训练集的向量与它们的标签(是否包含缺陷)来训练神经网络模型,最后用训练好的神经网络模型对测试集进行软件缺陷预测。本文利用PROMISE数据集上的10个开源项目进行实验,实验结果显示,对比现有的基于深度学习的方法(AST-DBN方法,tree-LSTM方法,Seml方法),本文提出的方法在项目内的缺陷预测和跨项目的缺陷预测两方面优于上述三个方法。对于项目内的缺陷预测,在平均F1值方面,本文的方法比AST-DBN方法,tree-LSTM方法和Seml方法分别提高了4.2%,7.1%,1.5%。对于跨项目的缺陷预测,在平均F1值方面,本文的方法比AST-DBN方法,tree-LSTM方法和Seml方法分别提高了3.9%,7.2%,4.1%。通过实验验证了本文方法的有效性。
熊家文[9](2020)在《协作式工业控制系统建模、分解及验证技术研究》文中研究说明随着国家在工业化发展进程上的不断深入,工业控制系统作为一种过程控制系统,被越来越广泛地应用于各行各业之中。由于工业控制系统通过各类执行机构能够对物理世界产生直接影响,其错误的运行将可能导致严重的安全事故,继而造成较大的经济损失、人员伤亡乃至重大的环境灾难。因此,在正式投入运行之前,其功能正确性、安全性及可靠性必须得到严格的保障。在当前的工业控制系统功能正确性保障工作中,主要采用的还是在设计阶段进行仿真以及在实现后进行测试的方法,但仿真与测试方法难以对系统行为进行深入而全面的考察,尤其对于具备复杂行为的系统,很难提供完备而严格的保障。因此,部分学者尝试引入形式化验证技术。但由于形式化验证技术具有较高的使用门槛,其实际应用并不广泛。且由于目前形式化验证技术存在一定的不足,大多数的现有工作都只关注了单个功能模块或程序的验证,而无法对多个任务协同的工业控制系统整体进行验证。而且,伴随着控制器技术、网络技术的发展,工业控制系统逐步从简单的单控制器控制系统发展为多控制器的分布式工业控制系统、现场总线工业控制系统乃至基于工业以太网的协作式工业控制系统,其复杂性日益提升,其功能正确性保障工作将面临更大的挑战,过去的方法将变得更加难以适用。因此,为了提高现代工业控制系统的功能正确性保障能力,本论文针对协作式工业控制系统,从设计方法及验证方法两方面,提出了两项功能安全性保障方法。首先提出了一套建模、分解方法,支持复杂工业控制系统的控制功能集中建模与特定资源约束条件下的自动分解,帮助用户以全局视角设计具备复杂交互关系的协作式工业控制系统,从而避免人为设计过程中可能引入的错误;其次提出了一种用户友好的轻量级形式化性质验证方法,从而方便用户对实现后的协作式工业控制系统进行快速性质考察;特别地,由于其基于系统运行日志的工作特性,在复杂控制系统的验证方面具有独特的优势。通过这两方面的功能正确性保障方法的辅助,工程师可以更加高效地开发出可靠的协作式工业控制系统。在创新性工作方面,具体包括了以下四个部分:1.提出了一种支持协作关系描述以及设备资源约束关系描述的建模语言CICSML,以支持协作式工业控制系统控制功能的统一抽象建模。该语言考虑了IEC 61131-3标准中描述的工业控制器软件特性,借鉴了结构化文本编程语言的语法,与工业控制系统软件实现存在较为直接的对应关系,可以轻松地转换为具体的实现代码。2.在建模语言的基础之上,提出了一种特定设备资源约束下的模型分解方法。该分解方法能够将单控制器复杂系统模型,按照给定设备资源约束,自动分解为多控制器的简单子系统模型集合。这些子系统模型通过自动生成的交互机制进行协作,共享给定的设备资源,从而形成多控制器协同的协作式工业控制系统。3.提出了一套轻量级的协作式工业控制系统形式化性质验证方法,主要结合工业控制程序仿真技术及规范挖掘技术,将形式化性质的验证过程从主动变为被动,从而极大地降低了复杂工业控制系统形式化性质验证的门槛。4.另外,提出了一种带过去时态的线性时态逻辑规范挖掘方法,改善了目标性质规范的表达能力,进一步增强了该轻量级性质验证方法。
张云帆[10](2020)在《基于上下文信息的API使用模式和参数推荐方法研究》文中进行了进一步梳理开发人员在进行编程任务时往往会面临不熟悉的问题和困难,而应用程序编程接口对于开发人员解决这些困难提供了良好的帮助。但如何正确地选择API并正确地使用API参数,对于开发人员来说仍是一大挑战。因此,针对开发人员在编程现场遇到的问题,精准且有效的推荐API使用模式及其参数具有较高的现实意义。针对上下文中的API使用模式推荐问题,本文提出了一种基于语义相似度的API使用模式推荐方法SSAPIR,该方法能够针对编程现场上下文信息,对开发人员输入的自然语言查询推荐精准的API使用模式。SSAPIR首先对高质量的大型开源Java项目进行分析,通过构建抽象语法树提取方法的上下文信息,包括API调用序列、方法描述信息和方法签名作为元数据结构;其次,使用层次聚类算法对元数据结构进行聚类,挖掘API使用模式;然后,对开发人员输入的自然语言查询进行语义信息提取,并通过语义相似度匹配算法将其和API使用模式中的描述信息进行匹配,最终推荐相似度最高的API使用模式。当开发人员获得了精准的API使用模式后,他们仍然面临着复杂的API参数选择问题。因此针对上下文信息中的API参数选择问题,本文提出了一种基于上下文信息的API参数推荐方法,该方法能够通过获取编程现场上下文信息,为开发人员使用的API进行参数推荐。首先,该方法通过对第三方API库的源代码进行分析,通过抽象语法树解析项目中各方法的调用关系,获取含参数的方法调用节点(SEED);然后,通过程序切片技术对SEED进行前向切片获得该SEED的上下文信息;最后,执行数据预处理过程,构建训练集,并将其输入到基于循环神经网络的编码-解码模型中进行训练。利用训练好的模型,结合编程现场的上下文信息即可实现API参数推荐。
二、程序切片技术的研究与应用(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、程序切片技术的研究与应用(论文提纲范文)
(1)二进制代码切片技术在恶意代码检测中的应用研究(论文提纲范文)
1 引言 |
2 程序切片研究背景 |
2.1 控制依赖分析 |
2.2 数据依赖分析 |
2.3 程序依赖图 |
2.4 程序切片算法 |
3 二进制代码切片改进 |
3.1 过程间切片 |
3.2 切片粒度 |
4 基于二进制切片的恶意代码检测模型 |
4.1 恶意代码同源性检测工作流 |
4.2 切片准则选取 |
5 实验和评估 |
5.1 数据集预处理 |
5.2 实验结果分析 |
5.3 方法局限性讨论 |
6 相关工作 |
7 结论与展望 |
(2)基于延续传递风格的多无人机编队系统优化研究(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.2.1 多无人机编队系统国内外研究现状 |
1.2.2 延续技术国内外研究现状 |
1.3 研究内容及创新点 |
1.4 本文组织结构 |
第二章 相关背景技术介绍 |
2.1 延续 |
2.1.1 函数式编程 |
2.1.2 延续技术 |
2.1.3 高级控制流程 |
2.2 延续传递风格 |
2.2.1 CPS与控制流 |
2.2.2 CPS与栈 |
2.2.3 CPS转化 |
2.3 Java Script函数式编程 |
2.3.1 函数是一等公民 |
2.3.2 Java Script中函数式编程思想 |
2.4 递归与尾递归 |
2.4.1 递归转化 |
2.4.2 尾递归 |
2.4.3 递归与堆栈 |
2.5 程序切片 |
2.5.1 程序前向切片 |
2.5.2 程序依赖图 |
2.6 本章小结 |
第三章 基于延续的多无人机编队系统状态堆积的优化方法 |
3.1 计算无人机重编队最短距离问题 |
3.1.1 问题描述 |
3.1.2 无人机最短重编队距离问题的数学建模 |
3.1.3 无人机最短重编队距离问题的递归算法 |
3.2 递归算法状态堆积问题的研究 |
3.2.1 无人机最短重编队距离问题的算法流程 |
3.2.2 分析无人机最短重编队距离问题的递归算法 |
3.2.3 递归转非递归的研究 |
3.3 基于CPS的状态堆积问题优化方法 |
3.3.1 递归转化为尾递归 |
3.3.2 基于CPS的尾递归的优化 |
3.4 实验评估 |
3.5 本章小节 |
第四章 基于程序切片的多无人机系统异步嵌套的优化方法 |
4.1 多无人机编队系统异步嵌套问题 |
4.1.1 异步请求与回调函数 |
4.1.2 多无人机系统中回调问题的描述 |
4.2 基于程序切片的CPS转化方法 |
4.2.1 回调金字塔问题的传统解决方案 |
4.2.2 分析传统方案的不足 |
4.2.3 分析程序依赖图 |
4.2.4 CPS转化算法步骤 |
4.3 实验评估 |
4.4 本章小结 |
第五章 实验与结果分析 |
5.1 基于CPS递归优化算法的实验 |
5.1.1 基于延续的单步调试 |
5.1.2 无人机编队系统的递归算法优化实验 |
5.1.3 无人机系统递归算法优化实验 |
5.2 基于程序切片的CPS转化的对比实验 |
5.2.1 无人机系统中回调函数例子 |
5.2.2 对比实验结果分析 |
5.3 本章小结 |
第六章 总结与展望 |
6.1 本文工作总结 |
6.2 未来研究方向 |
参考文献 |
附录1 攻读硕士学位期间申请的专利 |
附录2 攻读硕士学位期间参加的科研项目 |
致谢 |
(3)软件度量关键技术研究(论文提纲范文)
摘要 |
ABSTRACT |
符号对照表 |
缩略语对照表 |
第一章 绪论 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.2.1 软件度量 |
1.2.2 软件复杂度度量 |
1.2.3 软件恶意性度量 |
1.2.4 软件漏洞风险度量 |
1.3 研究内容 |
1.4 论文结构 |
第二章 软件度量以及相关技术 |
2.1 软件度量模型 |
2.2 软件复杂度 |
2.2.1 软件复杂度的特点 |
2.2.2 经典的软件复杂度度量方法 |
2.3 词嵌入技术 |
2.4 深度学习技术 |
2.4.1 RNN循环神经网络 |
2.4.2 LSTM长短期记忆网络 |
2.5 本章小结 |
第三章 软件复杂度度量 |
3.1 ICB度量 |
3.2 改进的CB度量方案—ECB度量 |
3.3 方案评估 |
3.3.1 Weyuker属性评估 |
3.3.2 实验对比 |
3.4 本章小结 |
第四章 软件恶意性度量 |
4.1 基于图像的软件恶意性度量模型—Image-FGDM |
4.2 特征提取与分类器训练 |
4.2.1 灰度图像生成 |
4.2.2 全局纹理特征提取 |
4.2.3 局部特征提取 |
4.2.4 分类模型训练 |
4.3 实验分析 |
4.3.1 实验环境和数据集 |
4.3.2 评估指标 |
4.3.3 实验结果 |
4.4 本章小结 |
第五章 软件漏洞风险度量 |
5.1 基于程序切片的漏洞检测模型—SAT-BLSTM |
5.1.1 训练阶段 |
5.1.2 检测阶段 |
5.2 程序切片生成以及向量转化 |
5.2.1 程序切片 |
5.2.2 风险函数 |
5.2.3 程序切片生成机制 |
5.2.4 程序切片标注策略 |
5.2.5 向量转化 |
5.3 基于Attention机制的BLSTM学习模型 |
5.3.1 深度神经网络的选择 |
5.3.2 BLSTM神经网络 |
5.3.3 Attention机制 |
5.3.4 SAT-BLSTM模型 |
5.4 实验分析 |
5.4.1 实验环境和数据集 |
5.4.2 实验结果 |
5.5 本章小结 |
第六章 总结与展望 |
6.1 工作总结 |
6.2 未来展望 |
参考文献 |
致谢 |
作者简介 |
(4)基于代码属性图和图卷积神经网络的软件漏洞检测方法研究(论文提纲范文)
摘要 |
ABSTRACT |
第1章 绪论 |
1.1 课题研究的背景和意义 |
1.2 国内外研究现状及分析 |
1.2.1 源代码的中间表示的国内外研究现状 |
1.2.2 图表示学习方法的国内外研究现状 |
1.2.3 代码漏洞检测的国内外研究现状 |
1.3 本文的主要研究内容以及各章节安排 |
1.3.1 主要研究内容 |
1.3.2 章节安排 |
第2章 基于代码属性图的源代码图结构抽象表示 |
2.1 引言 |
2.2 源代码的图结构化抽象表示的总体流程 |
2.3 代码属性图的定义和生成 |
2.3.1 代码属性图的基本概念 |
2.3.2 代码属性图的生成和存储 |
2.4 漏洞检测关注的图结构信息提取方法 |
2.5 图结构信息的抽象化表示 |
2.6 基于程序切片技术的图结构简化方法 |
2.6.1 程序切片技术 |
2.6.2 基于漏洞关键点的程序切片设计方案 |
2.6.3 基于程序切片的图结构简化算法及实现 |
2.7 结构化表示的结果与分析 |
2.7.1 漏洞检测关注的图结构信息提取结果 |
2.7.2 基于程序切片的图结构简化结果 |
2.8 本章小结 |
第3章 基于图卷积神经网络的软件漏洞检测方法 |
3.1 引言 |
3.2 基于图卷积神经网络的软件漏洞检测方法总体流程 |
3.3 基于图分类的漏洞检测模型的形式化定义 |
3.3.1 漏洞检测模型问题定义 |
3.3.2 模型网络结构 |
3.4 基于图卷积神经网络的图表示学习 |
3.4.1 图卷积神经网络结构及其变体 |
3.4.2 图卷积神经网络的训练 |
3.5 图结构中节点的向量表示学习 |
3.5.1 节点向量表示学习模型的输入 |
3.5.2 节点信息的传递与聚合 |
3.6 图完整结构的向量表示学习 |
3.6.1 基于子图加权的READOUT模型设计 |
3.6.2 基于整图节点注意力的READOUT模型设计 |
3.6.3 基于子图和节点注意力的READOUT模型设计 |
3.7 本章小结 |
第4章 算法的实验验证 |
4.1 数据集信息采集与预处理 |
4.2 实验设置 |
4.3 评价指标 |
4.4 实验结果对比与分析 |
4.5 图形化界面的展示 |
4.5.1 图形化界面的实现 |
4.5.2 图形化界面的操作展示 |
4.6 本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表的论文及其他成果 |
致谢 |
(5)基于切片覆盖过滤的测试代码推荐系统的设计与实现(论文提纲范文)
摘要 |
Abstract |
第一章 引言 |
1.1 背景与研究意义 |
1.2 国内外研究现状 |
1.2.1 编程代码推荐技术研究现状 |
1.2.2 测试代码推荐技术研究现状 |
1.2.3 测试代码推荐工具研究现状 |
1.3 本文主要研究工作 |
1.4 本文的组织结构 |
第二章 技术综述 |
2.1 程序切片技术 |
2.1.1 程序切片技术介绍 |
2.1.2 程序切片工具Wala |
2.1.3 Wala切片流程介绍 |
2.2 覆盖率分析工具OpenClover |
2.2.1 OpenClover简述 |
2.2.2 OpenClover覆盖率种类 |
2.2.3 OpenClover优势 |
2.3 相似度度量方法 |
2.3.1 相似度度量方法介绍 |
2.3.2 Jaccard相似度度量算法 |
2.4 搜索引擎ElasticSearch |
2.4.1 ElasticSearch简述 |
2.4.2 使用ElasticSearch的优势 |
2.5 容器技术Docker |
2.5.1 Docker介绍 |
2.5.2 使用Docker优势 |
2.6 开发框架SpringBoot |
2.6.1 SpringBoot介绍 |
2.6.2 使用SpringBoot优势 |
2.7 本章小结 |
第三章 系统需求分析与概要设计 |
3.1 系统整体概述 |
3.2 系统需求分析 |
3.2.1 功能性需求分析 |
3.2.2 非功能性需求分析 |
3.2.3 系统用例图 |
3.2.4 系统用例描述 |
3.3 系统总体设计 |
3.3.1 系统整体架构设计 |
3.3.2 系统模块划分 |
3.3.3 4+1视图 |
3.3.4 离线数据处理模块设计 |
3.4 持久化模型设计 |
3.4.1 测试代码片段语料 |
3.4.2 测试代码语料库模型设计 |
3.4.3 动态推荐用户覆盖模型设计 |
3.5 本章小结 |
第四章 系统详细设计与实现 |
4.1 测试代码切片模块详细设计与实现 |
4.1.1 流程设计 |
4.1.2 类图设计 |
4.1.3 程序切片顺序图 |
4.1.4 程序切片关键代码 |
4.2 测试模板构造模块详细设计与实现 |
4.2.1 流程设计 |
4.2.2 类图设计 |
4.2.3 顺序图 |
4.2.4 关键代码 |
4.3 测试覆盖分析模块详细设计与实现 |
4.3.1 流程设计 |
4.3.2 类图设计 |
4.3.3 顺序图 |
4.3.4 关键代码 |
4.4 动态代码推荐模块详细设计与实现 |
4.4.1 流程设计 |
4.4.2 类图设计 |
4.4.3 顺序图 |
4.4.4 获取待推荐方法列表关键代码 |
4.4.5 获取测试代码片段列表关键代码 |
4.5 本章小结 |
第五章 系统测试与案例分析 |
5.1 系统测试 |
5.1.1 测试目标与测试环境 |
5.1.2 单元测试 |
5.1.3 性能测试 |
5.2 系统案例分析 |
5.2.1 题目描述 |
5.2.2 推荐测试语料准备 |
5.2.3 系统使用 |
5.3 系统实验 |
5.3.1 实验设计 |
5.3.2 实验结论 |
5.4 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
简历与科研成果 |
致谢 |
(6)基于机器学习的Java静态漏洞扫描系统的设计与实现(论文提纲范文)
摘要 |
Abstract |
第一章 引言 |
1.1 项目背景和意义 |
1.2 研究现状 |
1.2.1 传统静态代码分析系统应用现状 |
1.2.2 基于机器学习的静态安全扫描研究现状 |
1.3 本文主要研究工作 |
1.4 本文组织结构 |
第二章 相关技术综述 |
2.1 漏洞挖掘技术 |
2.1.1 基于代码分析的漏洞挖掘技术 |
2.1.1.1 词法分析技术 |
2.1.1.2 数据流和控制流分析技术 |
2.1.1.3 形式化方法分析技术 |
2.1.1.4 符号执行技术 |
2.1.2 基于模糊测试的漏洞挖掘技术 |
2.2 污点分析 |
2.2.1 污点分析原理 |
2.2.1.1 污点分析三要素 |
2.2.1.2 污点分析过程 |
2.2.2 污点分析的优势和不足 |
2.2.3 Java污点分析工具选型 |
2.3 程序切片技术 |
2.3.1 程序切片定义 |
2.3.2 程序切片技术 |
2.3.3 后向程序切片的优势与不足 |
2.4 BLSTM算法 |
2.4.1 LSTM原理介绍 |
2.4.2 双向读取——BLSTM |
2.4.3 BLSTM的优势 |
2.5 Django框架 |
2.5.1 Django框架简介 |
2.5.2 Django框架优势 |
2.6 本章小结 |
第三章 Java静态安全扫描系统需求分析与设计 |
3.1 系统整体概述 |
3.2 系统需求分析 |
3.2.1 功能性需求 |
3.2.2 非功能性需求 |
3.2.3 系统用例描述 |
3.3 系统总体设计 |
3.4 污点分析模块设计 |
3.4.1 流程设计 |
3.4.2 污点传播图类图设计 |
3.4.3 污点传播树和漏洞报告类图设计 |
3.4.4 污点分析器类图设计 |
3.5 程序切片模块设计 |
3.5.1 流程设计 |
3.5.2 类图设计 |
3.6 数据预处理模块设计 |
3.6.1 流程设计 |
3.6.2 类图设计 |
3.7 误报预测模块设计 |
3.7.1 架构设计 |
3.7.2 类图设计 |
3.7.3 流程设计 |
3.8 数据库设计 |
3.9 本章小结 |
第四章 Java静态安全扫描系统实现和测试 |
4.1 一个XSS漏洞实例 |
4.2 污点分析模块的实现 |
4.2.1 记录污点传播信息实现 |
4.2.2 构造污点传播图实现 |
4.2.3 构造污点传播树并生成注解的实现 |
4.3 程序切片模块的实现 |
4.3.1 切片控制模块实现 |
4.3.1.1 切片控制代码 |
4.3.1.2 过滤漏洞实例 |
4.3.1.3 分解污点传播树 |
4.3.2 后向切片的实现 |
4.3.2.1 基于Joana的后向切片 |
4.3.2.2 SDG的生成配置类 |
4.4 数据处理模块的实现 |
4.4.1 泛化处理 |
4.4.2 建立单词表与向量化 |
4.5 误报预测模块的实现 |
4.5.1 误报预测控制 |
4.5.2 误报预测时序图 |
4.5.3 漏洞标记时序图 |
4.5.4 批训练过程 |
4.6 系统测试与运行展示 |
4.6.1 测试目标 |
4.6.2 功能测试 |
4.6.3 健壮性和性能测试 |
4.6.4 系统效果评估 |
4.6.4.1 参数设置 |
4.6.4.2 评估方法和度量 |
4.6.4.3 评估数据集 |
4.6.4.4 实验结果 |
4.6.5 系统运行展示 |
4.7 本章小结 |
第五章 总结与展望 |
5.1 总结 |
5.2 展望 |
参考文献 |
简历与科研成果 |
致谢 |
(7)基于程序切片的测试代码抄袭检测系统的设计与实现(论文提纲范文)
摘要 |
Abstract |
第一章 引言 |
1.1 研究背景与意义 |
1.2 国内外研究现状 |
1.3 本文的主要工作 |
1.4 本文的组织结构 |
第二章 相关技术综述 |
2.1 代码相似性度量技术 |
2.2 程序切片技术 |
2.3 基于Angular2的前端框架 |
2.4 基于Spring Boot的后端框架 |
2.5 微服务 |
2.6 基于Docker的容器技术 |
2.7 本章小结 |
第三章 系统需求分析与概要设计 |
3.1 系统整体概述 |
3.2 系统需求分析 |
3.2.1 功能性需求分析 |
3.2.2 非功能性需求分析 |
3.3 系统概要设计 |
3.3.1 系统服务划分与架构设计 |
3.3.2 架构视图 |
3.4 数据模型设计 |
3.5 算法设计 |
3.5.1 测试抄袭检测系统整体算法设计 |
3.5.2 待测方法提取算法设计 |
3.5.3 测试片段提取算法设计 |
3.5.4 相似度计算算法设计 |
3.5.5 抄袭分析算法设计 |
3.6 本章小结 |
第四章 系统详细设计与实现 |
4.1 待测方法提取模块的详细设计与实现 |
4.1.1 待测方法提取模块详细设计 |
4.1.2 待测方法提取模块具体实现 |
4.2 测试片段提取模块的详细设计与实现 |
4.2.1 测试片段提取模块详细设计 |
4.2.2 测试片段提取模块具体实现 |
4.3 相似度计算模块的详细设计与实现 |
4.3.1 相似度计算模块详细设计 |
4.3.2 相似度计算模块具体实现 |
4.4 抄袭分析模块的详细设计与实现 |
4.4.1 抄袭分析模块详细设计 |
4.4.2 抄袭分析模块具体实现 |
4.5 检测报告生成模块详细设计与实现 |
4.5.1 检测报告生成模块详细设计 |
4.5.2 检测报告生成模块具体实现 |
4.6 系统实例展示 |
4.7 本章小结 |
第五章 系统测试与实验评估 |
5.1 系统测试 |
5.1.1 测试目标与测试环境 |
5.1.2 功能测试 |
5.1.3 接口测试 |
5.1.4 性能分析 |
5.2 实验评估 |
5.2.1 实验设计 |
5.2.2 评估指标 |
5.2.3 对比工具 |
5.2.4 实验结果 |
5.3 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
简历与科研成果 |
致谢 |
(8)基于程序切片的软件缺陷预测模型研究(论文提纲范文)
摘要 |
abstract |
第一章 绪论 |
1.1 研究意义和背景 |
1.2 国内外研究现状 |
1.2.1 基于软件度量元特征的软件缺陷预测 |
1.2.2 基于机器学习的软件缺陷预测 |
1.3 研究内容及主要贡献 |
1.4 文章结构 |
第二章 相关知识 |
2.1 软件缺陷预测 |
2.1.1 软件缺陷预测的定义 |
2.1.2 软件缺陷预测的整体流程 |
2.2 字节码文件 |
2.3 程序切片技术 |
2.4 深度学习技术 |
2.4.1 深度学习模型 |
2.4.2 词向量模型 |
2.5 本章小结 |
第三章 模型方案设计 |
3.1 模型方案设计 |
3.1.1 训练模型阶段 |
3.1.2 缺陷预测阶段 |
3.2 程序切片生成策略 |
3.3 词向量生成 |
3.4 缺陷预测模型的设计与训练 |
3.5 本章小结 |
第四章 模型方案实现 |
4.1 数据集 |
4.2 程序切片实现方法 |
4.3 深度学习模型训练 |
4.3.1 将程序切片转换成向量 |
4.3.2 训练深度学习模型 |
4.4 缺陷预测 |
4.5 本章小结 |
第五章 实验结果与分析 |
5.1 度量指标 |
5.2 评估基准 |
5.3 神经网络模型的参数设置 |
5.4 项目内的软件缺陷预测 |
5.5 跨项目的软件缺陷预测 |
5.6 有效性分析 |
5.7 本章小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
致谢 |
攻读学位期间取得的科研成果 |
(9)协作式工业控制系统建模、分解及验证技术研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景 |
1.2 问题与挑战 |
1.2.1 工业控制系统的安全性问题 |
1.2.2 工业控制系统的复杂性挑战 |
1.3 国内外研究现状及相关工作 |
1.3.1 工业控制系统验证方面的相关研究 |
1.3.2 系统设计开发方法方面的相关研究 |
1.4 本文的主要工作及贡献 |
1.5 本文的组织结构 |
第二章 基本概念及准备知识 |
2.1 IEC 61131-3 标准 |
2.1.1 IEC 61131 标准 |
2.1.2 可编程逻辑控制器 |
2.1.3 IEC 61131-3 软件模型 |
2.1.4 PLC运行机制 |
2.1.5 PLC编程语言 |
2.2 程序切片技术 |
2.2.1 程序切片原理 |
2.2.2 程序切片简单示例 |
2.3 模型检测技术 |
2.3.1 模型检测的基本流程 |
2.3.2 模型检测简单示例 |
2.4 本章小结 |
第三章 协作式工业控制系统建模语言 |
3.1 设计动机与要求 |
3.2 CICSML建模语言 |
3.2.1 设计思想 |
3.2.2 基本概念 |
3.2.3 抽象语法 |
3.3 CICSML建模 |
3.3.1 建模流程 |
3.3.2 建模案例 |
3.4 本章小结 |
第四章 协作式工业控制系统模型分解方法 |
4.1 概要说明 |
4.2 分解可行性判定 |
4.3 资源分配 |
4.4 模型拆分方法 |
4.4.1 问题分析 |
4.4.2 任务拆分算法 |
4.5 模型协作关系生成方法 |
4.5.1 协作原理 |
4.5.2 通信语句生成方法 |
4.6 应用案例 |
4.6.1 集中建模 |
4.6.2 模型分解 |
4.6.3 协作关系分析 |
4.7 本章小结 |
第五章 基于性质规范挖掘的轻量级验证方法 |
5.1 引言 |
5.2 验证方法 |
5.2.1 基本形式 |
5.2.2 迭代验证流程 |
5.3 工具实现 |
5.4 应用案例 |
5.4.1 简单示例 1:转换开关 |
5.4.2 简单示例 2:两数排序 |
5.4.3 实例研究 |
5.4.4 性能评估 |
5.5 讨论:与传统验证方法对比 |
5.5.1 与仿真和测试相比 |
5.5.2 与模型检测相比 |
5.6 局限性 |
5.6.1 方法自身的局限性 |
5.6.2 当前实现的局限性 |
5.7 本章小结 |
第六章 带过去时态的线性时态逻辑规范挖掘方法 |
6.1 简介 |
6.2 带过去时态的线性时态逻辑 |
6.2.1 带过去时态的线性时态逻辑语法 |
6.2.2 带过去时态的线性时态逻辑的限界语义 |
6.2.3 对比一般纯未来时态的线性时态逻辑 |
6.3 挖掘方法 |
6.3.1 方法概要 |
6.3.2 核心算法 |
6.4 优化策略 |
6.4.1 公共子结构缓存加速策略 |
6.4.2 并行加速策略 |
6.5 工具实现与评估 |
6.6 本章小结 |
第七章 总结与展望 |
7.1 本文工作总结 |
7.2 不足之处与未来工作展望 |
附录A 语法定义 |
A.1 CICSML的ANTLR语法定义 |
A.2 带过去时态的线性时态逻辑的ANTLR语法定义 |
参考文献 |
致谢 |
攻读博士学位期间发表论文和科研情况 |
(10)基于上下文信息的API使用模式和参数推荐方法研究(论文提纲范文)
摘要 |
abstract |
注释表 |
缩略词 |
第一章 绪论 |
1.1 课题研究背景 |
1.2 国内外研究现状 |
1.2.1 基于频繁序列挖掘的API使用模式推荐技术 |
1.2.2 基于机器学习的API序列推荐技术 |
1.2.3 基于搜索的API参数推荐技术 |
1.3 本文的主要研究内容和创新点 |
1.4 本文各章内容安排 |
第二章 API使用模式和参数推荐相关技术 |
2.1 程序静态分析 |
2.1.1 抽象语法树 |
2.1.2 静态程序切片 |
2.1.3 Eclipse JDT |
2.2 自然语言处理 |
2.2.1 自然语言理解 |
2.2.2 信息检索 |
2.2.3 Stanfor NLP |
2.3 聚类算法 |
2.4 深度学习 |
2.4.1 循环神经网络 |
2.4.2 长短时记忆网络LSTM |
2.4.3 RNN Encoder-Decoder模型 |
2.5 本章小结 |
第三章 基于语义相似度的API使用模式推荐方法 |
3.1 方法框架 |
3.2 数据预处理 |
3.3 元数据结构提取 |
3.3.1 构建项目数据集 |
3.3.2 提取API调用序列 |
3.3.3 提取注释信息和方法签名 |
3.4 API使用模式挖掘 |
3.5 基于语义相似度的API使用模式推荐算法 |
3.6 本章小结 |
第四章 基于上下文信息的API参数推荐方法 |
4.1 方法概述 |
4.2 实例分析 |
4.3 含参数的方法调用信息提取 |
4.4 参数上下文信息提取 |
4.4.1 参数类型分类 |
4.4.2 参数上下文信息数据集构建 |
4.5 基于深度神经网络的模型训练和参数推荐 |
4.5.1 数据准备 |
4.5.2 RNN Encoder-Decoder参数推荐模型训练和推荐 |
4.6 本章小结 |
第五章 实验及结果分析 |
5.1 基于语义相似度的API使用模式推荐方法实验 |
5.1.1 实验准备 |
5.1.2 实验设置 |
5.1.3 实验一 |
5.1.4 实验二 |
5.1.5 实验三 |
5.2 基于上下文信息的API参数推荐方法实验 |
5.2.1 实验设置 |
5.2.2 实验四 |
5.3 本章小结 |
第六章 总结和展望 |
6.1 总结 |
6.2 未来工作展望 |
参考文献 |
致谢 |
在学期间的研究成果及发表的学术论文 |
四、程序切片技术的研究与应用(论文参考文献)
- [1]二进制代码切片技术在恶意代码检测中的应用研究[J]. 梅瑞,严寒冰,沈元,韩志辉. 信息安全学报, 2021(03)
- [2]基于延续传递风格的多无人机编队系统优化研究[D]. 黄秋月. 南京邮电大学, 2020(03)
- [3]软件度量关键技术研究[D]. 张玉. 西安电子科技大学, 2020(05)
- [4]基于代码属性图和图卷积神经网络的软件漏洞检测方法研究[D]. 段亚男. 哈尔滨工业大学, 2020(02)
- [5]基于切片覆盖过滤的测试代码推荐系统的设计与实现[D]. 门铎. 南京大学, 2020(04)
- [6]基于机器学习的Java静态漏洞扫描系统的设计与实现[D]. 徐文远. 南京大学, 2020(04)
- [7]基于程序切片的测试代码抄袭检测系统的设计与实现[D]. 段定. 南京大学, 2020(04)
- [8]基于程序切片的软件缺陷预测模型研究[D]. 田永清. 河北大学, 2020(08)
- [9]协作式工业控制系统建模、分解及验证技术研究[D]. 熊家文. 华东师范大学, 2020(11)
- [10]基于上下文信息的API使用模式和参数推荐方法研究[D]. 张云帆. 南京航空航天大学, 2020(07)