一、一种Java程序度量工具的设计实现(论文文献综述)
吴鸣[1](2021)在《差异代码克隆的检测算法研究及其应用》文中指出代码克隆是软件开发过程中的一种常见现象。程序员为了提高编程效率,经常需要对代码片段进行复制、粘贴和修改,这就产生了代码克隆。具有相对较多修改的代码克隆(即差异代码克隆)广泛存在于软件代码中,并且这些差异代码克隆可以被应用于很多软件工程相关应用,例如软件维护、软件质量评估、代码补全和搜索、软件演化分析、bug检测等。目前大多数已有的克隆检测工具适合于检测几乎完全相同或者非常相似的代码克隆,而差异代码克隆通常是较难被检测出来的。针对以上问题,本文主要研究了差异代码克隆检测的算法理论以及相关应用。具体来说,本文的主要工作内容和创新点如下:1.差异代码克隆检测算法在已有的差异克隆检测方法中,基于文本和关键词的检测方法虽快速但差异克隆检测能力较弱,而对大差异克隆几乎难以发现;基于代码的抽象语法树或程序依赖图的检测方法虽然其差异克隆检测能力较好但计算复杂度高;另外基于机器学习的方法也存在数据集依赖的问题。本文基于生物信息学中序列比对的种子扩展算法思想,设计了一个全新的差异代码克隆检测算法“LVMapper",提出了动态阈值、启发式验证、种子索引等创新的方法。该算法能够有效检测在代码中多处的增加、删除以及分散性修改,同时非常适合于对大规模代码数据集进行检测。在8个真实开源项目数据集上计算测试表明了 LVMapper算法的大差异代码克隆检测能力明显优于已有的先进检测工具(例如SourcererCC、CCAligner、Oreo等),而在业界公认的基准测试代码数据集BigCloneBench上的实验表明LVMapper在传统的级别1至级别3克隆的克隆检测中召回率、精确率与这些工具相当。同时,LVMapper已实现对2.5亿行代码的代码库进行克隆的有效检测,具有优异的可扩放性能。2.差异代码克隆度量分析利用差异克隆检测工具LVMapper对软件系统进行检测,检测出的代码克隆数据规模相比于现有克隆检测工具增加了数倍以上,因此对于大规模代码克隆数据的理解和利用成为了一个具有挑战性的问题。而已有的研究工作提出的度量指标较为单一,且存在可分析的差异克隆数据不足的问题。故亟需研究一套面向大规模代码克隆数据度量分析指标,以更好地用于维护软件和提升软件质量的工作中。本文基于差异代码克隆检测工具,从多个维度创新设计并提出了差异代码克隆的度量分析指标,包括克隆程度度量、克隆结构度量、克隆演化度量的多个角度指标。通过对不同规模(代码行数为6万至280万行不等)、不同语言(Java和C语言)、同一软件的三个不同版本的开源、软件系统进行定量分析,发现这些指标从不同的角度反映出了软件系统的质量。本文将差异克隆度量分析工具与差异克隆检测工具LVMapper集成到一起,使得克隆的检测和度量分析更加便捷与高效,能够为软件开发提供指导和参考。3.基于差异代码克隆的代码补全提示编程效率对软件开发至关重要,然而已有的大部分代码补全工具只能提供下一行语句的补全,少数以Facebook公司开发的Aroma为代表的工具可以补全推荐多行代码,但是它们的不足在于代码结构和特征的提取不够全面,计算成本也较高。基于差异代码克隆检测算法LVMapper,本文进一步提出了一种新的代码补全提示算法CodeWeaver。程序员只需要写出关键代码或代码框架,本算法就可以快速在代码库中通过差异克隆搜索筛选出候选的代码块,自动补全提示出完整的代码块,代码开发的效率和质量会大幅提升。实验结果表明,使用代码库中存在的代码抽样片段作为输入,CodeWeaver的Top-10召回率为96%以上;使用程序问答网站上提取的代码片段作为输入,CodeWeaver对于93%以上的输入都能有效给出推荐补全代码,平均单次代码补全提示时间为0.58秒。此外,它在已有工具采用的公开数据集上表现最佳,优于Aroma等现有工作。综上,本文的三项研究工作可以分为两个方面:第一个是差异代码克隆检测算法的研究,第二个是差异代码克隆检测的下游应用研究。本文的前两项研究工作已应用于与华为公司的合作项目中,相关工具已用于软件开发和优化工作中。
陈昊[2](2021)在《基于实例合成的继承冗余代码异味检测》文中研究表明在软件的整个生命周期过程中,为了满足用户不断变化的产品需求,开发人员经常经常在时间压力下进行软件升级与维护,从而导致代码异味的产生。通常,这些异味会对软件造成极大的隐患,引起了学术界和工业界的高度关注。继承冗余是危害最严重的代码异味之一,并且在代码中出现的频率较高。然而,此种异味却很少被研究,主要因为存在两个挑战:(1)数据集的缺失(2)继承冗余代码异味的检测规则较难设计。针对上述问题,本文提出了一个框架能够有效地生成继承冗余代码异味数据实例,并且可以有效地检测异味。具体内容包括:(1)针对数据集缺失的问题,提出了一种继承冗余代码异味实例合成的算法,算法通过将输入的高质量源代码根据异味特性进行改造,从而构建出存在异味的代码片段。算法首先将源代码转化成抽象语法树(AST),然后通过操作语法树上的节点,创建出源码中并不存在的继承关系,从而得到具有继承冗余异味的实例数据。(2)针对继承冗余代码异味检测规则难以设计的问题,本文提出了一种基于AdaBoost的检测模型。模型首先通过现有工具计算代码度量,将其作为数据的属性特征,然后根据生成的异味数据集来训练检测模型,并将训练好的模型在真实数据集下进行异味的识别,最后根据得到的模型可以得到对继承冗余代码异味检测最重要的度量集合。为了评估该算法的有效性,针对异味实例合成算法,本文采用的数据集来源于四个高质量版本的开源项目。通过人工校验算法生成的实例表明,该算法可以有效地生成异味数据集,有效地解决数据集缺失的问题。针对异味检测模型,本文采用的AdaBoost模型各项指标均优于其他两个最常用的机器学习模型,并且通过在人工标注的真实数据集上进行验证也表明,本文提出的模型的检测效果也显着优于已有的检测工具。
张德浩[3](2021)在《复用开源代码检测方法的研究》文中指出复用开源代码是软件开发中常见的行为,可以减少软件开发的时间和人力成本。与此同时,复用开源代码也可能带来开源漏洞和违反开源许可等问题,因此有必要检测软件中复用的开源代码。现有基于相似性的复用代码检测方法常常检出大量的偶然克隆代码,这些偶然克隆代码并非复用代码,而目前很少有复用代码检测方法考虑到这一因素。对此,本文从代码的词法和程序依赖图两方面研究复用开源代码的检测。主要工作和贡献包括:(1)基于词法的复用开源代码检测方法研究针对基于词法相似性的复用代码检测方法无法准确区分复用代码和偶然相似代码的问题,使用语句行和标识符这两种词法成分,提出一种基于语句行和标识符频率的复用开源代码检测方法。该方法对被测代码和开源代码库,首先使用克隆检测工具获取克隆函数,对每对克隆函数对提取克隆语句行和共用标识符,然后使用依据克隆代码行和共用标识符在开源代码库中出现频率的复用度量指标,判定每对克隆函数是否为复用,其中设计的度量指标相比基于逆文档频率的度量进一步增加低频特征权重、减少高频特征权重。在有标注数据集上的实验结果表明,提出方法的F1值为84.2%,高于使用基于逆文档频率的方法的F1值。在真实软件上的实验结果也表明提出的方法总体上比基于逆文档频率的方法具有更高的准确性。使用提出的方法对相似非复用代码片段的分类与成因进行分析,结果说明相似代码不一定是复用代码。(2)基于程序依赖图的复用开源代码检测方法研究针对现有研究计算程序依赖图(PDG)的子图频率时复杂度高的问题,提出一种基于PDG子图频率的复用开源代码检测方法。首先对开发软件和开源代码库之间由克隆检测工具获取的每对克隆函数提取PDG,然后从PDG中提取两种特定结构的子图——Ⅰ形子图和X形子图,它们的匹配无需复杂的通用图同构判定算法。接着将提取的子图分别进行编码,最后计算两函数之间相同的子图编码在开源代码库中的频率,根据频率计算两函数的复用度量值,判定两函数是否为复用。在有标注数据集上的实验结果表明,提出方法的F1值为82.4%,且提出的方法避免了现有方法的高复杂度问题。在真实软件上的实验结果表明,提出的方法与基于词法的复用检测方法有较强的互补性。使用提出的方法对相似代码中非复用结构的分类与成因进行分析,结果说明相似的结构不一定反映代码的复用。
舒俊宜[4](2021)在《一种基于可信执行环境的机密计算框架设计与实现》文中提出全球数据体量呈现爆发式增长,基于数据的新应用价值与日俱增,因此数据也被视为数字经济的“石油”。同时,数据的所有权、使用权、隐私权、收益权等各项权利的保护成为了研究热点。区块链的出现为去中心化环境下数据权利管控提供了一种新的解决思路。区块链通过智能合约将全部状态记录于账本上并全网存储达到数据和计算的可信。但涉及个人隐私或商业机密的数据直接上链存储,会不可避免地会损害数据的机密性。如何在区块链上实现机密数据的计算是区块链应用中的重大问题之一。可信执行环境(Trusted Execution Environment,TEE)作为一种新技术,通过基于硬件的隔离机制,能够有效保护数据的使用过程。面向机密计算的场景,重点需要考虑安全性和访问透明性。在安全性方面,机密数据的计算过程应该不可窥探、不可篡改;在访问透明性方面,通过智能合约对机密数据使用逻辑的开发应该尽量对开发者透明、易用。针对如何在区块链上实现机密计算的问题,本文设计与实现了一种机密计算框架Teetract。首先,Teetract提供了一个基于可信执行环境的机密合约执行器,通过安全的密钥传输和机密数据的加解密机制,在合约引擎工具链的支持下,使得来自于多方的机密数据可以在机密合约执行器中被透明地解密、使用、加密,满足了机密计算框架的安全性要求。同时,Teetract提供了服务于机密合约执行器的编程框架,使得开发者可以基于现在编程方式进行最小化的修改就能完成机密合约的编写,实现了对涉及机密数据的方法进行加密算法配置以及透明地对返回结果进行使用,满足了机密计算框架的访问透明性要求。实例研究和性能测试结果表明本框架可以满足功能性和性能需要。
刘聪[5](2021)在《基于软件网络的jBPM4.4日志子系统软件体系结构分析工具设计与实现》文中研究表明针对工作流管理系统的日志子系统软件质量评估问题,本研究设计并实现了软件体系结构的分析工具。作为工作流软件开发平台之一,本课题选择jBPM4.4的日志子系统log4j的软件体系结构进行了分析,对该子系统的软件网络结构进行了研究,通过设计实现相关工具,在教务管理系统上进行了应用。具体为以下几个方面:1、从软件网络的角度,分析了jBPM4.4日志子系统的源码,阐述了日志子系统的特点,归纳总结了其核心功能,获取了jBPM4.4日志子系统的软件体系结构,并通过复杂网络的思想对日志子系统进行社区划分。2、利用igraph的网络分析功能,通过R与JAVA的交互,在My Eclipse平台上,完成了日志子系统分析工具的开发。该工具可以合理划分日志子系统模块,计算模块化度,并初步评价了其软件网络结构的强度。3、利用上述分析工具,本研究以基于jBPM4.4的教务管理系统(EMIS)为例,分析了其日志子系统的软件体系结构,并根据分析的反馈信息对系统进行完善。结合对日志子系统的分析研究,以“高内聚低耦合”为方向,对教务管理系统进行改进。通过计算改进前后日志子系统的模块化度验证分析工具的作用。
赵玉洁[6](2021)在《基于逆向分析的二进制代码混淆保护方法研究》文中进行了进一步梳理二进制代码是计算机软件存在的一种重要形式。在缺乏源代码的情况下,很多不法分子试图分析二进制代码以窃取软件核心算法。代码混淆是一种保持程序语义不变,通过转换程序代码形式以增加逆向分析难度的软件保护技术。在代码混淆领域研究者们普遍认为并不存在绝对安全的代码混淆算法。因此,尽管如何构造混淆算法已经被研究了很多年,但是可混淆规模复杂性和混淆有效性验证依然是研究热点。通常使用“强度、隐蔽性、抗攻击性、性能开销”四个指标评估混淆算法的有效性,分别表征混淆后代码被安全专家理解和分析的程度,被发现的难易程度,抵御自动化反混淆的能力,引入的额外性能开销。逆向分析是为获得程序内部模块细节及模块间关系而对程序进行分析的过程。代码混淆本质上就是为了抵御逆向分析,二者相互制约又彼此促进。因此,对混淆后程序展开逆向分析,如混淆评估、混淆检测和反混淆,有助于指导混淆算法设计,提升混淆强度、隐蔽性和抗攻击性。然而,从逆向分析角度指导混淆算法设计面临如下问题:(1)现有代码混淆强度的量化评估指标大多基于软件工程领域复杂性度量,评估维度比较单一;(2)现有二进制代码混淆检测方法一般针对特定混淆类型,且未考虑对多重混淆的检测。(3)现有反混淆算法大都假设已知混淆代码片段所在位置,并且受专家经验和领域知识的限制,导致反混淆效率较低。(4)现有虚拟化混淆算法移植到移动应用上时,存在安全漏洞并且执行效率低下。本文从逆向分析的角度入手,分别从混淆评估、混淆检测、反混淆、性能与安全平衡四个方面开展研究。主要工作和贡献包括:提出了一种面向逆向分析的混淆强度评估方法及其度量指标,拓展了代码混淆强度量化评估的维度。该方法将程序属性抽象为指令、控制流和数据流,分析论证了在对混淆后程序实施逆向分析过程中指令是控制流和数据流的基础。分别从语法和语义的角度提出了指令熵和指令N-gram两个度量指标量化混淆强度。实验中使用两种混淆工具、八种混淆算法验证这两个评估指标的有效性。实验结果表明指令熵和指令N-gram能够有效量化混淆算法强度,并可用于不同混淆算法之间的对比。提出了一种基于程序语义信息的混淆检测方法OBFEYE,实现了对多种单一混淆和多重混淆的高精度检测。该方法借鉴自然语言处理的思想,将指令、基本块、程序分别看做单词、句子、文档,采用Skip-gram、CNN、LSTM构建的语义神经网络模型生成程序上下文语义信息的表征向量,通过分类器实现对混淆的有效检测。实验中OBFEYE的预测精度至少为83%,最高可达98%。实验结果表明OBFEYE是一个高精度二进制代码混淆检测工具。提出了一种基于程序合成技术的代码反混淆方法Auto Simpler,提高了目标程序中混淆代码片段的定位精度和反混淆效率。该方法采用机器学习来识别混淆代码片段,打破现有工作对混淆代码片段已知的假设。通过将程序合成与嵌套蒙特卡洛搜索算法相结合,快速合成与目标程序语义相似但更容易理解的程序,提升了反混淆的效率。实验中Auto Simpler对混淆代码片段的定位准确率为99.29%,反混淆成功率在90%以上,且处理一个目标程序的平均时间约21s。与当前最先进的反混淆工具相比,执行效率提升了75%,准确率提高了5%。实验结果表明Auto Simpler是一个执行效率很高并保持一定成功率的自动化数据反混淆工具。提出了一种基于编译时虚拟化的代码混淆方法Dex2VM,解决了虚拟化混淆算法在移动设备上应用时存在安全漏洞并且执行效率低下的问题。该方法在预编译阶段筛选DEX字节码中执行开销较大的函数,利用反编译引擎将其转换为Native层执行速率更高的C/C++代码,解决性能问题。在编译阶段依赖LLVM编译框架的前端,将上一步生成的C/C++代码转换为LLVM的中间代码LLVMIR,使用LLVM的后端对LLVMIR实施虚拟化,解决安全问题。实验分别从抗攻击性、隐蔽性、强度、性能开销、功能一致性五个维度验证混淆算法的有效性。实验结果表明Dex2VM是一个抗攻击性强、隐蔽性好、强度大、开销适度的代码安全保护方法。
王义晨[7](2021)在《基于面向对象方法的jBPM4.4主控子系统软件体系结构分析工具的设计与实现》文中指出针对工作流管理系统的主控子系统软件质量评估问题,本课题以j BPM4.4(Java Business Process Management)开源工作流系统平台为例,重点针对其主控子系统,基于面向对象方法分析该子系统的软件体系结构,并设计实现了相应的分析工具,同时将该工具应用于教务管理信息系统(Educational Management Information System,EMIS)中,具体完成了以下几方面的工作:1、通过对j BPM4.4主控子系统源码的分析研究,对其软件体系结构的特点进行分析说明。基于面向对象方法,从源码的角度利用逆向软件工程方法进行研究,获取整个主控子系统的软件体系结构特征。2、利用MOOD(Metrics for Object-Oriented Design)技术,对主控子系统进行了分析研究,即通过相应的度量指标对该主控子系统进行度量分析,从而建立软件体系结构分析模型。基于该分析模型,设计开发了分析工具,该工具从面向对象的角度对主控子系统进行度量分析。3、利用上述分析工具,本课题以EMIS为应用目标,通过对其源码的分析,将EMIS主控子系统与j BPM4.4主控子系统的代码的MOOD计算结果进行比较,发现EMIS主控子系统耦合度过高。进而得出了改进EMIS的主控子系统软件体系结构的方案,即降低该子系统代码的耦合度。通过改进,使其软件体系结构更加符合面向对象软件“高内聚,低耦合”的特性。实验结果表明本课题设计的分析工具具有一定的软件体系结构分析作用。
熊禹[8](2020)在《针对Java语言的源代码同源性分析技术研究与实现》文中提出随着计算机行业的不断发展,纷繁复杂的计算机软件系统不断涌现,这些软件作为人们日常的“必需品”已经融入到了我们生活、工作、学习中的方方面面,与此同时,社会对软件开发人员的需求也呈逐年递增的趋势。源代码作为软件的核心是开发者付诸辛勤汗水的劳动成果,也是智慧与艺术的结晶。然而一些软件在功能上存在的通用性使得不同软件间不仅在设计层面上存在抄袭,甚至其底层代码也存在互相抄袭的现象,由此引发的软件侵权案件也屡见不鲜。源代码的同源性分析技术可以用来比对代码之间的相似程度,该技术在代码抄袭、软件知识版权保护、漏洞挖掘等多个领域都有广泛的应用。本文在系统研究了现有方法和工具的基础上,提出了针对Java语言源代码的基于序列和基于语法树的两种改进的同源性分析方法。方法一是基于序列的比对方法。该方法在源码前期预处理上除了通用的预处理机制外,还结合了 Java语言自身特点,综合使用了编译与反编译、代码优化、以及采用代价较小的操作语法树的方式对Java语言的多个特殊语法进行代码变形处理以提升其对不同语法相同语义情况下的同源性分析能力。同时还借助相似性度量模型设计了对应的过滤机制来减少候选比对集合的大小。最后结合最长公共子序列和最长公共子串算法在保证检出率的同时提升算法对长序列的检测效率。方法二针对源代码语法树级的比对算法进行了优化,在传统的树的编辑距离算法上提出了基于TF-IDF的带权树的编辑距离算法。该算法对语法树中不同节点在代码中的重要程度进行了权值计算,并将树中对应节点的编辑操作的代价与节点的权值相关联。由于考虑了树中不同节点的重要程度,与传统的固定权值或经验权值的树的编辑距离算法相比,本文的方法有更好的适应性。
徐文远[9](2020)在《基于机器学习的Java静态漏洞扫描系统的设计与实现》文中研究说明随着软件系统应用领域不断扩大,对于软件和信息系统的攻击日益增多,人们对软件安全的要求不断提升。为此,在软件开发和测试过程中,工程师使用静态代码分析系统对软件代码进行安全性扫描,并评估分析报告,只有通过安全性评估的软件才可以部署至线上运行。然而,传统代码分析是保守的,为不遗漏安全风险,系统往往会抛出大量误报,这些误报增加了安全工程师工作量,进而对软件开发进度产生影响。随着机器学习领域的发展,学术界已将机器学习算法运用于代码分析以发现漏洞或降低误报,然而这些工作只适用于小规模程序,对于在大规模应用还存在着种种问题。本系统旨在将学术研究成果应用于工业界实际项目中,面向Web开发常用的Java语言,利用污点分析、程序切片和BLSTM为开发或安全工程师提供更准确的代码扫描服务,进而减轻用户工作量,保证软件开发进度和质量。在污点分析方面,本系统利用Find Security Bugs的大量规则,保证低漏报的同时,对该工具的输出进行改进,使之反馈更详细的污点传播路径,增强报告可解释性;接着,本系统利用程序切片技术,对每一个漏洞实例进行代码切片,为了保证切片效率和稳定性,本文针对实际Jar包对切片器进行优化并提出分段切片思想,对于一个漏洞报告,将其对应的污点传播路径分解为小的污染流片段集合,再对每一个片段进行后向程序切片;最后,系统通过BLSTM模型,对预处理后的漏洞切片集合做预测,根据切片的预测结果推导漏洞实例本身是否为误报。本系统目前已代替传统污点传播分析引擎在线上部署,同时实验结果表明,本系统可以在可接受的扫描时间下,取得更加准确的扫描结果。在效率上,本系统优化传统切片,每个项目的整体扫描时间不超过1小时,在准确性上,本系统误报预测精确率达90.53%,即相对于单纯的污点传播,本系统在遗漏少量真实漏洞的前提下,排除25.44%误报,大大减轻安全运营人员的代码审计工作量,从而在整体上加快软件开发过程。
范佳杰[10](2020)在《编程考试系统代码质量度量及相似度检测子系统的设计与实现》文中研究表明在计算机相关课程的教学中,教师常常会安排一些编程考试来考察学生对课程的掌握程度。某团队为此开发了一个具有代表性的编程考试系统。但是该系统存在着诸多不足。首先,该系统只评判代码的正确性。这就导致学生往往只关注怎么得到正确结果,很少去关注所写代码的质量。其次,线上考试使得教师不需要参与阅卷过程,如果不耗费大量的人力来一一比对代码,就很难发现考试中的抄袭情况。目前已有的其他同类系统如HUSTOJ等,也存在着只评判代码正确性的问题,虽然可以进行一定程度上的代码相似度检测,但是检测的结果十分简略,不利于教师进一步了解具体的抄袭情况。为了缓解以上问题,本文设计开发了代码质量度量及相似度检测子系统,旨在帮助学生养成良好的编程习惯,提高编程水平。同时也帮助教师节省大量的工作量,及时发现考试中的抄袭情况。系统采用了前、后端分离的开发方式。前端主要使用Nuxt.js框架进行开发,后端则采用Spring Boot开发框架。在项目开发过程中还使用了Sonar Qube、Rabbit MQ、Hibernate、ANTLR和Event Bus等技术和工具。系统的需求分析和设计部分,分析了系统的功能性需求和非功能性需求,描述了系统的总体设计思路、模块划分情况以及各模块的顺序图、核心类图和数据库设计等方面。代码质量度量及相似度检测子系统主要分为三个模块,分别是质量度量模块、定时任务服务和相似度检测服务。其中质量度量模块负责将学生代码进行质量度量并展示度量数据。定时任务服务则负责定时任务的管理。相似度检测服务负责对学生考试代码进行相似度检测并展示检测结果。在系统的具体实现部分,阐述了各个模块的详细实现细节,展示了部分关键代码和界面截图,并介绍了系统的测试情况。最后做了总结并描述了系统未来可以改进的地方。目前系统已经上线运行,运行情况稳定,能够满足教师和学生的基本需求,用户反馈良好。
二、一种Java程序度量工具的设计实现(论文开题报告)
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
三、一种Java程序度量工具的设计实现(论文提纲范文)
(1)差异代码克隆的检测算法研究及其应用(论文提纲范文)
摘要 |
ABSTRACT |
第1章 绪论 |
1.1 研究背景及意义 |
1.2 问题提出及发展 |
1.2.1 差异代码克隆概念 |
1.2.2 差异代码克隆检测技术 |
1.2.3 差异代码克隆应用 |
1.3 本文研究内容 |
1.3.1 差异代码克隆检测 |
1.3.2 差异代码克隆度量分析 |
1.3.3 基于差异代码克隆的代码补全提示 |
1.4 论文组织 |
第2章 相关概念及研究现状 |
2.1 术语和概念 |
2.1.1 代码克隆概念 |
2.1.2 代码克隆分类 |
2.1.3 克隆检测粒度 |
2.2 差异代码克隆检测方法 |
2.2.1 非语义方法 |
2.2.2 语义方法 |
2.2.3 机器学习方法 |
2.3 差异代码克隆相关应用 |
2.3.1 代码克隆度量分析 |
2.3.2 代码补全提示 |
2.4 本章小结 |
第3章 差异代码克隆检测方法 |
3.1 研究问题 |
3.2 研究动机 |
3.3 差异克隆检测算法 |
3.3.1 算法框架 |
3.3.2 词法分析过程设计 |
3.3.3 索引构建过程设计 |
3.3.4 克隆检测过程设计 |
3.4 实验结果及讨论 |
3.4.1 参数选取实验 |
3.4.2 大差异代码克隆检测实验 |
3.4.3 一般克隆检测实验 |
3.4.4 扩放性实验 |
3.5 本章小结 |
第4章 差异代码克隆度量分析 |
4.1 问题的提出 |
4.2 差异代码克隆度量分析算法 |
4.2.1 度量指标设计 |
4.2.2 度量算法实现 |
4.3 实验结果及讨论 |
4.3.1 不同软件的对比分析实验 |
4.3.2 不同版本的软件对比分析实验 |
4.4 本章小结 |
第5章 基于差异代码克隆的代码补全提示 |
5.1 问题的提出 |
5.2 代码补全提示算法 |
5.2.1 算法框架 |
5.2.2 预处理过程设计 |
5.2.3 克隆搜索过程设计 |
5.2.4 打分排序过程设计 |
5.3 实验结果及讨论 |
5.3.1 代码库的收集构建 |
5.3.2 召回率检测实验 |
5.3.3 性能检测实验 |
5.3.4 与已有工作的对比实验 |
5.3.5 时间性能实验 |
5.4 本章小结 |
第6章 总结 |
6.1 本文工作 |
6.2 本文贡献与创新之处 |
6.3 下一步工作 |
参考文献 |
致谢 |
在读期间发表的学术论文与取得的研究成果 |
在读期间参与的研究项目 |
(2)基于实例合成的继承冗余代码异味检测(论文提纲范文)
摘要 |
Abstract |
1 绪论 |
1.1 研究背景与意义 |
1.2 本文研究挑战 |
1.2.1 数据集缺失 |
1.2.2 检测规则复杂 |
1.3 本文主要研究内容 |
1.4 本文主要贡献 |
1.5 本文组织结构 |
1.6 本章小结 |
2 相关工作 |
2.1 基于人工的检测方法 |
2.2 基于可视化的检测方法 |
2.3 基于规则的检测方法 |
2.4 基于搜索的检测方法 |
2.5 基于文本的检测方法 |
2.6 基于机器学习的检测方法 |
2.7 本章小结 |
3 继承冗余代码异味实例合成算法 |
3.1 研究动机 |
3.2 相关技术 |
3.2.1 继承冗余代码异味样例 |
3.2.2 抽象语法树(AST) |
3.3 基于AST的异味实例合成算法 |
3.3.1 源码AST转化 |
3.3.2 异味候选类过滤 |
3.3.3 候选类继承关系生成 |
3.4 实验设置 |
3.4.1 实验环境 |
3.4.2 实验数据集 |
3.4.3 评估方法 |
3.5 实验结果 |
3.5.1 异味合成数据集有效性 |
3.5.2 异味合成实例分析 |
3.6 验证威胁 |
3.7 本章小结 |
4 继承冗余代码异味检测算法 |
4.1 研究动机 |
4.2 相关技术 |
4.2.1 AdaBoost |
4.2.2 代码异味检测工具 |
4.3 基于AdaBoost的异味检测算法 |
4.3.1 度量提取 |
4.3.2 检测模型训练 |
4.3.3 继承冗余代码异味检测 |
4.4 实验设置 |
4.4.1 实验环境 |
4.4.2 实验数据集 |
4.4.3 评估指标 |
4.5 实验结果 |
4.5.1 AdaBoost检测模型有效性 |
4.5.2 检测模型在真实项目的性能 |
4.5.3 度量重要性分析 |
4.6 验证威胁 |
4.7 本章小结 |
结论 |
参考文献 |
攻读硕士学位期间发表学术论文情况 |
致谢 |
(3)复用开源代码检测方法的研究(论文提纲范文)
摘要 |
ABSTRACT |
第1章 绪论 |
1.1 研究背景及意义 |
1.2 研究现状 |
1.3 本文研究内容 |
1.3.1 基于词法的复用开源代码检测方法研究 |
1.3.2 基于程序依赖图的复用开源代码检测方法研究 |
1.4 论文组织 |
第2章 相关知识和现有研究 |
2.1 代码克隆 |
2.1.1 代码克隆的分类 |
2.1.2 代码克隆检测使用的特征和方法 |
2.2 代码复用 |
2.2.1 代码复用的分类 |
2.2.2 代码复用与代码克隆的关系 |
2.2.3 代码复用检测原理及现有方法 |
2.2.4 代码复用检测的应用 |
2.2.5 代码复用实证研究 |
2.3 Zipf定律和词频-逆文档频率 |
2.3.1 Zipf定律 |
2.3.2 词频-逆文档频率 |
2.3.3 Zipf定律和词频-逆文档频率在代码相似性分析中的应用 |
2.4 本章小结 |
第3章 基于词法的复用开源代码检测方法研究 |
3.1 问题描述 |
3.2 研究动机 |
3.3 方法设计 |
3.3.1 克隆函数检测 |
3.3.2 克隆函数特征提取 |
3.3.3 克隆函数过滤 |
3.3.4 度量方法设计 |
3.4 实验结果与分析 |
3.4.1 对比方法 |
3.4.2 实验一: 有标注数据集上的评估 |
3.4.3 实验二: 真实软件上的评估 |
3.4.4 实验三: 相似非复用代码片段的分类与成因分析 |
3.5 本章小结 |
第4章 基于程序依赖图的复用开源代码检测方法研究 |
4.1 问题描述 |
4.2 研究动机 |
4.2.1 现有可用于计算频率的子图种类 |
4.2.2 Ⅰ形子图和X形子图 |
4.3 方法设计 |
4.3.1 程序依赖图提取 |
4.3.2 Ⅰ形子图和X形子图提取 |
4.3.3 Ⅰ形子图的编码 |
4.3.4 X形子图的编码 |
4.3.5 度量方法设计 |
4.4 实验结果与分析 |
4.4.1 实验一: 有标注数据集上的评估 |
4.4.2 实验二: 真实软件上与基于词法的复用检测方法的效果对比 |
4.4.3 实验三: 相似代码中非复用结构的分类与成因分析 |
4.5 本章小结 |
第5章 总结 |
5.1 本文工作 |
5.2 本文贡献与创新之处 |
5.3 进一步工作 |
参考文献 |
致谢 |
在读期间发表的学术论文与取得的研究成果 |
(4)一种基于可信执行环境的机密计算框架设计与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 引言 |
1.1 研究背景 |
1.1.1 问题的提出 |
1.1.2 问题的挑战 |
1.2 国内外研究现状 |
1.2.1 可信执行环境及其他数据机密性保护技术 |
1.2.2 区块链数据机密性保护的相关研究 |
1.3 本文的目标和主要工作 |
1.4 本文的组织结构 |
第二章 相关软硬件技术 |
2.1 北大数瑞大数据区块链 |
2.2 可信执行环境Intel Software Guard Extensions(SGX) |
2.3 库操作系统Graphene |
2.4 本章小结 |
第三章 Teetract机密计算框架的设计 |
3.1 框架需求分析 |
3.2 框架总体设计 |
3.3 机密智能合约编程框架设计 |
3.3.1 加密方法注解的设计 |
3.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.5.3 机密数据加解密的设计 |
3.6 本章小结 |
第四章 Teetract机密计算框架的实现 |
4.1 机密智能合约编程框架实现 |
4.1.1 加密方法注解的实现 |
4.1.2 机密计算方法注解的实现 |
4.1.3 密码学工具的实现 |
4.2 机密智能合约构建和部署工具集实现 |
4.2.1 智能合约分拆工具的实现 |
4.2.2 密钥服务器注册合约的实现 |
4.2.3 配置文件生成工具的实现 |
4.3 机密智能合约运行环境实现 |
4.3.1 合约执行引擎的实现 |
4.3.2 密钥传输的实现 |
4.3.3 机密数据加解密的实现 |
4.4 本章小结 |
第五章 实例研究和性能测试 |
5.1 实验环境 |
5.2 实例研究 |
5.2.1 百万富翁问题 |
5.2.2 基于个人信用数据的联合征信 |
5.3 性能测试 |
5.3.1 指标和测试设计 |
5.3.2 实验结果及分析 |
5.4 实验小结 |
第六章 结束语 |
6.1 本文工作总结 |
6.2 未来工作展望 |
参考文献 |
致谢 |
(5)基于软件网络的jBPM4.4日志子系统软件体系结构分析工具设计与实现(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.3 论文研究内容与总体结构 |
第二章 相关理论与技术 |
2.1 工作流相关理论 |
2.2 jBPM4.4 |
2.3 日志框架 |
2.4 软件网络 |
2.5 社区发现 |
第三章 日志子系统软件体系结构分析 |
3.1 系统源码数据统计 |
3.2 系统源码功能分析 |
3.3 系统软件体系结构分析 |
第四章 分析工具的设计与实现 |
4.1 工具的度量方法 |
4.2 工具架构概述 |
4.3 工具功能 |
4.4 工具的实现 |
第五章 分析工具在EMIS上的应用 |
5.1 EMIS分析 |
5.2 EMIS改进 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
附录 |
致谢 |
个人简介 |
(6)基于逆向分析的二进制代码混淆保护方法研究(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.0 研究背景与意义 |
1.1 代码混淆与逆向分析 |
1.1.1 代码混淆 |
1.1.2 逆向分析 |
1.1.3 代码混淆与逆向分析的关系 |
1.2 研究现状与主要问题 |
1.2.1 混淆评估 |
1.2.2 混淆检测 |
1.2.3 反混淆 |
1.2.4 安全与性能均衡 |
1.3 研究内容及关键挑战 |
1.3.1 研究思路 |
1.3.2 研究内容及挑战 |
1.4 本文创新 |
1.5 章节安排 |
第二章 面向逆向分析的混淆强度评估方法 |
2.1 引言 |
2.2 代码混淆强度研究基础 |
2.2.1 代码混淆复杂性 |
2.2.2 指令出现频次分析 |
2.3 面向逆向分析的混淆强度分析建模 |
2.4 代码混淆强度理论分析 |
2.4.1 有关形式化定义 |
2.4.2 理论分析 |
2.5 混淆强度表征指标 |
2.5.1 指令熵 |
2.5.2 指令N-gram |
2.6 实验分析与论证 |
2.6.1 实验设置 |
2.6.2 指令熵实验与分析 |
2.6.3 指令N-gram实验与分析 |
2.7 对降低混淆强度的指导分析 |
2.8 小结 |
第三章 基于程序语义信息的混淆检测方法 |
3.1 引言 |
3.2 语义神经网络混淆检测研究基础 |
3.2.1 混淆后代码的特征分析 |
3.2.2 神经网络可行性分析 |
3.2.3 程序语义神经网络模型 |
3.3 基于程序语义信息的混淆检测方法 |
3.3.1 学习阶段 |
3.3.2 检测阶段 |
3.4 程序语义信息的特征表达 |
3.4.1 基于skip-gram的指令嵌入 |
3.4.2 基于CNN的基本块嵌入 |
3.4.3 基于LSTM的程序嵌入 |
3.4.4 基于程序语义信息的混淆分类 |
3.5 混淆标注数据集自动化生成方法 |
3.5.1 混淆样本构造算法 |
3.5.2 混淆样本有效性验证 |
3.5.3 OOV指令替换方法 |
3.5.4 基本块切片分析 |
3.6 实验分析与验证 |
3.6.1 实验设置和评估方法 |
3.6.2 实验数据集 |
3.6.3 OOV指令预处理实验与分析 |
3.6.4 语义神经网络超参选择实验与分析 |
3.6.5 混淆检测准确性的实验与分析 |
3.6.6 混淆检测效率实验与分析 |
3.6.7 与其他机器学习算法对比实验 |
3.7 对提升混淆隐蔽性的指导分析 |
3.8 小结 |
第四章 基于程序合成技术的代码反混淆方法 |
4.1 引言 |
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.4.3 混淆分类器 |
4.5 基于程序合成技术的反混淆算法 |
4.5.1 合成算法描述 |
4.5.2 输入输出采样 |
4.5.3 语法约束 |
4.5.4 候选程序的随机输出 |
4.5.5 合成结果相似度评估 |
4.6 基于嵌套蒙特卡洛搜索的程序空间降维算法 |
4.6.1 搜索算法描述 |
4.6.2 搜索节点的选择 |
4.6.3 程序合成的模拟 |
4.6.4 反向传播更新节点收益 |
4.7 基于程序合成技术的反混淆方法扩展 |
4.7.1 混淆组件集选择指导原则 |
4.7.2 面向数据流的组件选择 |
4.7.3 面向控制流的组件选择 |
4.7.4 面向虚拟化的组件选择 |
4.7.5 程序合成算法扩展分析 |
4.8 实验分析与验证 |
4.8.1 实验设置与评估方法 |
4.8.2 混淆代码片段定位实验与分析 |
4.8.3 反混淆结果正确性分析 |
4.8.4 反混淆成功率和执行效率实验与分析 |
4.8.5 与Syntia的对比实验与分析 |
4.8.6 输入输出采样数设置实验与分析 |
4.8.7 反混淆结果可理解性实验与分析 |
4.9 对提升抗攻击性的指导分析 |
4.10 小结 |
第五章 基于编译时虚拟化的代码混淆方法 |
5.1 引言 |
5.2 虚拟化的安全威胁和性能压力分析 |
5.2.1 Decode-dispatch模式简介 |
5.2.2 Decode-dispatch模式的攻击模型 |
5.2.3 编译时虚拟化可行性分析 |
5.3 基于编译时虚拟化的代码混淆方法 |
5.3.1 编译时虚拟化混淆原理 |
5.3.2 被保护程序的执行流程 |
5.4 基于预编译的性能提升方法 |
5.4.1 函数执行占有率决策模型 |
5.4.2 Dex2C反编译引擎 |
5.5 基于编译时虚拟化的抗攻击性方法 |
5.5.1 面向LLVMIR的虚拟化指令 |
5.5.2 调度程序和虚拟指令处理程序 |
5.5.3 编译时虚拟化抗攻击性分析 |
5.6 DECODE-DISPATCH调度模式隐藏算法 |
5.6.1 隐藏算法描述 |
5.6.2 编译时虚拟化隐蔽性分析 |
5.7 实验分析与验证 |
5.7.1 实验设置和评估方法 |
5.7.2 抗攻击性实验与分析 |
5.7.3 隐蔽性实验与分析 |
5.7.4 强度实验与分析 |
5.7.5 性能开销实验与分析 |
5.7.6 功能完整性验证实验与分析 |
5.8 小结 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
攻读博士学位期间取得的科研成果 |
致谢 |
作者简介 |
(7)基于面向对象方法的jBPM4.4主控子系统软件体系结构分析工具的设计与实现(论文提纲范文)
摘要 |
Abstract |
第一章 绪论 |
1.1 研究背景及意义 |
1.2 国内外研究现状 |
1.3 本课题主要创新点 |
1.4 技术路线和组织结构 |
第二章 相关技术 |
2.1 面向对象方法 |
2.2 软件体系结构 |
2.3 工作流技术 |
2.4 j BPM工作流引擎 |
第三章 主控子系统软件体系结构分析 |
3.1 主控子系统源码统计分析 |
3.2 主控子系统功能结构分析 |
第四章 分析工具设计与实现 |
4.1 MOOD模型分析 |
4.2 分析工具功能设计 |
4.3 分析工具开发 |
第五章 分析工具在EMIS中的应用 |
5.1 EMIS分析 |
5.2 EMIS改进 |
第六章 总结与展望 |
6.1 总结 |
6.2 展望 |
参考文献 |
附录一 |
附录二 |
致谢 |
个人简介 |
攻读硕士期间工作与成果 |
(8)针对Java语言的源代码同源性分析技术研究与实现(论文提纲范文)
摘要 |
ABSTRACT |
第一章 绪论 |
1.1 研究背景 |
1.2 国内外研究现状 |
1.3 论文主要内容 |
1.4 论文组织结构 |
1.5 本章小结 |
第二章 同源性分析相关研究工作综述 |
2.1 Java语言特性 |
2.2 源代码同源性分析技术 |
2.2.1 基于哈希的比对技术 |
2.2.2 基于文本的比对技术 |
2.2.3 基于token的比对技术 |
2.2.4 基于语法树的比对技术 |
2.2.5 基于图的比对技术 |
2.2.6 基于机器学习、深度学习的比对技术 |
2.3 编辑距离 |
2.4 TF-IDF技术 |
2.5 本章小结 |
第三章 基于代码变形和过滤机制的序列相似性比对 |
3.1 核心处理流程 |
3.2 源代码预处理机制 |
3.2.1 Java编译与反编译 |
3.2.2 代码优化技术 |
3.2.3 特殊语法变形机制 |
3.3 针对度量模型的过滤机制设计 |
3.3.1 常见的相似性度量模型 |
3.3.2 度量模型下的过滤机制设计 |
3.4 基于序列相似性的比对算法 |
3.4.1 基于动态规划的最长公共子序列算法 |
3.4.2 基于后缀数组的最长公共子串算法 |
3.5 本章小结 |
第四章 基于TF-IDF的带权树的编辑距离算法 |
4.1 构建语法解析树 |
4.2 语法树的剪枝 |
4.3 树节点TF-IDF值计算 |
4.4 剪枝树的相似性度量 |
4.5 表达式集合的相似性度量 |
4.6 综合相似性度量 |
4.7 本章小结 |
第五章 实验设计与结果分析 |
5.1 实验环境信息 |
5.2 比对方法和参数配置 |
5.3 评价指标 |
5.4 基于代码变形和过滤机制的序列相似性比对实验分析 |
5.4.1 源程序数据 |
5.4.2 预处理阶段实验结果比对分析 |
5.4.3 过滤机制实验结果比对分析 |
5.4.4 阈值选择实验结果分析 |
5.5 基于TF-IDF的带权树的编辑距离算法实验分析 |
5.5.1 固定权值与TF-IDF权值下的编辑距离实验分析 |
5.5.2 剪枝与非剪枝实验结果分析 |
5.6 本章小结 |
第六章 总结与展望 |
6.1 论文总结 |
6.2 研究展望 |
参考文献 |
致谢 |
攻读学位期间发表的学术论文目录 |
(9)基于机器学习的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 展望 |
参考文献 |
简历与科研成果 |
致谢 |
(10)编程考试系统代码质量度量及相似度检测子系统的设计与实现(论文提纲范文)
摘要 |
Abstract |
第一章 引言 |
1.1 项目背景 |
1.2 国内外研究现状 |
1.2.1 软件质量度量研究现状 |
1.2.2 代码相似度检测研究现状 |
1.3 本文主要工作内容 |
1.4 本文的组织结构 |
第二章 技术综述 |
2.1 Nuxt.js |
2.2 Spring Boot |
2.3 Sonar Qube |
2.4 Rabbit MQ |
2.4.1 技术简介 |
2.4.2 Rabbit MQ延迟消息 |
2.5 Hibernate |
2.6 ANTLR |
2.7 Event Bus |
2.8 本章小结 |
第三章 代码质量度量及相似度检测子系统的需求分析与设计 |
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.4 质量度量模块设计 |
3.4.1 顺序流程设计 |
3.4.2 核心类设计 |
3.4.3 数据库设计 |
3.5 定时任务服务设计 |
3.5.1 顺序流程设计 |
3.5.2 核心类设计 |
3.5.3 数据库设计 |
3.6 相似度检测服务设计 |
3.6.1 相似度检测算法设计 |
3.6.2 顺序流程设计 |
3.6.3 核心类设计 |
3.6.4 数据库设计 |
3.7 本章小结 |
第四章 代码质量度量及相似度检测子系统的实现 |
4.1 质量度量模块的实现 |
4.1.1 关键代码 |
4.1.2 运行界面 |
4.2 定时任务服务的实现 |
4.3 相似度检测服务的实现 |
4.3.1 关键代码 |
4.3.2 运行界面 |
4.4 系统的测试 |
4.4.1 测试准备 |
4.4.2 功能性测试 |
4.4.3 算法有效性测试 |
4.5 本章小结 |
第五章 总结与展望 |
5.1 总结 |
5.2 进一步工作展望 |
参考文献 |
致谢 |
四、一种Java程序度量工具的设计实现(论文参考文献)
- [1]差异代码克隆的检测算法研究及其应用[D]. 吴鸣. 中国科学技术大学, 2021(09)
- [2]基于实例合成的继承冗余代码异味检测[D]. 陈昊. 大连理工大学, 2021(01)
- [3]复用开源代码检测方法的研究[D]. 张德浩. 中国科学技术大学, 2021(08)
- [4]一种基于可信执行环境的机密计算框架设计与实现[D]. 舒俊宜. 北京大学, 2021(12)
- [5]基于软件网络的jBPM4.4日志子系统软件体系结构分析工具设计与实现[D]. 刘聪. 北方民族大学, 2021(08)
- [6]基于逆向分析的二进制代码混淆保护方法研究[D]. 赵玉洁. 西北大学, 2021
- [7]基于面向对象方法的jBPM4.4主控子系统软件体系结构分析工具的设计与实现[D]. 王义晨. 北方民族大学, 2021(08)
- [8]针对Java语言的源代码同源性分析技术研究与实现[D]. 熊禹. 北京邮电大学, 2020(04)
- [9]基于机器学习的Java静态漏洞扫描系统的设计与实现[D]. 徐文远. 南京大学, 2020(04)
- [10]编程考试系统代码质量度量及相似度检测子系统的设计与实现[D]. 范佳杰. 南京大学, 2020(04)