一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机载嵌入式软件质量检测方法、装置、介质及电子设备与流程

2021-12-01 01:07:00 来源:中国专利 TAG:


1.本发明涉及软件质量检测技术领域,特别是涉及一种机载嵌入式软件质量检测方法、装置、介质及电子设备。


背景技术:

2.软件质量度量是软件生命周期中一个较为重要的问题,在软件开发和维护的过程中,都需要考虑软件质量的问题,若不对软件进行质量度量,则无法判断软件质量标准,对软件开发过程也会产生重大的影响,对软件产品质量进行客观全面的度量和评价、不断提高软件产品的质量始终是计算机科学领域研究的重要方向之一。
3.机载嵌入式软件因其软件结构的特殊性,一般用于软件质量度量的特征无法完全适用于机载嵌入式软件。针对这类型的软件的质量评价,主要是依赖于评审专家根据行业领域特定的特征进行评分,评审方法的指标权重一般由专家指定,很多定性信息也是由人主观判断进行量化,存在主观的随意性和思维的不确定性。人工神经网络(ann, artificial neural network)技术可以根据其自学习能力很好的将专家主观赋值问题转换为了网络的结构调节过程,但是人工神经网络的一个显著的缺陷就是“不可解释性”,用户并不知道哪些特征对软件质量度量起到贡献性的作用,并且,目前缺乏机载嵌入式软件特征重要性评价方法以及缺乏足够可信的机载嵌入式软件质量度量数据,使得神经网络模型对该类型软件的评价可信度不高、泛化能力较弱。


技术实现要素:

4.鉴于上述状况,有必要针对现有技术中进行机载嵌入式软件质量检测时,无法确定对机载嵌入式软件质量度量起到贡献性作用的特征,以及检测准确率不高的问题,提供一种机载嵌入式软件质量检测方法、装置、介质及电子设备。
5.一种机载嵌入式软件质量检测方法,包括:将机载嵌入式软件的各个数据特征分别作为神经网络中各个输入节点的输入,各个质量分类类型分别作为所述神经网络中各个输出节点的输出,对所述神经网络进行训练;根据各个所述输出节点的输出结果提取训练好的所述神经网络中隐节点与输出节点之间的规则,以分别得到各个所述质量分类类型对应的第一规则集合;分别根据各个所述质量分类类型对应的第一规则集合中各个隐节点的输出结果提取输入节点与输出节点之间的规则,得到各个所述质量分类类型对应的第二规则集合;分别对各个所述第二规则集合中的各个数据特征的确定式规则出现的次数进行累计,并分别将各个所述第二规则集合中累计次数最高的预设数量个数据特征作为对应质量分类类型的目标特征;根据各个所述质量分类类型的目标特征确定各个所述质量分类类型对应的阈值条件;
提取待检测机载嵌入式软件中的数据特征,并与各个所述质量分类类型对应的阈值条件进行匹配,以确定所述待检测机载嵌入式软件的质量分类类型。
6.进一步的,上述机载嵌入式软件质量检测方法,其中,所述将机载嵌入式软件的各个数据特征分别作为神经网络中各个输入节点的输入,各个质量分类类型分别作为所述神经网络中各个输出节点的输出,对所述神经网络进行训练的步骤之前还包括:设置神经网络的算法约束,所述算法约束用于将所述神经网络的各个节点的输入和输出经过激活函数处理,并将处理后的数据以0.5为界划分为二值,大于等于0.5的数据修改为1,小于0.5的数据修改为0。
7.进一步的,上述机载嵌入式软件质量检测方法,其中,所述根据各个所述输出节点的输出结果提取训练好的所述神经网络中隐节点与输出节点之间的规则的步骤之前还包括:对训练好的所述神经网络的输出结果进行one

