一种基于神经网络的功能代码评估方法和装置制造方法及图纸

技术编号:39831530 阅读:7 留言:0更新日期:2023-12-29 16:12
本申请公开了一种基于神经网络的功能代码评估方法和装置

【技术实现步骤摘要】
一种基于神经网络的功能代码评估方法和装置


[0001]本申请涉及计算机
,具体涉及一种基于神经网络的功能代码评估方法和装置


技术介绍

[0002]目前功能代码检测主要集中在代码书写的规范性

潜在安全漏洞等角度评估,未能从企业内部特定功能实现角度进行评估

主要表现在如下三方面:
[0003](1)
当前对研发人员编写的实现特定功能代码的检测多集中在功能测试后,开发阶段仅有人工的代码走查,不利于安全缺陷的提前发现,且检测的智能化水平较低

[0004](2)
当前特定功能代码特征信息的提取和检测,常使用程序容量法

机器码识别法等,缺乏一定灵活性和普适性,不适用于特定功能的检测

[0005](3)
当前人工智能中神经网络技术常应用在代码相似性和漏洞检测等方面,但在特定功能例如企业内部安全需求功能的代码评估方面的应用较少


技术实现思路

[0006]本申请的目的在于提出一种基于神经网络的功能代码评估方法和装置,以解决上述提及的一个或多个问题

[0007]依据本申请的第一方面,提出了一种基于神经网络的功能代码评估方法,包括如下步骤:
[0008]从实现特定功能的标准代码中获取正案例的目标代码片段,从研发人员编写的对应功能的实现代码中获取正案例的样本代码片段;
[0009]对所述正案例的目标代码片段和所述样本代码片段,通过相同的特征提取算法,分别提取代码片段中的程序容量和关键程序要素的特征数据形成七维特征向量,将所述七维特征向量归一化处理后,对应得到可供神经网络模型运算的正案例的标签特征向量和样本特征向量;
[0010]对构建的神经网络模型,使用所述正案例的标签特征向量作为标签值,使用大量的所述正案例的样本特征向量作为输入数据,对所述神经网络模型进行训练直至得到训练好的神经网络模型;
[0011]将研发人员编写的对应功能的待测代码,通过相同的特征提取算法提取其特征向量并归一化处理后输入所述训练好的神经网络模型,计算模型输出的结果向量与所述正案例的标签特征向量的余弦相似度,根据所述余弦相似度评估所述待测代码能实现对应功能的概率

[0012]依据本申请的第二方面,提出了一种基于神经网络的功能代码评估装置,包括:
[0013]代码片段获取单元,用于从实现特定功能的标准代码中获取正案例的目标代码片段,从研发人员编写的对应功能的实现代码中获取正案例的样本代码片段;
[0014]特征向量提取单元,用于对所述正案例的目标代码片段和所述样本代码片段,通
过相同的特征提取算法,分别提取代码片段中的程序容量和关键程序要素的特征数据形成七维特征向量,将所述七维特征向量归一化处理后,对应得到可供神经网络模型运算的正案例的标签特征向量和样本特征向量;
[0015]网络模型训练单元,用于对构建的神经网络模型,使用所述正案例的标签特征向量作为标签值,使用大量的所述正案例的样本特征向量作为输入数据,对所述神经网络模型进行训练直至得到训练好的神经网络模型;
[0016]功能代码评估单元,用于将研发人员编写的对应功能的待测代码,通过相同的特征提取算法提取其特征向量并归一化处理后输入所述训练好的神经网络模型,计算模型输出的结果向量与所述正案例的标签特征向量的余弦相似度,根据所述余弦相似度评估所述待测代码能实现对应功能的概率

[0017]依据本申请的第三方面,提出了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述的方法

[0018]本申请实施例采用的上述至少一个技术方案,能够达到以下有益效果:
[0019]本申请实施例通过获取正案例的目标代码片段和样本代码片段,对获取到的代码片段通过相同的特征提取算法,分别提取代码片段中的程序容量和关键程序要素的特征数据形成七维特征向量,将七维特征向量归一化处理后,对应得到可供神经网络模型运算的正案例的标签特征向量和样本特征向量,实现了特定功能代码的数字化和特征化,提高了特征向量提取的灵活性和普适性,并保证了特征向量提取的准确性,便于在实际应用中进行特征分析;通过将神经网络技术应用于功能代码的检测,使用正案例的标签特征向量和样本特征向量训练神经网络模型,利用训练好的神经网络模型对研发人员编写的对应功能的待测代码进行检测,评估出待测代码能实现对应功能的概率,从而可帮助研发人员将功能代码评估提前至开发阶段,提前发现潜在的代码风险,降低代码缺陷的修复成本,并促进代码评估人员与研发人员的协同融合,帮助企业提前评估软件研发过程中功能代码实现成效,降低代码缺陷的处理成本,提升功能代码检测的智能化水平,加强开发阶段代码风险管控力度,保障企业软件研发产品的高质量发展

附图说明
[0020]构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定

