郑 鹏
(莆田学院 信息工程学院, 福建 莆田 351100)
基于LM-BP神经网络的软件质量综合评价
郑鹏
(莆田学院 信息工程学院, 福建 莆田 351100)
摘要:由于传统软件质量评价存在主观性等缺陷.针对这种情况,提出基于LM-BP神经网络的软件质量综合评价方法.算法以ISO/IEC 9126为软件质量度量标准,解决了标准BP算法存在的问题,建立了LM-BP神经网络软件质量综合评价模型,为软件质量综合评价提供了一种新的方法.实验结果表明,LM-BP神经网络的软件质量综合评价能客观、定量、快速且准确得到软件质量综合评价结果,该评价模型具有客观性和实用性.
关键词:软件质量; ISO/IEC 9126标准; 神经网络; LM-BP; 综合评价
软件产品质量的评价,即软件产品质量特性的检测与度量.随着计算机技术和软件产业的发展,软件质量评价成为软件工程领域的热点问题.神经网络方法是通过模拟大脑神经网络处理、记忆信息的方式进行信息处理,具有自我学习以及自适应的能力.将神经网络应用于软件质量评价之中,能克服传统软件质量评价方法的一些缺陷,能快速、准确地得到软件质量评价结果.为量化且客观地对软件质量进行评价,本文以ISO/IEC9126软件质量为度量标准,利用改进的BP神经网络算法来建立软件质量综合评价模型,并应用构建的算法模型对软件质量进行评价.
1神经网络方法
神经网络[1]是一种以动物的神经网络行为特征作为模拟对象的分布式数学模型,通过模拟对信息进行并行分布式处理.神经网络是把若干个可以调整的神经元的权值连接起来,具有可大规模并行处理以及优良自我组织、自我学习能力等特点,在计算机处理、智能信息控制等诸多领域得到很好的应用.
迄今为止,神经网络已发展成为了数十种优秀的模型,比如: Hinton模型、Hopficld模型、以及Kohonen的自我组织网络模型和Rumelhart等的多层自我感知机模型等等.其中,应用最广泛的是多层感知机神经网络[2],即BP网络.BP因其采用误差反向传播算法而得名,上个世纪八十年代,D.E.Rumelhart与McCelland等几个科学家提出了BP算法,BP算法的特点是结构比较简单且容易实现.经过了数十年的发展,在实际应用中已经有了很多的神经网络模型变式.
BP网络的结构是一种分层型的网络,由三层:输入层、隐层和输出层组成(图1).BP网络各层之间既互连又独立,网络的各层间全互连,每一层中的各单元则相互独立.BP网络中可有一个或多个的隐层.BP算法步骤如下:
(1)选择学习训练集,设定n个学习样本.
(2)参数的初始化,即对神经网络模型中涉及的权值和阀值初始化赋值,初始值通常设为(-1,1)之间的随机数,并将训练集里的各个样本实行归一化处理.
(3)计算将输入层中的加权数据输入到隐含层中的激活函数得到的新值,再进行加权输入处理到输出层激活函数以得到输出层的计算结果.
(4)如果计算的结果与预期结果存在误差,那调整权值、阀值并重新计算每一层的输出结果直至误差在误差范围内为止.
图1 神经网络结构图
2LM-BP算法
标准BP网络算法的优点是:结构严谨、可操作性强等,但BP算法在收敛过程中存在收敛速度比较慢、“局部最小值”问题以及学习速率不易确定的缺点.这些缺陷可以通过Levenberg-Marquardt BP算法(简称LM-BP算法)来克服.相对于普通的神经网络算法LM-BP优化算法的鲁棒性好、收敛速度快.LM-BP算法是把高斯牛顿算法与梯度下降算法的结合起来,同时改善了快速特性和全局收敛特性,进而最终有效的改进收敛性能.LM-BP算法的基本思想就是在应用中要解决非最优点奇异性的问题,做法是让目标函数在靠近最优点时对极值点附近的特性近似二次性,以加快寻优收敛过程.
对于新的权值与阀值的计算,可设x(m)以表示第m次的迭代里权值与阈值组成的向量,新的向量xm+1可表示为:
x(m+1)=x(m)+Δx
(1)
LM-BP算法是改进的高斯—牛顿法,其形式[3]为:
Δx=-[JT(x)J(x)+μI]-1J(x)e(x)
(2)
式(2)中比例系数μ>0为常数,I是单位矩阵.
当比例系数μ取值为0时,式(2)就是高斯—牛顿算法.算法在μ的取值变大时就会靠近梯度下降法.随着成功迭代次数的增加,μ的值会减小.高斯—牛顿法的计算速度和精度在接近误差最小值时会变得更快、更高.通过许多的实例证明,采用了近似二阶导数信息的LM-BP算法的速度可比梯度下降法的速度高数十倍以上.除此之外,因为[JT(x)J(x)+μI]本身是正定的,因此式(2)中的存在解,从这方面来看,LM算法也比高斯—牛顿法来的优.
3ISO/IEC9126软件质量度量标准
软件产品中衡量明确或隐含的能力的有关特征的指标综合,即是软件质量.软件质量的评价评估,是充分保障质量的重要方法.软件产品的相关质量特性,通常采用经过确认或被广泛接受之尺度来评估.ISO/IEC 9126软件质量模型是国际标准化组织制定的一种评价软件质量通用模型.该标准定义了六种质量特性,并描述了软件质量评估过程的模型.
ISO/IEC 9126软件质量度量模型[4-5]分为特性、子特性和度量三层.该度量模型中,一个质量特性由一些子特性来衡量,而每一子特性又由若干个指标来度量.按照独立与最小关联的原则,ISO/IEC 9126把软件产品划分为六大个质量特性:功能性(Enctionality)、可靠性(Reliability)、易用性(Esability)、效率(Efficiency)、维护性(Maintainability)和可移植性(Portability) (如图2所示),并选择了与其对应的21个子特性.ISO/IEC 912软件度量模型中包含的软件度量指标体系,这些指标体系针对的度量模型的三层,涵括了软件内、外部质量度量的因素,都为定量客观的评价软件质量打下基础,更为质量控制作了坚实的保障.
图2 ISO/IEC 9126软件质量模型
4基于LM-BP算法的软件质量综合评价模型
4.1指标体系及评价分级标准
依据ISO/IEC 9126标准,选取功能性、可靠性、易用性、效率、维护性、可移植性这6大特性以及下属的21个指标作为软件质量综合评价的评价指标,用I1~I21表示(表1)[6].确定指标体系后,把软件质量根据评价结果分为4个等级,分别用V1,V2,V3,V4来表示软件质量的优秀,良好,合格,不合格.向量表示为优秀V1=(1,0,0,0),良好V2=(0,1,0,0),合格V3=(0,0,1,0),不合格V4=(0,0,0,1).
表1软件质量评价指标体系
I评价指标I评价指标I1功能适合性I12时间特性I2功能准确性I13效率特性I3功能互操作性I14维护易分析性I4功能依从性I15维护稳定性I5功能安全性I16维护易改变性I6可靠成熟性I17维护易测试性I7可靠容错性I18可移植适合性I8可靠易恢复性I19可移植易安装性I9易用易理解性I20可移植遵循性I10易用易学性I21可移植易替换性I11易用易操作性
4.2确定神经网络的拓扑结构
4.3模型参数及数据初始化
对模型进行初始化[8],包括设定训练精度、学习因子,提供网络初始权重文件、学习样本文件.对于样本数据,训练之前将数据处理在[0,1]之间,可按式(3)进行归一化处理:
x′=(x-xmin)/(xmax-xmin)
(3)
4.4计算模型实际输出
4.5权值调整
为满足迭代要求,利用递归方法按以下公式调整权值让输出节点返回到隐层节点:
Wk+1=Wk-[JT(WK)J(WK)+
μI]-1JT(Wk)E(Wk)
(4)
对权值矩阵迭代,直至满足停止迭代要求为止.
4.6软件质量综合评价
在进行软件质量综合评价前,应选取多组能尽可能地反映各种软件质量等级软件质量的特征参数值供网络系统作为学习样本学习.网络系统在确定各层输入输出节点及隐节点并调整权值并进行学习训练后,形成了一个推理机制,最终构成一个可进行软件质量综合评价的知识库.此外,还可以利用每次的软件的评价结果不断更新原有的软件质量评价知识库.如此,在对待评价软件进行软件质量评价时,只需要在训练好的网络评价模型中输入指标值,经过模型计算,即可得到该软件质量的综合评价值.
5实例
该标准定义了六种质量特性,并描述了软件质量评估过程的模型.笔者根据软件质量标准化自评和正式评价的结果及相关资料,结合评分标准,收集了20组数据,其中前18组作为训练样本建立软件质量综合评价知识库,最后两组作为检验样本(表2).
5.1网络参数设置与训练
本文使用MATLAB编写程序进行仿真.
当采用经典BP算法时,根据以上所述的神经网络模型生成神经网络,系统原始初始化权值以及隐藏层和输出层的阈值后,设定学习率为0.3、最大训练次数为100000以及误差精度为0.00001,输入训练集中的样本数据,对神经网络进行训练.历时262s,经过29736次迭代之后,训练结束(图3).
表2LM-BP学习训练及验证样本
NI1I2I3I4I5I6I7I8I9I10I11I12I13I14I15I16I17I18I19I20I21等级1453347346963465736557V32675766968967683998979V43231329322633226132133V14435647344333446334333V25213329122333248132131V16633548322663426364553V27211349342331226332113V18897985786997684999677V49455746566665865766555V310613566546665244568777V311231728324363426162355V212655366364667664568775V313211129122331227332113V114253548342665446334555V215675766766999864766793V416211129124331248332311V117473547566665664566555V318211128122331227134311V119453567566695645366537V320233348324331446334533V2
图3 BP算法训练曲线
当采用LM-BP算法时,根据以上所述的神经网络模型生成神经网络,系统原始初始化权值以及隐藏层和输出层的阈值后,设定学习率为0.25、最大训练次数为100000、隐含层神经元数为7以及误差精度为0.00001,阀值初始化为0,输入训练集中的样本数据,对神经网络进行训练.历时8s,经过8次迭代之后,训练结束(图4).本文采用仿真的计算机硬件配置是:CPU为Intel(R)Celeron(R)G530,内存1G,硬盘120G.
图4 LM-BP算法训练曲线
5.2实例验证
系统训练后,使用最后2组数据验证的指标值(表2),经过模型验证计算出最终的计算输出结果(表3).实例证明,实际的评价结果和改进算法的预测结果一致,由此可以证明此LM-BP神经网络综合评价方法能够达到预期效果.
表3LM-BP学习训练及验证样本
样本号标准BP算法评价结果LM-BP算法评价结果实际结果质量等级190.00270.00020-0.0194-0.029501.05161.004710.06080.00170V3200.05180.035700.89510.997310.03470.012600.00120.00030V2
5.3与标准BP算法的比较
从图3、图4的训练曲线与表3的评价结果中发现,相比于标准的BP算法,采用LM-BP算法的模型精度优于标准的BP算法.LM-BP算法的误差在训练中急剧下降,可见该算法可节省大量的训练时间,运算速度比标准BP算法快很多.样本的预测结果说明此网络的收敛速度不仅快,而且收敛性也很好,软件质量的综合评价精度高.
6结束语
本文通过系统的规划、设计、实现证明,人工神经网络方法克服了传统分析过程的复杂性,是一种自然的非线性建模过程.然后为了解决标准BP算法收敛速度慢、计算量大的缺点,引入了基于LM-BP算法的神经网络软件质量综合评价模型.实验表明,LM-BP算法可提高网络的训练速度,而且预测的精度更高.因此,基于LM-BP算法的神经网络模型为软件质量综合评价提供了一种新的研究思路,该方法用于实际的软件质量综合评价中将给决策者提供重要的参考,具有一定的科学和实用价值.
参考文献:
[1] 艾洪福,石莹.基于BP人工神经网络的雾霾天气预测研究 [J]. 计算机仿真,2015,32(01):402-415.
[2] 陈涛.专家知识与神经网络在舰载软件质量评价中的应用[J]. 电子制作,2015(01):77-78.
[3] 王欣彦,王立鹏,李新. 基于LM-BP神经网络的电机转子裂纹故障诊断[J]. 微特电机,2015,43(04):18-21.
[4] 洪流,黄海波,贾春晖,肖静. 基于外部质量特性的软件质量模糊综合评价方法的研究[J]. 现代计算机(专业版) 2015, 5(15):6-8.
[5] 夏刚,楼文高,娄元英. 软件质量综合评价的投影寻踪模型[J].信息技术,2014(03):72-74.
[6]郑鹏. 基于灰色-Vague集的软件质量综合评价[J].莆田学院学报,2014(2):55-59.
[7] 王晶晶,王剑. 一种BP神经网络改进算法研究[J].软件导刊,2015(3):56-57.
[8] 路阔,钟伯成. 基于LMBP神经网络的建筑能耗预测[J]. 计算机技术与发展,2015(06):243-246.
(编辑:姚佳良)
The comprehensive evaluation of software quality based on LM-BP neural network
ZHENG Peng
(College of Information Engineering, Putian University, Putian 351100, China)
Abstract:Because traditional software quality evaluation has some defects such as subjectivity, we proposed a method based on levenberg marquardt-back propagation(LM-BP) neural network software quality comprehensive evaluation. Based on ISO/IEC 9126 software quality model, the algorithm solves the problems existing in the standard BP algorithm, establishes the LM-BP neural network software quality comprehensive evaluation model, and offers a new method for comprehensive evaluation of software quality. Experimental results show that the LM-BP neural network software quality comprehensive evaluation is objective, quantitative, fast and accurate. The evaluation model is objective and practical.
Key words:software quality; ISO / IEC 9126 standard; neural network; levenberg marquardt-back propagation; comprehensive evaluation
中图分类号:TP311.52
文献标志码:A
文章编号:1672-6197(2016)03-0074-05
作者简介:郑鹏,男,595410007@qq.com
收稿日期:2015-08-01