hot编码。
8.进一步的,上述机载嵌入式软件质量检测方法,其中,所述根据各个所述输出节点的输出结果提取训练好的所述神经网络中隐节点与输出节点之间的规则,以分别得到各个所述质量分类类型对应的第一规则集合的步骤包括:遍历所有的输出节点,提取当前输出节点的输出值等于当前质量分类类型对应的目标值时所有的隐层节点的输出集合,以得到当前输出节点对应的规则集合;对每个所述输出节点对应的规则集合中的否定式规则按照预设概率进行抛弃处理,并将进行抛弃处理后的各个所述规则集合求交集,得到当前质量分类类型对应的第一规则集合。
9.进一步的,上述机载嵌入式软件质量检测方法,其中,所述预设概率为50%。
10.本发明还公开了一种机载嵌入式软件质量检测装置,包括:训练模块,用于将机载嵌入式软件的各个数据特征分别作为神经网络中各个输入节点的输入,各个质量分类类型分别作为所述神经网络中各个输出节点的输出,对所述神经网络进行训练;第一规则提取模块,用于根据各个所述输出节点的输出结果提取训练好的所述神经网络中隐节点与输出节点之间的规则,以分别得到各个所述质量分类类型对应的第一规则集合;第二规则提取模块,用于分别根据各个所述质量分类类型对应的第一规则集合中各个隐节点的输出结果提取输入节点与输出节点之间的规则,得到各个所述质量分类类型对应的第二规则集合;目标特征确定模块,用于分别对各个所述第二规则集合中的各个数据特征的确定式规则出现的次数进行累计,并分别将各个所述第二规则集合中累计次数最高的预设数量个数据特征作为对应质量分类类型的目标特征;阈值条件确定模块,用于根据各个所述质量分类类型的目标特征确定各个所述质量分类类型对应的阈值条件;检测模块,用于提取待检测机载嵌入式软件中的数据特征,并与各个所述质量分类类型对应的阈值条件进行匹配,以确定所述待检测机载嵌入式软件的质量分类类型。
11.进一步的,上述机载嵌入式软件质量检测装置,还包括:
设置模块,用于设置神经网络的算法约束,所述算法约束用于将所述神经网络的各个节点的输入和输出经过激活函数处理,并将处理后的数据以0.5为界划分为二值,大于等于0.5的数据修改为1,小于0.5的数据修改为0。
12.进一步的,上述机载嵌入式软件质量检测装置,所述第一规则提取模块具体用于:遍历所有的输出节点,提取当前输出节点的输出值等于当前质量分类类型对应的目标值时所有的隐层节点的输出集合,以得到当前输出节点对应的规则集合;对每个所述输出节点对应的规则集合中的否定式规则按照预设概率进行抛弃处理,并将进行抛弃处理后的各个所述规则集合求交集,得到当前质量分类类型对应的第一规则集合。
13.本发明还公开了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一所述的方法。
14.本发明还公开了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现上述任意一项所述的方法。
15.本发明根据提取出的目标特征,与待检测机载嵌入式软件的数据特征的数值大小进行比对,评测待检测机载嵌入式软件的质量,准确率较高。同时也提取出了重要特征,提高了人工神经网络软件质量度量的可解释性,在规则中,出现次数最多的几个数据特征,也是机载嵌入式软件开发过程中可多进行考虑的重要特征,有利于改进机载嵌入式软件质量,降低开发成本。
附图说明
16.图1为本发明第一实施例中的机载嵌入式软件质量检测方法的流程图;图2为本发明第一实施例中的神经网络的结构示意图;图3为本发明第一实施例中的第一规则集合提取的流程图;图4为本发明第一实施例中的第二规则集合提取的流程图;图5为本发明第二实施例中的机载嵌入式软件质量检测方法的流程图;图6为本发明第二实施例中抛弃处理步骤的流程图;图7为本发明第三实施例中机载嵌入式软件质量检测装置的结构框图;图8为本发明实施例中电子设备的结构示意图。
具体实施方式
17.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
18.参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
19.为了窥探人工神经网络的奥秘,增强人工神经网络的可解释性,更好的改进机载嵌入式软件质量度量方法。从神经网络中抽取出易于理解的规则符号是一个较为有效的途
径。本发明实施例中,对神经网络规则的提取可采用kt(knowledge tron)规则提取算法。
20.请参阅图1,为本发明第一实施例中的机载嵌入式软件质量检测方法,包括步骤s11~s16。
21.步骤s11,将机载嵌入式软件的各个数据特征分别作为神经网络中各个输入节点的输入,各个质量分类类型分别作为所述神经网络中各个输出节点的输出,对所述神经网络进行训练。
22.针对机载嵌入式软件进行质量检测时,首先需构建一个三层的神经网络,并进行训练后,再进行机载嵌入式软件质量检测,如图2所示,该神经网络包括输入层、隐层和输出层。该输入层的节点数根据机载嵌入式软件的数据特征的数量来确定,输出层的节点数根据机载嵌入式软件的质量分类类型的种类来确定。例如从机载嵌入式软件中提取的数据特征有14个,具体如表1所示。机载嵌入式软件的质量分类类型可设置有四种类型,如优秀、良好、一般、差。对应的该神经网络的输入节点数为14,输出节点数为4。隐节点数可采用现有技术中的删除法或黄金分割法确定,如本实施例中隐节点数为9。在如图2所示中,节点之间连接的权值可定义为正属性和负属性,权值大于0的定义为正属性,权值小于0的定义为负属性。
23.表1序号特征名称1模块个数/kloc2有效代码率*1003注释率*1004行数超过200的模块个数/kloc5圈复杂度大于10的模块个数/kloc6扇出超过7的模块个数/kloc7文档审查问题数/kloc8代码审查问题数/kloc9静态分析问题数/kloc10动态测试问题数/kloc11首轮动态测试用例总数/kloc12首轮动态测试用例通过率*10013回归测试次数14回归测试问题总数/kloc该神经网络预先采用软件质量评分数据集进行训练,该软件质量评分数据集包括提取的多个历史的机载嵌入式软件的数据特征,以及对应的质量类型标签。可以理解的,该质量类型标签,根据评审专家评审得到。该神经网络训练算法采用随机梯度下降法(stochastic gradient descent,sgd),损失函数为均方误差(mean

square error,mse)。具体实施时,将软件质量评分数据集按照完全随机的原则,以7:3的比例划分,分别作为训练集和测试集数据,采用训练集数据对进行训练,使用测试集数据进行测试,取效果最好的网络进行规则提取,因为机载嵌入式软件的数据量较小,防止过拟合,准确率在65%左右浮动,最高达到75%。
24.构建神经网络时,还需设置算法约束,该算法约束用于将神经网络的各个节点的输入和输出经过激活函数处理后,以0.5将处理后的数值划分为二值,大于等于0.5为1,小于0.5为0。该激活函数例如sigmoid函数为激活函数,在使用激活函数之前的数值大于0则输出值大于或等于0.5,小于0则输出值小于0.5,经过激活函数处理后的输出值区间为[0,1]。再以0.5将其划分为二值,大于等于0.5为1,小于0.5为0。即该神经网络的所有节点的输入和输出都必须是1和0的形式。
[0025]
步骤s12,根据各个所述输出节点的输出结果提取训练好的所述神经网络中隐节点与输出节点之间的规则,以分别得到各个所述质量分类类型对应的第一规则集合。
[0026]
该神经网络根据历史的机载嵌入式软件的软件质量评分数据集进行训练得到的,其训练所用的数据特征有限,得到训练后的神经网络对需要评价的待检测机载嵌入式软件并不准确。因此,需要提取该训练好的神经网络中各个节点间的规则,以确认对神经网络分类结果影响的程度较大的数据特征,即对该类型软件质量评审结果影响较大的数据特征。根据确认的特征来评价待检测机载嵌入式软件的质量,并指导该待检测机载嵌入式软件的再开发和测试。
[0027]
具体实施时,本实施例中采用kt规则提取算法提取训练好的神经网络中节点间的规则,提取出的规则形如:“如果,前提条件;那么,结论”。kt规则提取算法思想是从后往前提取,为了提高规则提取的效率,可先对机载嵌入式软件质量分类类型进行one

