一种基于二次评价的软件质量评价方法及系统与流程

文档序号:13934240阅读:172来源:国知局
一种基于二次评价的软件质量评价方法及系统与流程
本发明涉及软件质量评价
技术领域
,尤其涉及一种基于二次评价的软件质量评价方法及系统。
背景技术
:软件质量是软件产品满足规定和隐含需求能力有关的所有特征和所有特性的总和。软件质量评价是使用合适的技术对被评价软件的质量特性、子特性等进行度量并对度量的结果进行评价,从而给出软件产品能否满足特定需求的评价结果。软件质量评价可以定量的给出软件的质量水平,可以根据软件质量的评价结果数据对软件进行相应的管理和质量改进。目前,软件质量的评价方法主要有:1、层次分析法:根据某种标准对影响软件质量的各种因素进行分解,形成不同的层次,由各专家对同层次的因素两两比对,从而得到对比矩阵。但是,当同一层次的比较因素较多时,专家容易出现混乱甚至矛盾的判断,而且对比矩阵庞大、复杂度较高。2、模糊综合评价法:采用模糊数学中构造隶属度函数的方法对指标的评价标准进行模糊处理,利用最大隶属度原则保证依据该评价标准做出的评价更加符合人们的思维方式。但是,模糊数学的缺陷性会导致该原则经常失效,从而出现评价结果失真、均化和跳跃等现象,而且根据实际情况选择合适的隶属度函数比较困难。3、基于支持向量机:支持向量机在处理小样本问题时具有得天独厚的优势,它避开了传统的统计学习方法从归纳到演绎的过程,大大简化了传统的分类和回归等问题。但是,支持向量机针对大规模的训练样本难以实施,对多分类问题的解决能力稍差。4、基于神经网络:这是当前准确率最高的一种复杂软件系统质量评价方法。利用样本数据对神经网络进行训练,将其训练为“软件质量评价领域专家”,然后将待评价软件的质量评价指标数据输入到神经网络中从而得到评价结果。但是,神经网络的计算比较复杂,参数配置对输出结果的影响较大,特别是当维数较大时,收敛速度较慢,甚至会出现不收敛、误判或漏判等情况。综上所述,如何有效的实现软件质量的评价是一项亟待解决的问题。技术实现要素:有鉴于此,本发明提供了一种基于二次评价的软件质量评价方法及系统,能够有效解决现有技术中软件质量评价方法的准确率不高、受专家主观因素影响较大、可扩展性较弱等问题。本发明提供了一种基于二次评价的软件质量评价方法,包括:选取软件质量评价指标空间,构建软件质量评价结果识别框架;按照软件质量评价指标空间和软件质量评价结果识别框架采集样本数据以及采集待评价软件的软件质量评价指标数据;确定bp神经网络的个数,按照所述软件质量评价指标空间和所述软件质量评价结果识别框架确定每个bp神经网络的拓扑结构;对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集,利用训练样本集对bp神经网络进行训练,利用测试样本集计算各bp神经网络的可信度;将待评价软件的质量评价指标数据分别输入到训练好的各bp神经网络,根据bp神经网络的输出结果得到初步评价结果;结合bp神经网络的可信度对初步评价结果进行修正处理,生成识别框架中各命题的基本概率赋值分配,利用ds证据理论对各证据进行融合,获得融合结果;基于决策准则对融合结果进行决策生成最终评价结果。优选地,所述确定bp神经网络的个数,按照所述软件质量评价指标空间和所述软件质量评价结果识别框架确定每个bp神经网络的拓扑结构包括:确定bp神经网络的个数l;确定bp神经网络ci(i=1,2,…,l)的拓扑结构;确定bp神经网络的激活函数、学习算法。优选地,所述对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集,利用训练样本集对bp神经网络进行训练,利用测试样本集计算各bp神经网络的可信度包括:采用交叉验证法将采集的样本数据集d划分为训练样本集、测试样本集;分别对bp神经网络进行训练,设当前被训练的bp神经网络为ci;分别计算各bp神经网络的可信度,设当前被处理的bp神经网络为ci。优选地,所述结合bp神经网络的可信度对初步评价结果进行修正处理,生成识别框架中各命题的基本概率赋值分配,利用ds证据理论对各证据进行融合,获得融合结果包括:结合bp神经网络ci(i=1,2,…,l)的可信度θi对初步评价结果进行修正处理,生成证据ei(i=1,2,…,l)的基本概率赋值分配ei=(mi(a1),mi(a2),…,mi(an),mi(θ)),其中:利用ds证据理论对各证据ei进行融合,获得融合结果f。一种基于二次评价的软件质量评价系统,包括:构建模块,用于选取软件质量评价指标空间,构建软件质量评价结果识别框架;采集模块,用于按照软件质量评价指标空间和软件质量评价结果识别框架采集样本数据以及采集待评价软件的软件质量评价指标数据;确定模块,用于确定bp神经网络的个数,按照所述软件质量评价指标空间和所述软件质量评价结果识别框架确定每个bp神经网络的拓扑结构;计算模块,用于对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集,利用训练样本集对bp神经网络进行训练,利用测试样本集计算各bp神经网络的可信度;输出模块,用于将待评价软件的质量评价指标数据分别输入到训练好的各bp神经网络,根据bp神经网络的输出结果得到初步评价结果;处理模块,用于结合bp神经网络的可信度对初步评价结果进行修正处理,生成识别框架中各命题的基本概率赋值分配,利用ds证据理论对各证据进行融合,获得融合结果;生成模块,用于基于决策准则对融合结果进行决策生成最终评价结果。优选地,所述确定模块具体用于:确定bp神经网络的个数l;确定bp神经网络ci(i=1,2,…,l)的拓扑结构;确定bp神经网络的激活函数、学习算法。优选地,所述计算模块具体用于:采用交叉验证法将采集的样本数据集d划分为训练样本集、测试样本集;分别对bp神经网络进行训练,设当前被训练的bp神经网络为ci;分别计算各bp神经网络的可信度,设当前被处理的bp神经网络为ci。优选地,所述处理模块具体用于:结合bp神经网络ci(i=1,2,…,l)的可信度θi对初步评价结果ri+进行修正处理,生成证据ei(i=1,2,…,l)的基本概率赋值分配ei=(mi(a1),mi(a2),…,mi(an),mi(θ)),其中:利用ds证据理论对各证据ei进行融合,获得融合结果f。从上述技术方案可以看出,本发明提供了一种基于二次评价的软件质量评价方法,在对软件质量进行评价时,首先选取软件质量评价指标空间,构建软件质量评价结果识别框架;按照软件质量评价指标空间和软件质量评价结果识别框架采集样本数据以及采集待评价软件的软件质量评价指标数据;确定bp神经网络的个数,按照所述软件质量评价指标空间和所述软件质量评价结果识别框架确定每个bp神经网络的拓扑结构;对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集,利用训练样本集对bp神经网络进行训练,利用测试样本集计算各bp神经网络的可信度;将待评价软件的质量评价指标数据分别输入到训练好的各bp神经网络,根据bp神经网络的输出结果得到初步评价结果;结合bp神经网络的可信度对初步评价结果进行修正处理,生成识别框架中各命题的基本概率赋值分配,利用ds证据理论对各证据进行融合,获得融合结果;基于决策准则对融合结果进行决策生成最终评价结果。本发明公开的软件质量评价方法准确率较高、可扩展性较强、训练时间和评价时间较短,满足对软件进行质量评价的要求。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明公开的一种基于二次评价的软件质量评价方法实施例1的方法流程图;图2为本发明公开的为样本数据集划分为训练集和测试集的方法示意图;图3为本发明公开的计算bp神经网络可信度的流程图;图4为本发明公开的一种基于二次评价的软件质量评价系统实施例1的结构示意图;图5为某机载光电成像系统组成图;图6为levenberg-marquard算法训练曲线;图7为梯度下降算法训练曲线。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,为本发明公开的一种基于二次评价的软件质量评价方法实施例1的流程图,所述方法包括:s101、选取软件质量评价指标空间,构建软件质量评价结果识别框架;设选取软件质量评价评价指标空间为u={t1,t2,…,tm},其中ti(i=1,2,…,m)表示软件质量评价评价指标空间中的第i个指标;软件质量评价结果识别框架为θ={a1,a2,…,an},其中软件评价结果为n个等级(v1、v2、…、vn),命题ai(i=1,2,…,n)表示当前待评价软件的质量等级为vi。s102、按照软件质量评价指标空间和软件质量评价结果识别框架采集样本数据以及采集待评价软件的软件质量评价指标数据;s103、确定bp神经网络的个数,按照所述软件质量评价指标空间和所述软件质量评价结果识别框架确定每个bp神经网络的拓扑结构;各bp神经网络是相互独立的,它们的拓扑结构、参数配置可以完全不同。(1)确定bp神经网络的个数为l。(2)确定bp神经网络ci(i=1,2,…,l)的拓扑结构。①隐含层的层数:设定为1。研究证明具有单层隐含层、激活函数为sigmoid的bp神经网络可以以任意精度逼近任何复杂的函数。增加网络层数虽然可以提高计算精度,减少误差,但会使得网络复杂程度较大,增加训练时间。为了提高计算精度,可以选择采用一个隐含层而增加隐含层的节点数。②输入层的节点数:等于评价指标空间u中评价指标的个数m。③输出层的节点数:等于软件质量评价结果识别框架θ中命题的个数,即评价结果的评价等级数n。④隐含层的节点数:根据经验公式(1)和学习训练结果相结合来确定隐含层节点的个数,其中i为输入层的节点数,o为输出层的节点数,a为[1,10]区间内的整数。(3)确定bp神经网络的激活函数、学习算法。选择sigmoid函数作为激活函数,选择levenberg-marquard算法作为学习算法。s104、对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集,利用训练样本集对bp神经网络进行训练,利用测试样本集计算各bp神经网络的可信度;对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集;利用训练样本集对bp神经网络进行训练,利用测试样本集计算bp神经网络的可信度θi(i=1,2,…,l)。(1)采用交叉验证法(crossvalidation)将采集的样本数据集d划分为训练样本集、测试样本集。将d按照公式(2)划分为s个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性。每次用s-1个子集的并集作为训练样本集,剩下的子集作为测试样本集,从而获得s组训练样本集和测试样本集,对bp神经网络进行s次训练、s次测试,根据s次测试结果计算bp神经网络的可信度。不失一般性,本发明中s=10,样本数据集划分过程详见图2。(2)分别对bp神经网络进行训练,设当前被训练的bp神经网络为ci。①选择训练样本集。②参数的初始化。对bp神经网络中涉及的权值和阀值初始化赋值,将训练集里的各样本数据进行归一化处理,使之位于[-1,1]区间内。③计算将输入层中的加权数据输入到隐含层中的激活函数得到的新值,再进行加权输入处理到输出层激活函数以得到输出层的计算结果。④如果计算的结果与预期结果存在误差,那么调整权值、阀值并重新计算每一层的输出结果直至误差在误差范围内为止。(3)分别计算各bp神经网络的可信度,设当前被处理的bp神经网络为ci。利用训练好的bp神经网络对测试样本集中的测试样本进行评价,以此计算bp神经网络的可信度,详见图3。该可信度用于在利用ds证据理论对初步评价结果融合之前对其进行修正。设bp神经网络ci(i=1,2,…,l)的输出结果为ri=(ci1,ci2,…,cin),其中cij表示ci的第j(j=1,2,…,n)个节点的输出结果。设numk为序号为k的测试样本集的样本总数,αk为ci评价正确的测试样本个数,βk为ci评价错误的测试样本个数,γk为ci拒绝给出评价结果的测试样本个数,按照定义公式(3)显然成立。numk=αk+βk+γk(3)在计算ci的可信度之前,需要将ri按照公式(4)和(5)进行归一化处理,处理结果为其中为cij进行归一化处理后的结果,为了计算bp神经网络ci的可信度,制定仅使用bp神经网络对测试样本进行软件质量评价时的评估准则,详见公式(6)。其中,εi为预设的阈值,εi∈(0,1)。假设将ci归一化后的输出结果有若满足如下评估准则,则当前测试样本的软件质量评价结果g′=vp,否则拒绝给出评价结果,γi值加1。若bp神经网络ci给出的评价结果与测试样本的真实结果一致,则αi值加1,否则βi值加1。根据bp神经网络ci对整个测试样本的处理情况,按照公式(7)和(8)计算bp神经网络ci输出的软件质量初步评价结果的可信度θi,θi∈[0,1]。s105、将待评价软件的质量评价指标数据分别输入到训练好的各bp神经网络,根据bp神经网络的输出结果得到初步评价结果;将待评价软件的质量评价指标数据分别输入到bp神经网络ci(i=1,2,…,l)中,得到输出结果ri,将ri按照公式(4)和(5)进行归一化处理后得到初步评价结果其中为cij进行归一化处理后的结果(ci针对aj的初步评价结果)。s106、结合bp神经网络的可信度对初步评价结果进行修正处理,生成识别框架中各命题的基本概率赋值分配,利用ds证据理论对各证据进行融合,获得融合结果;(1)结合bp神经网络ci(i=1,2,…,l)的可信度θi对初步评价结果ri+按照公式(9)进行修正处理,生成证据ei(i=1,2,…,l)的基本概率赋值分配ei=(mi(a1),mi(a2),…,mi(an),mi(θ))。(2)利用ds证据理论对各证据ei进行融合,获得融合结果f。设随机变量x可能取值的论域为θ,称θ为随机变量x的识别框架,如果θ内所有元素互不相容。本发明中θ={a1,a2,…,an},其中软件评价结果为n个等级(v1、v2、…、vn),命题ai(i=1,2,…,n)表示当前待评价软件的质量等级为vi。设识别框架为θ,2θ为θ的幂集,如果对于函数m:2θ→[0,1]满足公式(10),那么m(a)为a的基本概率赋值。设函数m:2θ→[0,1]为识别框架θ上的基本概率赋值,称函数bel为θ上的信任函数,如果函数bel:2θ→[0,1]满足公式(11),且bel(a)>0,那么a为信任函数bel的焦元。设识别框架θ上有信任函数bel1和bel2,与之相应的基本概率赋值为m1和m2,与之相应的焦元为a1,…,ak和b1,…,br,那么公式(12)中f为冲突因子,公式(13)为dempster组合规则。dempster组合规则满足结合律,当对多个证据进行融合时,可采用两两融合的方法进行。利用dempster组合规则对各证据ei(i=1,2,…,l)进行融合,获得融合结果f=(mf(a1),mf(a2),…,mf(an),mf(θ))。s107、基于决策准则对融合结果进行决策生成最终评价结果。基于ds证据理论融合进行决策的方法主要有基于信任函数的决策、基于基本概率赋值的决策和基于最小风险的决策。本发明选用基于基本概率赋值的决策方法,决策准则详见公式(14)。假设有ap、aq,若ap满足如下所有准则,则ap即为决策结果,否则拒绝给出评价结果。其中,γ1、γ2为预设的阈值,γ1∈(0,1),γ1∈(0,1)。根据决策结果ap可知待评价软件的最终评价结果g=vp。如图4所示,为本发明公开的一种基于二次评价的软件质量评价系统实施例1的结构示意图,所述系统包括:构建模块401,用于选取软件质量评价指标空间,构建软件质量评价结果识别框架;设选取软件质量评价评价指标空间为u={t1,t2,…,tm},其中ti(i=1,2,…,m)表示软件质量评价评价指标空间中的第i个指标;软件质量评价结果识别框架为θ={a1,a2,…,an},其中软件评价结果为n个等级(v1、v2、…、vn),命题ai(i=1,2,…,n)表示当前待评价软件的质量等级为vi。采集模块402,用于按照软件质量评价指标空间和软件质量评价结果识别框架采集样本数据以及采集待评价软件的软件质量评价指标数据;确定模块403,用于确定bp神经网络的个数,按照所述软件质量评价指标空间和所述软件质量评价结果识别框架确定每个bp神经网络的拓扑结构;各bp神经网络是相互独立的,它们的拓扑结构、参数配置可以完全不同。(1)确定bp神经网络的个数为l。(2)确定bp神经网络ci(i=1,2,…,l)的拓扑结构。①隐含层的层数:设定为1。研究证明具有单层隐含层、激活函数为sigmoid的bp神经网络可以以任意精度逼近任何复杂的函数。增加网络层数虽然可以提高计算精度,减少误差,但会使得网络复杂程度较大,增加训练时间。为了提高计算精度,可以选择采用一个隐含层而增加隐含层的节点数。②输入层的节点数:等于评价指标空间u中评价指标的个数m。③输出层的节点数:等于软件质量评价结果识别框架θ中命题的个数,即评价结果的评价等级数n。④隐含层的节点数:根据经验公式(1)和学习训练结果相结合来确定隐含层节点的个数,其中i为输入层的节点数,o为输出层的节点数,a为[1,10]区间内的整数。(3)确定bp神经网络的激活函数、学习算法。选择sigmoid函数作为激活函数,选择levenberg-marquard算法作为学习算法。计算模块404,用于对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集,利用训练样本集对bp神经网络进行训练,利用测试样本集计算各bp神经网络的可信度;对于每个bp神经网络,将样本数据划分为训练样本集、测试样本集;利用训练样本集对bp神经网络进行训练,利用测试样本集计算bp神经网络的可信度θi(i=1,2,…,l)。(1)采用交叉验证法(crossvalidation)将采集的样本数据集d划分为训练样本集、测试样本集。将d按照公式(2)划分为s个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性。每次用s-1个子集的并集作为训练样本集,剩下的子集作为测试样本集,从而获得s组训练样本集和测试样本集,对bp神经网络进行s次训练、s次测试,根据s次测试结果计算bp神经网络的可信度。不失一般性,本发明中s=10,样本数据集划分过程详见图2。(2)分别对bp神经网络进行训练,设当前被训练的bp神经网络为ci。①选择训练样本集。②参数的初始化。对bp神经网络中涉及的权值和阀值初始化赋值,将训练集里的各样本数据进行归一化处理,使之位于[-1,1]区间内。③计算将输入层中的加权数据输入到隐含层中的激活函数得到的新值,再进行加权输入处理到输出层激活函数以得到输出层的计算结果。④如果计算的结果与预期结果存在误差,那么调整权值、阀值并重新计算每一层的输出结果直至误差在误差范围内为止。(3)分别计算各bp神经网络的可信度,设当前被处理的bp神经网络为ci。利用训练好的bp神经网络对测试样本集中的测试样本进行评价,以此计算bp神经网络的可信度,详见图3。该可信度用于在利用ds证据理论对初步评价结果融合之前对其进行修正。设bp神经网络ci(i=1,2,…,l)的输出结果为ri=(ci1,ci2,…,cin),其中cij表示ci的第j(j=1,2,…,n)个节点的输出结果。设numk为序号为k的测试样本集的样本总数,αk为ci评价正确的测试样本个数,βk为ci评价错误的测试样本个数,γk为ci拒绝给出评价结果的测试样本个数,按照定义公式(3)显然成立。numk=αk+βk+γk(3)在计算ci的可信度之前,需要将ri按照公式(4)和(5)进行归一化处理,处理结果为其中为cij进行归一化处理后的结果,为了计算bp神经网络ci的可信度,制定仅使用bp神经网络对测试样本进行软件质量评价时的评估准则,详见公式(6)。其中,εi为预设的阈值,εi∈(0,1)。假设将ci归一化后的输出结果有若满足如下评估准则,则当前测试样本的软件质量评价结果g′=vp,否则拒绝给出评价结果,γi值加1。若bp神经网络ci给出的评价结果与测试样本的真实结果一致,则αi值加1,否则βi值加1。根据bp神经网络ci对整个测试样本的处理情况,按照公式(7)和(8)计算bp神经网络ci输出的软件质量初步评价结果的可信度θi,θi∈[0,1]。输出模块405,用于将待评价软件的质量评价指标数据分别输入到训练好的各bp神经网络,根据bp神经网络的输出结果得到初步评价结果;将待评价软件的质量评价指标数据分别输入到bp神经网络ci(i=1,2,…,l)中,得到输出结果ri,将ri按照公式(4)和(5)进行归一化处理后得到初步评价结果其中为cij进行归一化处理后的结果(ci针对aj的初步评价结果)。处理模块406,用于结合bp神经网络的可信度对初步评价结果进行修正处理,生成识别框架中各命题的基本概率赋值分配,利用ds证据理论对各证据进行融合,获得融合结果;(1)结合bp神经网络ci(i=1,2,…,l)的可信度θi对初步评价结果ri+按照公式(6)进行修正处理,生成证据ei(i=1,2,…,l)的基本概率赋值分配ei=(mi(a1),mi(a2),…,mi(an),mi(θ))。(2)利用ds证据理论对各证据ei进行融合,获得融合结果f。设随机变量x可能取值的论域为θ,称θ为随机变量x的识别框架,如果θ内所有元素互不相容。本发明中θ={a1,a2,…,an},其中软件评价结果为n个等级(v1、v2、…、vn),命题ai(i=1,2,…,n)表示当前待评价软件的质量等级为vi。设识别框架为θ,2θ为θ的幂集,如果对于函数m:2θ→[0,1]满足公式(10),那么m(a)为a的基本概率赋值。设函数m:2θ→[0,1]为识别框架θ上的基本概率赋值,称函数bel为θ上的信任函数,如果函数bel:2θ→[0,1]满足公式(11),且bel(a)>0,那么a为信任函数bel的焦元。设识别框架θ上有信任函数bel1和bel2,与之相应的基本概率赋值为m1和m2,与之相应的焦元为a1,…,ak和b1,…,br,那么公式(12)中f为冲突因子,公式(13)为dempster组合规则。dempster组合规则满足结合律,当对多个证据进行融合时,可采用两两融合的方法进行。利用dempster组合规则对各证据ei(i=1,2,…,l)进行融合,获得融合结果f=(mf(a1),mf(a2),…,mf(an),mf(θ))。生成模块407,用于基于决策准则对融合结果进行决策生成最终评价结果。基于ds证据理论融合进行决策的方法主要有基于信任函数的决策、基于基本概率赋值的决策和基于最小风险的决策。本发明选用基于基本概率赋值的决策方法,决策准则详见公式(14)。假设有ap、aq,若ap满足如下所有准则,则ap即为决策结果,否则拒绝给出评价结果。其中,γ1、γ2为预设的阈值,γ1∈(0,1),γ1∈(0,1)。根据决策结果ap可知待评价软件的最终评价结果g=vp。为了进一步对本发明进行说明,下面以具体的分析与试验结果进行说明。选取某机载光电成像系统作为待评价的复杂软件系统,用于验证本发明的评价准确度,该系统组成详见图5、相关指标数据和评价结果等级详见表1。该系统主要由球上主控软件、球内主控软件、伺服控制器软件、图像跟踪器软件、可见光摄像机软件、激光测距机软件和红外热成像仪软件组成,主要功能为自主跟踪成像,具有手动搜索、自动搜索、数字引导、扫描等多种伺服工作模式。利用matlabr2014a实现本发明所述方法并进行仿真实验。matlabr2014a的运行环境的硬件配置:cpu为intelcorei52.2ghz,内存为4gb,硬盘为1tb;操作系统为win7sp1。下面描述利用本发明对上述某机载光电成像系统进行软件质量评价过程,各指标取值见表1:(1)确定评价方法的输入、输出。选取的软件质量评价指标空间为u={t1,t2,…,t31}={功能完整性、功能正确性、功能适用性、时间特性、资源利用率、容量、共存性、互操作性、可被识别的适当性、易学性、易操作性、用户错误保护、用户界面美观、易接近性、成熟性、可用性、容错性、易恢复性、保密性、完整性、抗抵赖性、问责性、真实性、模块化、可重用性、易分析性、易修改性、易测性、适应性、易安装性、易替代性},详见表1。构建的软件质量评价结果识别框架为θ={a1,a2,a3,a4,a5},软件质量评价结果分为5个等级,分别用v1、v2、v3、v4、v5来表示软件质量为优秀、良好、合格、差、较差。命题ai(i=1,2,3,4,5)表示当前待评价软件的质量等级为vi。(2)依据软件质量评价指标空间采集了240组评价数据作为样本数据,采用交叉验证法将采集的样本数据划分为训练样本集、测试样本集。由于篇幅限制,选取了10个训练样本、4个测试样本对本发明进行描述,详见表1。其中各评价指标的评分取值为[0,1],取值越大说明该指标覆盖的软件质量越优秀。表1训练样本、测试样本、待评价软件数据(3)确定了软件质量评价指标空间和软件质量评价结果识别框架后,即确定了bp神经网络ci(i=1,2,…,8)的输入、输出,网络拓扑结构详见表2。本发明中各神经网络是相互独立的,它们的神经网络拓扑结构、参数配置可以完全不同。表2神经网络的拓扑结构以第1个bp神经网络c1为例对利用levenberg-marquard算法训练的过程进行描述。bp神经网络c1的参数设置为:学习率为0.1、最大训练次数为100000、误差精度为0.000001、激活函数为sigmoid函数,分别将学习算法设置为levenberg-marquard算法、梯度下降算法,其他参数设置相同,然后输入训练集中的样本数据,对bp神经网络进行训练,相应的训练曲线详见图6、图7。分析实验结果可知,采用levenberg-marquard算法进行训练的效果明显好于梯度下降算法,梯度下降算法经过34376次迭代后达到误差精度,levenberg-marquard算法经过9次迭代后达到误差精度。(4)bp神经网络训练完成之后,利用训练好的8个bp神经网络分别对测试样本进行评价,计算得到8个bp神经网络的可信度,详见表3。(5)将u中m=31个评价指标分别输入到l=8个bp神经网络中对软件质量进行初步评价。利用上述训练好的8个bp神经网络分别对该复杂软件系统进行初步评价,结果详见表3。若仅使用一个bp神经网络对软件质量进行评价(详见公式(6)),直接根据确定的软件质量评价结果即为g′,分析表3可知,c3和c5拒绝给出评价结果,c2确定的软件质量等级为v3,c1、c4、c6、c7和c8确定的软件质量等级为v2,各bp神经网络的评价情况差别较大,因此使用ds证据理论进行融合以减弱不确定性是必要的。(6)将bp神经网络的输出结果ri(i=1,2,…,8)分别依次进行归一化处理、利用可信度θi修正处理,生成证据ei对识别框架中各命题的基本概率赋值分配,详见表4。(7)利用ds证据理论将8个证据进行融合后的结果d详见表5。(8)将决策准则中阈值设置为γ1=0.10,γ2=0.10,根据决策准则产生的决策结果为a2,即待评价的某机载光电成像系统的最终评价结果为g=v2(良好),与样本数据中的真实评价结果一致。表3初步评价结果、直接评价结果表4识别框架中各命题的基本概率赋值分配表5ds证据理论融合结果为验证本发明所述方法的评价准确率、训练时间和评价处理时间,分别利用本发明与表6中所述典型方法对上述240组评价数据进行处理,实验结果详见表7、表8。其中,评价处理时间指从将待评价软件的评价指标数据输入评价方法到获得软件质量评价结果的时间。表6实验涉及评价方法概述表7待评价软件(数据序号为15)的评价结果表8性能指标比较评价方法评价结果准确率训练时间评价处理时间pnn73.86%183.80ms73.50msbpnn76.73%48285.00ms76.60mslm-bpnn85.16%553.20ms77.10msrbfnn89.75%201.50ms70.80ms本发明95.23%576.00ms77.50ms分析表7和表8可知,本发明所述方法的评价准确率可以达到95.23%,与评价准确率较好的rbfnn相比提高了6.11%。产生以上结果的原因为:(1)与其他方法相比,本发明在充分发挥bp神经网络的特性对软件质量进行初步评价的基础上,再次利用ds证据理论对初步评价结果进行融合,这样不仅进一步减弱了评价数据的不确定性,而且有效解决了评价指标之间的干扰、冲突。(2)鉴于本发明系统结构的灵活性,可以根据bp神经网络的可信度情况动态得修改、配置各bp神经网络以进一步提高评价准确度。本发明所述方法的训练时间为576.0ms,与采用梯度下降学习算法的bpnn相比减少98.81%,与lm-bpnn训练时间相同。本发明所述方法的评价处理时间为77.5ms,与评价速度最快的rbfnn相比仅增加9.46%。产生以上结果的原因有:(1)本发明使用了多个bp神经网络,但是多个bp神经网络是相互独立的,各bp神经网络的训练和初步评价可以并行处理,bp神经网络的训练时间、初步评价时间仅取决训练时间最长、初步评价时间最长的那一个或几个bp神经网络。而且,鉴于本发明系统结构的灵活性,可以根据bp神经网络的训练时间、初步评价时间动态得修改、配置各bp神经网络以进一步减少方法的训练时间、评价时间。(2)与其他方法相比,本发明仅增加了ds证据理论进行数据融合的处理时间,但是ds证据理论数据融合速度较快、时间代价较小。综上所述,本发明的创新点如下:1、利用bp神经网络解决评价结果受专家主观因素影响较大的问题。bp神经网络输入与输出之间的关系为高度非线性映射关系,一般难以将关系式表达出来,是通过训练学习过程根据反馈信息自动获得的客观权重,极大减弱了传统评价方法中专家主观因素的影响。同时,注意到bp神经网络的参数对融合结果有较大的影响,当缺乏问题的先验知识,需要通过大量实验摸索才能确定合适的参数设置。为解决该问题,本发明采用多个bp神经网络对同一个评价指标空间进行独立地初步评价,利用ds证据理论对初步评价结果进行融合来显著提高bp神经网络的泛化能力。2、可有效解决评价指标之间的干扰、冲突。本发明通过利用ds证据理论对初步评价结果进行融合来解决该问题。同时,充分考虑到了ds证据理论在对高度冲突的证据进行融合时会得出悖论的问题。3、本发明中各bp神经网络是相互独立的,它们的拓扑结构、参数配置可以完全不同,这样的系统结构有如下优点:(1)各bp神经网络的训练和初步评价可以并行处理,可以充分利用计算机并行处理能力,进一步加快数据处理的速度;(2)评价方法的系统结构灵活,可扩展性比较强。可以方便地配置增加、删除、修改一个或几个bp神经网络,因为不影响其他的bp神经网络,所以无需对已存在的训练好的bp神经网络进行重新训练、计算其输出的软件质量初步评价结果的可信度(以下简称bp神经网络的可信度),只需要对新增加、修改的bp神经网络进行重新训练、计算可信度后,就可以将其直接集成到现有的评价方法中。同时,可以根据bp神经网络的训练速度、初步评价速度、可信度情况动态得修改、配置各bp神经网络以进一步提高训练速度、评价处理速度和评价准确度。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1