本发明涉及软件质量检测技术领域,更具体地说,涉及一种软件质量评价方法、装置、设备及可读存储介质。
背景技术:
软件质量是软件产品满足规定和隐含需求能力有关的所有特征和所有特性的总和。软件质量评价是使用合适的技术对被评价软件的质量特性、子特性等进行度量并对度量的结果进行评价,从而给出软件产品能否满足特定需求的评价结果。软件质量评价可以定量的给出软件的质量水平,可以根据软件质量的评价结果对软件进行相应的管理和质量改进。
目前,现有的软件质量评价方法诸多,主要有:层次分析法、模糊综合评价法、基于神经网络计算等,这些评价方法均基于原始的评价指标体系采集待评价软件的指标数据。由于初始的评价指标体系中的指标参数多而繁杂,维度较高,高纬度的指标体系中不免存在冗余、无用的指标参数,因此基于原始的评价指标体系采集指标数据时,会采集到一些冗余、无用的指标数据,这些指标数据可能会干扰特征识别过程,导致评价结果的准确性降低;并且,基于神经网络评价目标软件时,若基于原始评价指标体系训练神经网络,则可能使神经网络的训练和验证过程繁琐复杂,从而会提升计算过程的复杂度和难度,影响评价效率。
因此,如何提高软件质量评价效率和准确率,是本领域技术人员需要解决的问题。
技术实现要素:
本发明的目的在于提供一种软件质量评价方法、装置、设备及可读存储介质,以提高软件质量评价效率和准确率。
为实现上述目的,本发明实施例提供了如下技术方案:
一种软件质量评价方法,包括:
获取初始评价指标体系和目标软件,并利用relieff算法对所述初始评价指标体系进行降维处理,得到目标评价指标体系;
根据所述目标评价指标体系获取所述目标软件的指标数据,并将所述指标数据输入预设的评价神经网络模型,输出所述指标数据对应的评价数据;
按照预设的评价规则处理所述评价数据,得到所述目标软件的评价结果。
其中,所述评价神经网络模型为小波神经网络模型。
其中,所述评价神经网络模型的构建过程包括:
基于所述初始评价指标体系采集初始训练样本数据和初始验证样本数据:
基于所述目标评价指标体系对所述初始采集训练样本数据和所述初始验证样本数据进行降维处理,得到目标训练样本数据和目标验证样本数据;
确定所述评价神经网络模型的拓扑结构和参数配置,并利用所述目标训练样本数据对所述评价神经网络模型进行训练;
当训练完成后,将所述目标验证样本数据输入所述评价神经网络模型,并判断输出的评价数据与所述目标验证样本数据的原始评价数据是否一致;若是,则利用训练完成的评价神经网络模型评价所述目标软件的指标数据。
其中,所述利用relieff算法对所述初始评价指标体系进行降维处理,得到目标评价指标体系,包括:
将所述初始评价指标体系中的指标参数划分为多个样本;
确定与每个样本同类的、最近邻的第一样本集,以及不同类的、最近邻的第二样本集;
利用预设的公式分别更新每个第一样本集中的特征值的权重,和每个第二样本集中的特征值的权重,获得权重集;
将所述权重集中的小于预设阈值的权重值删除,获得目标权重集,并根据所述目标权重集确定所述目标评价指标体系。
其中,所述按照预设的评价规则处理所述评价数据,得到所述目标软件的评价结果,包括:
按照基本概率赋值规则处理所述评价数据,得到所述目标软件的评价结果。
一种软件质量评价装置,包括:
获取模块,用于获取初始评价指标体系和目标软件,并利用relieff算法对所述初始评价指标体系进行降维处理,得到目标评价指标体系;
执行模块,用于根据所述目标评价指标体系获取所述目标软件的指标数据,并将所述指标数据输入预设的神经网络模型,输出所述指标数据对应的评价数据;
评价模块,用于按照预设的评价规则处理所述评价数据,得到所述目标软件的评价结果。
其中,还包括:评价神经网络模型构建模块,所述评价神经网络模型构建模块包括:
采集单元,用于基于所述初始评价指标体系采集初始训练样本数据和初始验证样本数据;
降维单元,用于基于所述目标评价指标体系对所述初始采集训练样本数据和所述初始验证样本数据进行降维处理,得到目标训练样本数据和目标验证样本数据;
训练单元,用于确定所述评价神经网络模型的拓扑结构和参数配置,并利用所述目标训练样本数据对所述评价神经网络模型进行训练;
验证单元,用于当训练完成后,将所述目标验证样本数据输入所述评价神经网络模型,并判断输出的评价数据与所述目标验证样本数据的原始评价数据是否一致;若是,则利用训练完成的评价神经网络模型评价所述目标软件的指标数据。
其中,所述获取模块包括:
划分单元,用于将所述初始评价指标体系中的指标参数划分为多个样本;
确定单元,用于确定与每个样本同类的、最近邻的第一样本集,以及不同类的、最近邻的第二样本集;
更新单元,用于利用预设的公式分别更新每个第一样本集中的特征值的权重,和每个第二样本集中的特征值的权重,获得权重集;
删除单元,用于将所述权重集中的小于预设阈值的权重值删除,获得目标权重集,并根据所述目标权重集确定所述目标评价指标体系。
一种软件质量评价设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一项所述的软件质量评价方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的软件质量评价方法的步骤。
通过以上方案可知,本发明实施例提供的一种软件质量评价方法,包括:获取初始评价指标体系和目标软件,并利用relieff算法对所述初始评价指标体系进行降维处理,得到目标评价指标体系;根据所述目标评价指标体系获取所述目标软件的指标数据,并将所述指标数据输入预设的评价神经网络模型,输出所述指标数据对应的评价数据;按照预设的评价规则处理所述评价数据,得到所述目标软件的评价结果。
可见,所述方法在评价软件质量之前,对初始评价指标体系进行降维处理,得到了精简却不失准确度的目标评价指标体系,进而根据目标评价指标体系获取目标软件的指标数据,并将获取到的指标数据通过预设的评价神经网络模型进行处理,最后按照预设的评价规则处理从评价神经网络模型中输出的评价数据,得到目标软件的评价结果,从而降低了评价计算过程的复杂度和难度,提高了软件质量评价效率和准确率。
相应地,本发明实施例提供的一种软件质量评价装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种软件质量评价方法流程图;
图2为本发明实施例公开的另一种软件质量评价方法流程图;
图3为本发明实施例公开的一种软件质量评价装置示意图;
图4为本发明实施例公开的一种软件质量评价设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种软件质量评价方法、装置、设备及可读存储介质,以提高软件质量评价效率和准确率。
参见图1,本发明实施例提供的一种软件质量评价方法,包括:
s101、获取初始评价指标体系和目标软件,并利用relieff算法对初始评价指标体系进行降维处理,得到目标评价指标体系;
在本实施例中,为了降低初始数据的复杂度和数据量,在采集指标数据之前,利用relieff算法对初始评价指标体系进行降维处理。其中,relieff算法可以对初始评价指标体系中的指标参数的分类能力进行评价,选择出分类能力强的指标参数,剔除无效的和冗余的指标参数,以降低评价指标体系的维数,获得目标评价指标体系,从而可进一步简化神经网络的设计。
具体的,降维处理的核心思想为:利用距离衡量特征与类别的相关性,根据该相关性为特征赋予不同的权重,依据权重选择出与类别相关性强的特征,剔除无关、冗余的特征。即:利用reliff算法对初始评价指标体系中的各特征的分类能力进行评价,选择出分类能力较强的特征,剔除无关、冗余的特征。其中,各个特征即可看作各个指标参数。
s102、根据目标评价指标体系获取目标软件的指标数据,并将指标数据输入预设的评价神经网络模型,输出指标数据对应的评价数据;
需要说明的是,所述评价神经网络模型小波神经网络模型。
其中,利用小波神经网络模型进行相关计算,可以解决评价数据受专家主观因素影响较大的问题。神经网络模型的输入与输出之间的关系为高度非线性映射关系,一般难以将关系式表达出来,因此一般通过训练学习过程,并根据反馈信息自动获得客观权重,从而提高评价数据的客观性和综合性。需要说明的是,小波神经网络模型综合了小波分析和神经网络模型在处理非线性问题上的优势,能够解决bp神经网络模型结构设计的盲目性和容易陷入局部最优的问题。
s103、按照预设的评价规则处理评价数据,得到目标软件的评价结果。
可见,本实施例提供了一种软件质量评价方法,所述方法在评价软件质量之前,对初始评价指标体系进行降维处理,得到了精简却不失准确度的目标评价指标体系,进而根据目标评价指标体系获取目标软件的指标数据,并将获取到的指标数据通过预设的评价神经网络模型进行处理,最后按照预设的评价规则处理从评价神经网络模型中输出的评价数据,得到目标软件的评价结果,从而降低了评价计算过程的复杂度和难度,提高了软件质量评价效率和准确率。
本发明实施例公开了另一种软件质量评价方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
参见图2,本发明实施例提供的另一种软件质量评价方法,包括:
s201、获取初始评价指标体系和目标软件,并利用relieff算法对初始评价指标体系进行降维处理,得到目标评价指标体系;
s202、根据目标评价指标体系获取目标软件的指标数据,并将指标数据输入预设的评价神经网络模型,输出指标数据对应的评价数据;
s203、按照基本概率赋值规则处理评价数据,得到目标软件的评价结果。
在本实施例中,为了进一步提高评价结果的准确性,可以用多个小波神经网络模型处理所述目标软件的指标数据,得到多个评价数据。其中,每个评价神经网络模型均可以处理得到一个评价数据,各个小波神经网络的拓扑结构和参数配置均不同。每个小波神经网络模型输出评价数据时,可依照预设的局部决策准则进行。即:每个小波神经网络模型在输出评价数据时,需依照预设的局部决策准则进行,局部决策准则可依据实际应用情况进行灵活调整,故本说明书在此不做具体限定。
之后利用ds理论对多个评价数据进行融合,获得融合结果,并将融合结果作为指标数据对应的评价数据,从而可避免基于一个评价神经网络处理时带来的偏颇结果。其中,融合多个评价数据的过程包括:利用目标评价指标体系中的评价结果等级确定ds证据理论的识别框架;基于多个评价数据生成识别框架中各命题的基本概率赋值;结合dempster组合规则和识别框架中各命题的基本概率赋值对多个评价数据进行两两融合,获得融合结果。
对于得到的融合结果可按照基本概率赋值规则进行处理,以获得目标软件的评价结果。
可见,本实施例提供了另一种软件质量评价方法,所述方法在评价软件质量之前,对初始评价指标体系进行降维处理,得到了精简却不失准确度的目标评价指标体系,进而根据目标评价指标体系获取目标软件的指标数据,并将获取到的指标数据通过预设的多个评价神经网络模型进行处理,并将得到的处理结果进行融合,最后按照预设的评价规则处理由多个处理结果融合的融合结果,得到目标软件的评价结果,从而降低了评价计算过程的复杂度和难度,提高了软件质量评价效率和准确率。
基于上述任意实施例,需要说明的是,所述评价神经网络模型的构建过程包括:
基于所述初始评价指标体系采集初始训练样本数据和初始验证样本数据;
基于所述目标评价指标体系对所述初始采集训练样本数据和所述初始验证样本数据进行降维处理,得到目标训练样本数据和目标验证样本数据;
确定所述评价神经网络模型的拓扑结构和参数配置,并利用所述目标训练样本数据对所述评价神经网络模型进行训练;
当训练完成后,将所述目标验证样本数据输入所述评价神经网络模型,并判断输出的评价数据与所述目标验证样本数据的原始评价数据是否一致;若是,则利用训练完成的评价神经网络模型评价所述目标软件的指标数据。
基于上述任意实施例,需要说明的是,所述利用relieff算法对所述初始评价指标体系进行降维处理,得到目标评价指标体系,包括:
将所述初始评价指标体系中的指标参数划分为多个样本;
确定与每个样本同类的、最近邻的第一样本集,以及不同类的、最近邻的第二样本集;
利用预设的公式分别更新每个第一样本集中的特征值的权重,和每个第二样本集中的特征值的权重,获得权重集;
将所述权重集中的小于预设阈值的权重值删除,获得目标权重集,并根据所述目标权重集确定所述目标评价指标体系。
下面对本发明实施例提供的一种软件质量评价装置进行介绍,下文描述的一种软件质量评价装置与上文描述的一种软件质量评价方法可以相互参照。
参见图3,本发明实施例提供的一种软件质量评价装置,包括:
获取模块301,用于获取初始评价指标体系和目标软件,并利用relieff算法对所述初始评价指标体系进行降维处理,得到目标评价指标体系;
执行模块302,用于根据所述目标评价指标体系获取所述目标软件的指标数据,并将所述指标数据输入预设的神经网络模型,输出所述指标数据对应的评价数据;
评价模块303,用于按照预设的评价规则处理所述评价数据,得到所述目标软件的评价结果。
其中,还包括:评价神经网络模型构建模块,所述评价神经网络模型构建模块包括:
采集单元,用于基于所述初始评价指标体系采集初始训练样本数据和初始验证样本数据;
降维单元,用于基于所述目标评价指标体系对所述初始采集训练样本数据和所述初始验证样本数据进行降维处理,得到目标训练样本数据和目标验证样本数据;
训练单元,用于确定所述评价神经网络模型的拓扑结构和参数配置,并利用所述目标训练样本数据对所述评价神经网络模型进行训练;
验证单元,用于当训练完成后,将所述目标验证样本数据输入所述评价神经网络模型,并判断输出的评价数据与所述目标验证样本数据的原始评价数据是否一致;若是,则利用训练完成的评价神经网络模型评价所述目标软件的指标数据。
其中,所述获取模块包括:
划分单元,用于将所述初始评价指标体系中的指标参数划分为多个样本;
确定单元,用于确定与每个样本同类的、最近邻的第一样本集,以及不同类的、最近邻的第二样本集;
更新单元,用于利用预设的公式分别更新每个第一样本集中的特征值的权重,和每个第二样本集中的特征值的权重,获得权重集;
删除单元,用于将所述权重集中的小于预设阈值的权重值删除,获得目标权重集,并根据所述目标权重集确定所述目标评价指标体系。
其中,所述评价模块具体用于:
按照基本概率赋值规则处理所述评价数据,得到所述目标软件的评价结果。
可见,本实施例提供了一种软件质量评价装置,包括:获取模块、执行模块以及评价模块。首先由获取模块获取初始评价指标体系和目标软件,并利用relieff算法对初始评价指标体系进行降维处理,得到目标评价指标体系;然后执行模块根据目标评价指标体系获取目标软件的指标数据,并将指标数据输入预设的神经网络模型,输出指标数据对应的评价数据;最后评价模块按照预设的评价规则处理评价数据,得到目标软件的评价结果。如此各个模块之间分工合作,各司其职,从而降低了评价计算过程的复杂度和难度,提高了软件质量评价效率和准确率。
下面对本发明实施例提供的一种软件质量评价设备进行介绍,下文描述的一种软件质量评价设备与上文描述的一种软件质量评价方法及装置可以相互参照。
参见图4,本发明实施例提供的一种软件质量评价设备,包括:
存储器401,用于存储计算机程序;
处理器402,用于执行所述计算机程序时实现上述任意实施例所述的软件质量评价方法的步骤。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种软件质量评价方法、装置及设备可以相互参照。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意实施例所述的软件质量评价方法的步骤。
根据本说明书提供的方法设计下述评价方案:
1、选取软件质量评价指标体系,即初始评价指标体系;所述软件质量评价指标体系包括:软件质量评价等级。
设软件质量评价指标体系为u={t1,t2,…,tm},其中ti(i=1,2,…,m)表示第i个指标的数据;软件质量评价等级体系为θ={v1,v2,…,vn};
2、按照选取的软件质量评价指标体系采集样本数据。
3、将样本数据划分为训练样本集和测试样本集。
将样本数据随机划分为训练样本集、测试样本集,不失一般性随机选取样本数据中的70%作为训练样本集、30%作为测试样本集。
4、对软件质量评价指标体系进行降维处理,获得新的评价指标体系。
设训练样本集d(l×m),由l个样本组成,每个样本有m个特征表示t1,t2,…,tm,reliff算法处理之后得到的特征权值向量为ω(1×m),其中ω(tl)表示特征tl的权值。其中,所述训练样本集由软件质量评价指标体系中的指标参数组成。
reliff算法的处理过程为:
(1)设置特征权值向量ω初始值为零向量,循环次数为γ(γ≤l),样本集d中样本类别号为c(c≥2)。
(2)将步骤a至步骤c循环执行γ次:
a、从样本集d中随机挑选出一个样本yi;
b、在yi的同类中找出与yi最近邻的k个样本zj(j=1,2,…,k);
c、在yi的每个不同类中找出与yi最近邻的k个样本xj(j=1,2,…,k);
对于每个特征权值按照下式进行更新:
其中:class(yi)表示样本yi的类别号;diff(tl,y1,y2)表示样本y1和y2的欧式距离,用来度量两样本的相异度,计算方法如下:
对于离散特征:
对于连续特征:
其中,value(tl,y1)表示样本y1在特征tl处的值。
由上式可以看出:对于某维特征tl,若它有利于分类,则应使同类样本接近而使其异类样本远离。即:来自同一类别的两样本在特征tl上的距离diff(tl,yi,zj)越小,并且来自不同类别的两样本在tl上的距离diff(tl,yi,xj)越大,其获得的权值ω(tl)就越大。
(3)输出特征权值向量ω。
(4)将特征按照权值进行降序排列,选择出权值高于阈值γω的特征,剔除权值小的特征,从而构建新的特征集。
上述新的特征集即为利用relieff算法降维处理后的新的软件质量评价指标体系,其为
5、确定小波神经网络的拓扑结构、参数配置。
(1)拓扑结构:
①输入层:层数为1层,节点数与新的软件质量评价指标体系u+中指标的数目相同,即节点数为f。
②隐含层:层数为1层,节点数根据下述经验公式和学习训练结果相结合来确定,其中i为输入层的节点数,oo为输出层的节点数,aa为[1,10]区间内的整数,其中,
③输出层:层数为1层,节点数与软件质量评价等级体系θ中软件质量等级的数目相同,即节点数为n。
(2)参数配置:
隐含层传递函数:morlet小波函数;
输出层传递函数:sigmoid函数;
目标误差设置值:0.01;
动量因子值:0.9;
学习速率:采用自适应学习胜率优化算法,设定初始学习速率是0.01;
训练结束条件:最大训练步数为5000步,时间为30秒。
6、利用训练样本集对小波神经网络进行训练。
将原始训练样本根据新的软件质量评价指标体系u+中的指标设置生成新的训练样本,对小波神经网络进行训练。
7、确定下述局部决策准则,用于根据小波神经网络的输出确定软件质量评价结果。
设小波神经网络的输出为g={g1,g2,…,gn},若存在gp满足下式,则称软件质量评价结果为vp。
8、利用测试样本集对小波神经网络进行测试。
将原始测试样本根据新的软件质量评价指标体系u+中的指标设置生成新的测试样本,对小波神经网络进行测试。
将测试样本输入到训练好的小波神经网络中,在决策准则的指导下,针对小波神经网络的输出确定软件质量评价结果,验证小波神经网络给出的软件质量评价结果与测试样本的真实软件质量评价结果是否一致,若两者一致,则选择下一个测试样本进行处理,否则认为测试未通过,修改参数配置后重新进行训练、测试。若当前小波神经网络针对测试样本集中所有测试样本的软件质量评价结果与真实软件质量评价结果是否一致,则认为测试通过,该小波神经网络可以用于后续的软件质量评价。
9、将待评价软件的质量评价指标数据输入到训练好的小波神经网络中。
10、在基本概率赋值规则的指导下,针对小波神经网络的输出确定待评价软件的软件质量评价结果。
综上,本方案利用relieff算法对初始评价指标体系中的各指标参数的分类能力进行评价,选择出分类能力强的指标,剔除无效的和冗余的指标,以降低评价指标体系的维数,获得新的评价指标体系,进而简化了小波神经网络的计算复杂度。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。