hot编码,则值为1称之为确定式规则,值为0称之为否定式规则。如图3所示,提取隐节点与输出节点之间的规则的步骤如下:步骤s121,读取第i个质量分类类型对应的输出节点o[m]的输出,m=1;步骤s122,根据第m个输出节点o[m]的输出,提取隐节点与o[m]之间的规则集合hiddruleset[m];步骤s123,判断是否完成对输出节点的遍历,若是执行步骤s124,否则,执行步骤s125;步骤s124,用逻辑“与”操作合并集合{hiddruleset}中的元素,生成规则集合horuleset[i];步骤s125,m=m 1,并返回执行步骤s122。
[0028]
对机载嵌入式软件的质量分类类型进行one

hot编码后,针对第一种质量分类类型,对应神经网络的输出值应为(1,0,0,0),意为第一个输出节点的输出应为1,第二个输出节点的输出应为0,第三个输出节点的输出应为0;第四个输出节点的输出应为0,对于第二种质量分类类型,输出应为(0,1,0,0),意思同理;第三种质量分类类型,输出应为(0,0,1,0),意思同理;第四种质量分类类型,输出应为(0,0,0,1),意思同理。
[0029]
下面以提取第一种质量分类类型的对应的第一规则集合为例,来说明具体的提取过程。
[0030]
提取第一个输出节点的规则集合,即使得o[1]=1的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[1]=1;得到的集合为hiddruleset[1];提取第二个输出节点的规则集合,即使得o[2]=0的所有隐层节点的输出集合,形
如:if h1=0或1&h2=0或1&