在附图中:
[0021]图1示出了本申请实施例的基于神经网络的功能代码评估方法的流程示意图;
[0022]图2示出了本申请实施例示例的安全需求功能代码片段的示意图;
[0023]图3示出了本申请实施例中的特征向量提取流程示意图;
[0024]图4示出了本申请实施例中的神经网络模型训练及检测的流程示意图;
[0025]图5示出了本申请实施例中的神经网络模型训练时的样本及标签特征向量的数据流的处理逻辑图;
[0026]图6示出了本申请实施例中构建的
BP
神经网络模型示意图;
[0027]图7示出了本申请实施例中的
BP
神经网络模型的输入

输出与模型参数的矩阵运
算式示意图;
[0028]图8示出了本申请实施例中的初始
BP
神经网络模型参数表;
[0029]图9示出了本申请实施例中的
BP
神经网络模型训练选取的激活函数特点对照表;
[0030]图
10
示出了本申请实施例中的
BP
神经网络模型第一组训练实验结果数据;
[0031]图
11
示出了本申请实施例中的
BP
神经网络模型第一组训练实验结果对应的损失曲线;
[0032]图
12
示出了本申请实施例中的
BP
神经网络模型第二组训练实验结果数据;
[0033]图
13
示出了本申请实施例中的
BP
神经网络模型第三组训练实验结果数据;
[0034]图...

【技术保护点】

【技术特征摘要】
1.
一种基于神经网络的功能代码评估方法,其特征在于,包括如下步骤:从实现特定功能的标准代码中获取正案例的目标代码片段,从研发人员编写的对应功能的实现代码中获取正案例的样本代码片段;对所述正案例的目标代码片段和所述样本代码片段,通过相同的特征提取算法,分别提取代码片段中的程序容量和关键程序要素的特征数据形成七维特征向量,将所述七维特征向量归一化处理后,对应得到可供神经网络模型运算的正案例的标签特征向量和样本特征向量;对构建的神经网络模型,使用所述正案例的标签特征向量作为标签值,使用大量的所述正案例的样本特征向量作为输入数据,对所述神经网络模型进行训练直至得到训练好的神经网络模型;将研发人员编写的对应功能的待测代码,通过相同的特征提取算法提取其特征向量并归一化处理后输入所述训练好的神经网络模型,计算模型输出的结果向量与所述正案例的标签特征向量的余弦相似度,根据所述余弦相似度评估所述待测代码能实现对应功能的概率
。2.
根据权利要求1所述的方法,其特征在于,所述七维特征向量为:
[
程序长度
N
,词汇量
n
,程序容量
V
,赋值语句数
a
,循环结构数
b
,条件结构数
c
,函数个数
d]
,其中假设:代码片段中的操作数种类数量记为
n1、
操作符种类数量记为
n2
,出现的所有操作数数量记为
N1、
所有操作符数量记为
N2
,则:词汇量
n

n1+n2
;程序长度
N

N1+N2
;程序容量
V

N*log2(n)。3.
根据权利要求2所述的方法,其特征在于,所述方法还包括:从研发人员编写的对应功能的不能实现代码中获取反案例的样本代码片段,对所述反案例的样本代码片段通过相同的特征提取算法提取其特征向量并归一化处理后得到反案例的样本特征向量;将与正案例的标签特征向量的点乘积为0的向量,作为反案例的标签特征向量;对构建的神经网络模型,使用所述反案例的标签特征向量作为标签值,使用大量的所述反案例的样本特征向量作为输入数据,对所述神经网络模型进行训练直至得到训练好的神经网络模型;将研发人员编写的对应功能的待测代码,通过相同的特征提取算法提取其特征向量并归一化处理后输入所述训练好的神经网络模型,计算模型输出的结果向量与所述反案例的标签特征向量的余弦相似度,根据所述余弦相似度评估所述待测代码不能实现对应功能的概率
。4.
根据权利要求3所述的方法,其特征在于,所述方法还包括:先将每个正案例的样本特征向量分别与正案例的标签特征向量进行配对,将每个反案例的样本特征向量分别与反案例的标签特征向量进行配对,分别形成大量的正

反案例的特征向量对,再通过数据乱序组合方法,将正

反案例的特征向量对乱序排列;在神经网络模型训练过程中,使用正

反案例无序的特征向量对训练所述神经网络模型直至得到训练好的神经网络模型
。5.
根据权利要求1至4任意一项所述的方法,其特征在于,构建的神经网络模型为
BP
神经网络模型,所述
BP
神经网络模型采用的是三层网络模型,包括输入层

单隐藏层和输出层,其中输入层输入的是七维输入向量,输出层输出的是七维输出向量,输入层到隐藏层的
初始权值及偏置量

隐藏层到输出层的初始权值及偏置量采用
(0,1)
的随机值法或固定值法进行初始化
。6.
根据权利要求6所述的方...

【专利技术属性】
技术研发人员:李雷丁涛陈绪宝韩丹张泓
申请(专利权)人:中国邮政储蓄银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1