&h9=0或1 then o[2]=0;得到的集合为hiddleruleset[2];提取第三个输出节点的规则集合,即使得o[3]=0的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[3]=0;得到的集合为hiddruleset[3];提取第四个输出节点的规则集合,即使得o[4]=0的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[4]=0;得到的集合为hiddruleset[4]。
[0031]
因为必须同时满足o[1]=1,o[2]=0,o[3]=0,o[4]=0四个条件才符合第一种质量分类类型的要求,所以需要取得hiddruleset[1]、hiddruleset[2]、hiddruleset[3]、hiddruleset[4]的交集,形如:if h1=0或1&h2=0或1&

&h9=0 then o[1]=1,o[2]=0,o[3]=0,o[4]=0;记为horuleset[1]。
[0032]
步骤s13,分别根据各个所述质量分类类型对应的第一规则集合中各个隐节点的输出结果提取输入节点与输出节点之间的规则,得到各个所述质量分类类型对应的第二规则集合。
[0033]
如图4所示,根据第一规则集合中各个隐节点的输出提取输入节点与输出节点之间的规则,得到第二规则集合的具体步骤如下:步骤s131,读取horuleset[i]的第j个规则horuleset[j]中各隐节点h[p]的输出,p=1;步骤s132,根据隐节点h[p]的输出结果,提取输入节点与h[p]之间的规则集合inruleset[p];步骤s133,判断是否完成对对隐节点的遍历,若是执行步骤s134,否则,执行步骤s135;步骤s134,用逻辑“与”操作合并集合{ inruleset}中的元素,生成规则集合ioruleset[j];步骤s135,p=p 1,并返回执行步骤s132。
[0034]
依次类推,可以得到horuleset[i]中每一个规则对应的集合,合并后得到输入层和输出层之间的规则。该第一种质量分类类型中的输入层和输出层之间的规则,形如:if i1=0或1&i2=0或1&

&i14=0或1 then o[1]=1,o[2]=0,o[3]=0,o[4]=0;记为ioruleset。
[0035]
步骤s14,分别对各个所述第二规则集合中的各个数据特征的确定式规则出现的次数进行累计,并分别将各个所述第二规则集合中累计次数最高的预设数量个数据特征作为对应质量分类类型的目标特征。
[0036]
步骤s15,根据各个所述质量分类类型的目标特征确定各个所述质量分类类型对应的阈值条件。
[0037]
步骤s16,提取待检测机载嵌入式软件中的数据特征,并与各个所述质量分类类型对应的阈值条件进行匹配,以确定所述待检测机载嵌入式软件的质量分类类型。
[0038]
为了探测数据特征对神经网络分类结果影响的程度,确定影响程度较大的特征,需要对ioruleset规则集进行分析,具体实施时可采用统计学方法来分析规则集,将所有的数据特征的确定式规则进行累加,根据出现次数的高低对数据特征进行排序,挑选出较为重要的n类数据特征。例如,本实施例中挑选出四类重要的数据特征。
[0039]
每种质量分类类型可分别得到对应的一组目标特征,可形成新的评测规则,形如:if x2 > 60.84 ∩ x4 > 5.5 ∩ x8 > 193.62 ∩ x14 > 6.15, then 优秀;if x1 > 19.84 ∩ x4 > 5.5 ∩ x6 > 6.96 ∩ x10 > 28.91, then 良好;if x2 > 60.84 ∩ x3 > 150.96 ∩ x8 > 193.62 ∩ x11 > 219.74, then 一般;if x2 > 60.84 ∩ x5 > 23.28 ∩ x8 > 193.62 ∩ x11 > 219.74, then 差。
[0040]
其中,xn代表第n类数据特征,例如该x2、x4、x8、x11,对应的特征分别为“有效代码率*100”、“行数超过200的模块个数/kloc”、“代码审查问题数/kloc”、“首轮动态测试用例总数/kloc”,kloc为代码千行数。
[0041]
上述规则中if后面的条件即为各个质量分类类型对应的阈值条件。可以理解的,该阈值条件中各个目标特征的数值可以是根据该神经网络模型中输入的数据特征来确定,也可以为经验值。
[0042]
提取待检测机载嵌入式软件中的数据特征,并与各个质量分类型对应的阈值条件进行匹配,判断属于哪一种评测规则,从而确定待检测机载嵌入式软件的质量分类类型。
[0043]
本实施例根据提取出的目标特征,与待检测机载嵌入式软件的数据特征的数值大小进行比对,评测机载嵌入式软件的质量,准确率较高。同时也提取出了重要特征,提高了人工神经网络软件质量度量的可解释性,在规则中,出现次数最多的几个目标特征,也是机载嵌入式软件开发过程中可多进行考虑的重要特征,有利于改进机载嵌入式软件质量,降低开发成本。
[0044]
请参阅图5,为本发明第二实施例中的机载嵌入式软件质量检测方法,包括步骤s21~s29。
[0045]
步骤s21,设置神经网络的算法约束,所述算法约束用于将所述神经网络的所有节点的输入和输出经过激活函数处理,并以0.5将处理后的数值划分为二值,大于等于0.5为1,小于0.5为0。
[0046]
进行机载嵌入式软件质量检测时,首先需构建一个三层的神经网络进行机载嵌入式软件质量检测,该神经网络包括输入层、隐层和输出层。该神经网络的输入节点输入的数据为机载嵌入式软件的各个数据特征,输出为机载嵌入式软件的质量分类类型。设置神经网络参数,输入层的节点数例如设置为14,隐藏层节点数例如设置为9,输出层节点数例如设置为4,训练算法采用随机梯度下降法(stochastic gradient descent,sgd),损失函数为均方误差(mean

square error,mse),以及设置算法约束。该算法约束用于将神经网络的各个节点的输入和输出经过激活函数处理后,以0.5将处理后的数值划分为二值,大于等于0.5为1,小于0.5为0。该激活函数例如sigmoid函数为激活函数,在使用激活函数之前的数值大于0则输出值大于或等于0.5,小于0则输出值小于0.5,经过激活函数处理后的输出值
区间为[0,1]。再以0.5将其划分为二值,大于等于0.5为1,小于0.5为0。即该神经网络的所有节点的输入和输出都必须是1和0的形式。
[0047]
步骤s22,将机载嵌入式软件的各个数据特征分别作为神经网络中各个输入节点的输入,各个质量分类类型分别作为所述神经网络中各个输出节点的输出,对所述神经网络进行训练。
[0048]
步骤s23,对训练好的所述神经网络的输出结果进行one

hot编码。
[0049]
将神经网络的输出结果进行one

hot编码,值为1称之为确定式规则,值为0称之为否定式规则。
[0050]
步骤s24,遍历所有的输出节点,提取当前输出节点的输出值等于当前质量分类类型对应的目标值时所有的隐层节点的输出集合,以得到当前输出节点对应的规则集合。
[0051]
步骤s25,对每个所述输出节点对应的规则集合中的否定式规则按照预设概率进行抛弃处理,并将进行抛弃处理后的各个所述输出节点对应的规则集合求交集,得到当前质量分类类型对应的第一规则集合。
[0052]
神经网络的输出结果为机载嵌入式软件的质量分类类型,将其进行one

hot编码后,每一种质量分类类型对应的目标值为其one

hot编码后的值,例如,针对第一种质量分类类型,对应的目标值应为(1,0,0,0),意为第一个输出节点的输出应等于目标值1,第二个输出节点的输出应等于目标值0,第三个输出节点的输出应等于目标值为0;第四个输出节点的输出应等于目标值为0,对于第二种质量分类类型,对应的目标值应为(0,1,0,0),意思同理;第三种质量分类类型,对应的目标值为(0,0,1,0),意思同理;第四种质量分类类型,对应的目标值为(0,0,0,1),意思同理。
[0053]
针对任意一质量分类类型,需提取每一个节点的规则集合,即使得节点输出的值等于该当前质量分类类型对应的输出值时,所有隐节点的输出集合。
[0054]
例如以第一种质量分类类型为例,提取第一个输出节点的规则集合,即使得o[1]=1的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[1]=1;得到的集合为hiddruleset[1];提取第二个输出节点的规则集合,即使得o[2]=0的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[2]=0;得到的集合为hiddleruleset[2];提取第三个输出节点的规则集合,即使得o[3]=0的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[3]=0;得到的集合为hiddruleset[3];提取第四个输出节点的规则集合,即使得o[4]=0的所有隐层节点的输出集合,形如:if h1=0或1&h2=0或1&

&h9=0或1 then o[4]=0;得到的集合为hiddruleset[4]。
[0055]
因为必须同时满足o[1]=1,o[2]=0,o[3]=0,o[4]=0四个条件才符合第一种质量分
类类型的要求,所以需要取得hiddruleset[1]、hiddruleset[2]、hiddruleset[3]、hiddruleset[4]的交集。对hiddruleset[1]、hiddruleset[2]、hiddruleset[3]、hiddruleset[4]四个集合求交集过程中,为了得到更多的规则,具有更多的解的选项,可对四个规则集合进行松弛,抛弃部分规则。即在提取规则的过程中,对于确定式规则集,则进行保留,存入规则集hiddrulesetsel中,对于否定式规则集,则按照n%的概率进行抛弃处理,若未抛弃则同样存入规则集hiddrulesetsel,直至hiddruleset规则集合遍历结束,其中,hiddruleset为hiddruleset[1]、hiddruleset[2]、hiddruleset[3]和hiddruleset[4]的合集。得到松弛后的规则集hiddrulesetsel,再对规则集hiddrulesetsel中的所有子集取交集,得到第一规则集合horuleset。如图6所示,具体实施过程包括如下步骤:步骤s251,取hiddruleset规则集合中的子集hiddruleset[j],其中j=1;步骤s252,判断循环是否结束,若否,执行步骤s253;步骤s253,判断子集是否为确定式规则集,若是执行步骤s254,否则执行步骤s256。
[0056]
步骤s254,保留规则集,存入规则集hiddrulesetsel中;步骤s255,j=j 1,;并返回步骤s251;步骤s256,按照n%的概率进行抛弃处理,若未抛弃则存入规则集hiddrulesetsel中;步骤s257,j=j 1,;并返回步骤s251。
[0057]
上述方法可得到第一种之类分类类型对应的第一规则集合,按照同样的方法,可求得第二种、第三种和第四种质量分类类型对应的第一规则集合。
[0058]
为了追求规则的多样性,松弛度是一个值得探究的问题,抛弃过多会导致结果重叠,抛弃过少则效果无差别,为得到较好的规则集horuleset,使其更有说服力,应使得horuleset在hiddrulesetsel的各个子集中所占的比例尽可能平均,记,通过计算数组r的方差来判断取得规则集效果,方差,s2越小,效果越好,初始随机抛弃程度n%,使用梯度下降法来寻得最优抛弃程度q%,使得方差s2最小,得到最好的规则集horuleset。经过多次实验,无论初始抛弃程度n%为多少,寻得最优抛弃程度在50%左右浮动,故在松弛过程中,选定规则集抛弃程度为50%时得到的效果最佳。
[0059]
步骤s26,分别根据各个所述质量分类类型对应的第一规则集合中各个隐节点的输出结果提取输入节点与输出节点之间的规则,得到各个所述质量分类类型对应的第二规则集合。
[0060]
步骤s27,分别对各个所述第二规则集合中的各个数据特征的确定式规则出现的次数进行累计,并分别将各个所述第二规则集合中累计次数最高的预设数量个数据特征作为对应质量分类类型的目标特征。
[0061]
步骤s28,根据各个所述质量分类类型的目标特征确定各个所述质量分类类型对应的阈值条件。
[0062]
步骤s29,提取所述待检测机载嵌入式软件中各个数据特征,并与各个所述质量分类类型对应的阈值条件进行匹配,以确定所述待检测机载嵌入式软件的质量分类类型。
[0063]
进一步的,循环神经网络中的所有节点的输入和输出都通过激活函数进行处理,得到的是归一化后的值。当确定目标特征后,以提取的各个目标特征的结果为中值对目标特征的值进行归一化方法的还原,得到目标特征对应的原始值,根据各个目标特征的原始值来建立各个质量分类类型对应的阈值条件。阈值求解方法为,训练神经网络的数据经过了归一化,归一化公式为y=(x

minvalue)/(maxvalue

minvalue),minvalue和maxvalue分别为某类特征数据中的最小值和最大值,定y=0.5,反求x的值,求得x的值则为阈值。
[0064]
根据得到的阈值条件,参照特征的数值大小进行比对,评测待检测机载嵌入式软件的质量。
[0065]
可以理解的,根据确认的目标特征不仅可以评价当前机载嵌入式软件的质量、指导该机载嵌入式软件的再开发和测试。而且,还可以根据确定的目标特征来重新构建一个神经网络,以更加准确的检测这类型软件的质量。
[0066]
本实施例,基于kt规则的机载嵌入式软件质量度量方法在规则提取时进行松弛处理,抛弃部分规则,解决了因为数据集较小而训练网络特征不明显而提取不到规则的问题。同时,本实施例也解决了因专家个人主观因素影响机载嵌入式软件质量度量的问题,提取出的特征有利于改进机载嵌入式软件质量,降低开发成本。
[0067]
请参阅图7,为本发明第三实施例中机载嵌入式软件质量检测装置,包括:训练模块31,用于将机载嵌入式软件的各个数据特征分别作为神经网络中各个输入节点的输入,各个质量分类类型分别作为所述神经网络中各个输出节点的输出,对所述神经网络进行训练;第一规则提取模块32,用于根据各个所述输出节点的输出结果提取训练好的所述神经网络中隐节点与输出节点之间的规则,以分别得到各个所述质量分类类型对应的第一规则集合;第二规则提取模块33,用于分别根据各个所述质量分类类型对应的第一规则集合中各个隐节点的输出结果提取输入节点与输出节点之间的规则,得到各个所述质量分类类型对应的第二规则集合;目标特征确定模块34,用于分别对各个所述第二规则集合中的各个数据特征的确定式规则出现的次数进行累计,并分别将各个所述第二规则集合中累计次数最高的预设数量个数据特征作为对应质量分类类型的目标特征;阈值条件确定模块35,用于根据各个所述质量分类类型的目标特征确定各个所述质量分类类型对应的阈值条件;检测模块36,用于提取待检测机载嵌入式软件中的数据特征,并与各个所述质量分类类型对应的阈值条件进行匹配,以确定所述待检测机载嵌入式软件的质量分类类型。
[0068]
进一步的,上述机载嵌入式软件质量检测装置,还包括:设置模块,用于设置神经网络的算法约束,所述算法约束用于将所述神经网络的各个节点的输入和输出经过激活函数处理,并将处理后的数据以0.5为界划分为二值,大于等于0.5为1,小于0.5为0。
[0069]
进一步的,上述机载嵌入式软件质量检测装置,所述第一规则提取模块具体用于:
遍历所有的输出节点,提取当前输出节点的输出值等于当前质量分类类型对应的目标值时所有的隐层节点的输出集合,以得到当前输出节点对应的规则集合;对每个所述输出节点对应的规则集合中的否定式规则按照预设概率进行抛弃处理,并将进行抛弃处理后的各个所述规则集合求交集,得到当前质量分类类型对应的第一规则集合。
[0070]
本发明实施例所提供的机载嵌入式软件质量检测装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0071]
本发明另一方面还提出一种电子设备,请参阅图8,所示为本发明实施例当中的电子设备,包括处理器10、存储器20以及存储在存储器上并可在处理器上运行的计算机程序30,所述处理器10执行所述计算机程序30时实现如上述的机载嵌入式软件质量检测方法。
[0072]
其中,所述电子设备可以为但不限于电脑、服务器等设备。处理器10在一些实施例中可以是一中央处理器(central processing unit, cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器20中存储的程序代码或处理数据。
[0073]
其中,存储器20至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器20在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的硬盘。存储器20在另一些实施例中也可以是电子设备的外部存储装置,例如电子设备上配备的插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。进一步地,存储器20还可以既包括电子设备的内部存储单元也包括外部存储装置。存储器20不仅可以用于存储安装于电子设备的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0074]
可选地,该电子设备还可以包括用户接口、网络接口、通信总线等,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light

emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。网络接口可选的可以包括标准的有线接口、无线接口(如wi

fi接口),通常用于在该装置与其他电子装置之间建立通信连接。通信总线用于实现这些组件之间的连接通信。
[0075]
需要指出的是,图8示出的结构并不构成对电子设备的限定,在其它实施例当中,该电子设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0076]
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的机载嵌入式软件质量检测方法。
[0077]
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或装置(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或装置取指令并执行指令的系统)使用,或结合这
些指令执行系统、装置或装置而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或装置或结合这些指令执行系统、装置或装置而使用的装置。
[0078]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0079]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0080]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、
ꢀ“
示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0081]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献