鄭 鵬
(莆田學(xué)院 信息工程學(xué)院, 福建 莆田 351100)
?
基于LM-BP神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量綜合評(píng)價(jià)
鄭鵬
(莆田學(xué)院 信息工程學(xué)院, 福建 莆田 351100)
摘要:由于傳統(tǒng)軟件質(zhì)量評(píng)價(jià)存在主觀性等缺陷.針對(duì)這種情況,提出基于LM-BP神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量綜合評(píng)價(jià)方法.算法以ISO/IEC 9126為軟件質(zhì)量度量標(biāo)準(zhǔn),解決了標(biāo)準(zhǔn)BP算法存在的問題,建立了LM-BP神經(jīng)網(wǎng)絡(luò)軟件質(zhì)量綜合評(píng)價(jià)模型,為軟件質(zhì)量綜合評(píng)價(jià)提供了一種新的方法.實(shí)驗(yàn)結(jié)果表明,LM-BP神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量綜合評(píng)價(jià)能客觀、定量、快速且準(zhǔn)確得到軟件質(zhì)量綜合評(píng)價(jià)結(jié)果,該評(píng)價(jià)模型具有客觀性和實(shí)用性.
關(guān)鍵詞:軟件質(zhì)量; ISO/IEC 9126標(biāo)準(zhǔn); 神經(jīng)網(wǎng)絡(luò); LM-BP; 綜合評(píng)價(jià)
軟件產(chǎn)品質(zhì)量的評(píng)價(jià),即軟件產(chǎn)品質(zhì)量特性的檢測(cè)與度量.隨著計(jì)算機(jī)技術(shù)和軟件產(chǎn)業(yè)的發(fā)展,軟件質(zhì)量評(píng)價(jià)成為軟件工程領(lǐng)域的熱點(diǎn)問題.神經(jīng)網(wǎng)絡(luò)方法是通過模擬大腦神經(jīng)網(wǎng)絡(luò)處理、記憶信息的方式進(jìn)行信息處理,具有自我學(xué)習(xí)以及自適應(yīng)的能力.將神經(jīng)網(wǎng)絡(luò)應(yīng)用于軟件質(zhì)量評(píng)價(jià)之中,能克服傳統(tǒng)軟件質(zhì)量評(píng)價(jià)方法的一些缺陷,能快速、準(zhǔn)確地得到軟件質(zhì)量評(píng)價(jià)結(jié)果.為量化且客觀地對(duì)軟件質(zhì)量進(jìn)行評(píng)價(jià),本文以ISO/IEC9126軟件質(zhì)量為度量標(biāo)準(zhǔn),利用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法來(lái)建立軟件質(zhì)量綜合評(píng)價(jià)模型,并應(yīng)用構(gòu)建的算法模型對(duì)軟件質(zhì)量進(jìn)行評(píng)價(jià).
1神經(jīng)網(wǎng)絡(luò)方法
神經(jīng)網(wǎng)絡(luò)[1]是一種以動(dòng)物的神經(jīng)網(wǎng)絡(luò)行為特征作為模擬對(duì)象的分布式數(shù)學(xué)模型,通過模擬對(duì)信息進(jìn)行并行分布式處理.神經(jīng)網(wǎng)絡(luò)是把若干個(gè)可以調(diào)整的神經(jīng)元的權(quán)值連接起來(lái),具有可大規(guī)模并行處理以及優(yōu)良自我組織、自我學(xué)習(xí)能力等特點(diǎn),在計(jì)算機(jī)處理、智能信息控制等諸多領(lǐng)域得到很好的應(yīng)用.
迄今為止,神經(jīng)網(wǎng)絡(luò)已發(fā)展成為了數(shù)十種優(yōu)秀的模型,比如: Hinton模型、Hopficld模型、以及Kohonen的自我組織網(wǎng)絡(luò)模型和Rumelhart等的多層自我感知機(jī)模型等等.其中,應(yīng)用最廣泛的是多層感知機(jī)神經(jīng)網(wǎng)絡(luò)[2],即BP網(wǎng)絡(luò).BP因其采用誤差反向傳播算法而得名,上個(gè)世紀(jì)八十年代,D.E.Rumelhart與McCelland等幾個(gè)科學(xué)家提出了BP算法,BP算法的特點(diǎn)是結(jié)構(gòu)比較簡(jiǎn)單且容易實(shí)現(xiàn).經(jīng)過了數(shù)十年的發(fā)展,在實(shí)際應(yīng)用中已經(jīng)有了很多的神經(jīng)網(wǎng)絡(luò)模型變式.
BP網(wǎng)絡(luò)的結(jié)構(gòu)是一種分層型的網(wǎng)絡(luò),由三層:輸入層、隱層和輸出層組成(圖1).BP網(wǎng)絡(luò)各層之間既互連又獨(dú)立,網(wǎng)絡(luò)的各層間全互連,每一層中的各單元?jiǎng)t相互獨(dú)立.BP網(wǎng)絡(luò)中可有一個(gè)或多個(gè)的隱層.BP算法步驟如下:
(1)選擇學(xué)習(xí)訓(xùn)練集,設(shè)定n個(gè)學(xué)習(xí)樣本.
(2)參數(shù)的初始化,即對(duì)神經(jīng)網(wǎng)絡(luò)模型中涉及的權(quán)值和閥值初始化賦值,初始值通常設(shè)為(-1,1)之間的隨機(jī)數(shù),并將訓(xùn)練集里的各個(gè)樣本實(shí)行歸一化處理.
(3)計(jì)算將輸入層中的加權(quán)數(shù)據(jù)輸入到隱含層中的激活函數(shù)得到的新值,再進(jìn)行加權(quán)輸入處理到輸出層激活函數(shù)以得到輸出層的計(jì)算結(jié)果.
(4)如果計(jì)算的結(jié)果與預(yù)期結(jié)果存在誤差,那調(diào)整權(quán)值、閥值并重新計(jì)算每一層的輸出結(jié)果直至誤差在誤差范圍內(nèi)為止.
圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
2LM-BP算法
標(biāo)準(zhǔn)BP網(wǎng)絡(luò)算法的優(yōu)點(diǎn)是:結(jié)構(gòu)嚴(yán)謹(jǐn)、可操作性強(qiáng)等,但BP算法在收斂過程中存在收斂速度比較慢、“局部最小值”問題以及學(xué)習(xí)速率不易確定的缺點(diǎn).這些缺陷可以通過Levenberg-Marquardt BP算法(簡(jiǎn)稱LM-BP算法)來(lái)克服.相對(duì)于普通的神經(jīng)網(wǎng)絡(luò)算法LM-BP優(yōu)化算法的魯棒性好、收斂速度快.LM-BP算法是把高斯牛頓算法與梯度下降算法的結(jié)合起來(lái),同時(shí)改善了快速特性和全局收斂特性,進(jìn)而最終有效的改進(jìn)收斂性能.LM-BP算法的基本思想就是在應(yīng)用中要解決非最優(yōu)點(diǎn)奇異性的問題,做法是讓目標(biāo)函數(shù)在靠近最優(yōu)點(diǎn)時(shí)對(duì)極值點(diǎn)附近的特性近似二次性,以加快尋優(yōu)收斂過程.
對(duì)于新的權(quán)值與閥值的計(jì)算,可設(shè)x(m)以表示第m次的迭代里權(quán)值與閾值組成的向量,新的向量xm+1可表示為:
x(m+1)=x(m)+Δx
(1)
LM-BP算法是改進(jìn)的高斯—牛頓法,其形式[3]為:
Δx=-[JT(x)J(x)+μI]-1J(x)e(x)
(2)
式(2)中比例系數(shù)μ>0為常數(shù),I是單位矩陣.
當(dāng)比例系數(shù)μ取值為0時(shí),式(2)就是高斯—牛頓算法.算法在μ的取值變大時(shí)就會(huì)靠近梯度下降法.隨著成功迭代次數(shù)的增加,μ的值會(huì)減小.高斯—牛頓法的計(jì)算速度和精度在接近誤差最小值時(shí)會(huì)變得更快、更高.通過許多的實(shí)例證明,采用了近似二階導(dǎo)數(shù)信息的LM-BP算法的速度可比梯度下降法的速度高數(shù)十倍以上.除此之外,因?yàn)閇JT(x)J(x)+μI]本身是正定的,因此式(2)中的存在解,從這方面來(lái)看,LM算法也比高斯—牛頓法來(lái)的優(yōu).
3ISO/IEC9126軟件質(zhì)量度量標(biāo)準(zhǔn)
軟件產(chǎn)品中衡量明確或隱含的能力的有關(guān)特征的指標(biāo)綜合,即是軟件質(zhì)量.軟件質(zhì)量的評(píng)價(jià)評(píng)估,是充分保障質(zhì)量的重要方法.軟件產(chǎn)品的相關(guān)質(zhì)量特性,通常采用經(jīng)過確認(rèn)或被廣泛接受之尺度來(lái)評(píng)估.ISO/IEC 9126軟件質(zhì)量模型是國(guó)際標(biāo)準(zhǔn)化組織制定的一種評(píng)價(jià)軟件質(zhì)量通用模型.該標(biāo)準(zhǔn)定義了六種質(zhì)量特性,并描述了軟件質(zhì)量評(píng)估過程的模型.
ISO/IEC 9126軟件質(zhì)量度量模型[4-5]分為特性、子特性和度量三層.該度量模型中,一個(gè)質(zhì)量特性由一些子特性來(lái)衡量,而每一子特性又由若干個(gè)指標(biāo)來(lái)度量.按照獨(dú)立與最小關(guān)聯(lián)的原則,ISO/IEC 9126把軟件產(chǎn)品劃分為六大個(gè)質(zhì)量特性:功能性(Enctionality)、可靠性(Reliability)、易用性(Esability)、效率(Efficiency)、維護(hù)性(Maintainability)和可移植性(Portability) (如圖2所示),并選擇了與其對(duì)應(yīng)的21個(gè)子特性.ISO/IEC 912軟件度量模型中包含的軟件度量指標(biāo)體系,這些指標(biāo)體系針對(duì)的度量模型的三層,涵括了軟件內(nèi)、外部質(zhì)量度量的因素,都為定量客觀的評(píng)價(jià)軟件質(zhì)量打下基礎(chǔ),更為質(zhì)量控制作了堅(jiān)實(shí)的保障.
圖2 ISO/IEC 9126軟件質(zhì)量模型
4基于LM-BP算法的軟件質(zhì)量綜合評(píng)價(jià)模型
4.1指標(biāo)體系及評(píng)價(jià)分級(jí)標(biāo)準(zhǔn)
依據(jù)ISO/IEC 9126標(biāo)準(zhǔn),選取功能性、可靠性、易用性、效率、維護(hù)性、可移植性這6大特性以及下屬的21個(gè)指標(biāo)作為軟件質(zhì)量綜合評(píng)價(jià)的評(píng)價(jià)指標(biāo),用I1~I(xiàn)21表示(表1)[6].確定指標(biāo)體系后,把軟件質(zhì)量根據(jù)評(píng)價(jià)結(jié)果分為4個(gè)等級(jí),分別用V1,V2,V3,V4來(lái)表示軟件質(zhì)量的優(yōu)秀,良好,合格,不合格.向量表示為優(yōu)秀V1=(1,0,0,0),良好V2=(0,1,0,0),合格V3=(0,0,1,0),不合格V4=(0,0,0,1).
表1軟件質(zhì)量評(píng)價(jià)指標(biāo)體系
I評(píng)價(jià)指標(biāo)I評(píng)價(jià)指標(biāo)I1功能適合性I12時(shí)間特性I2功能準(zhǔn)確性I13效率特性I3功能互操作性I14維護(hù)易分析性I4功能依從性I15維護(hù)穩(wěn)定性I5功能安全性I16維護(hù)易改變性I6可靠成熟性I17維護(hù)易測(cè)試性I7可靠容錯(cuò)性I18可移植適合性I8可靠易恢復(fù)性I19可移植易安裝性I9易用易理解性I20可移植遵循性I10易用易學(xué)性I21可移植易替換性I11易用易操作性
4.2確定神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)
4.3模型參數(shù)及數(shù)據(jù)初始化
對(duì)模型進(jìn)行初始化[8],包括設(shè)定訓(xùn)練精度、學(xué)習(xí)因子,提供網(wǎng)絡(luò)初始權(quán)重文件、學(xué)習(xí)樣本文件.對(duì)于樣本數(shù)據(jù),訓(xùn)練之前將數(shù)據(jù)處理在[0,1]之間,可按式(3)進(jìn)行歸一化處理:
x′=(x-xmin)/(xmax-xmin)
(3)
4.4計(jì)算模型實(shí)際輸出
4.5權(quán)值調(diào)整
為滿足迭代要求,利用遞歸方法按以下公式調(diào)整權(quán)值讓輸出節(jié)點(diǎn)返回到隱層節(jié)點(diǎn):
Wk+1=Wk-[JT(WK)J(WK)+
μI]-1JT(Wk)E(Wk)
(4)
對(duì)權(quán)值矩陣迭代,直至滿足停止迭代要求為止.
4.6軟件質(zhì)量綜合評(píng)價(jià)
在進(jìn)行軟件質(zhì)量綜合評(píng)價(jià)前,應(yīng)選取多組能盡可能地反映各種軟件質(zhì)量等級(jí)軟件質(zhì)量的特征參數(shù)值供網(wǎng)絡(luò)系統(tǒng)作為學(xué)習(xí)樣本學(xué)習(xí).網(wǎng)絡(luò)系統(tǒng)在確定各層輸入輸出節(jié)點(diǎn)及隱節(jié)點(diǎn)并調(diào)整權(quán)值并進(jìn)行學(xué)習(xí)訓(xùn)練后,形成了一個(gè)推理機(jī)制,最終構(gòu)成一個(gè)可進(jìn)行軟件質(zhì)量綜合評(píng)價(jià)的知識(shí)庫(kù).此外,還可以利用每次的軟件的評(píng)價(jià)結(jié)果不斷更新原有的軟件質(zhì)量評(píng)價(jià)知識(shí)庫(kù).如此,在對(duì)待評(píng)價(jià)軟件進(jìn)行軟件質(zhì)量評(píng)價(jià)時(shí),只需要在訓(xùn)練好的網(wǎng)絡(luò)評(píng)價(jià)模型中輸入指標(biāo)值,經(jīng)過模型計(jì)算,即可得到該軟件質(zhì)量的綜合評(píng)價(jià)值.
5實(shí)例
該標(biāo)準(zhǔn)定義了六種質(zhì)量特性,并描述了軟件質(zhì)量評(píng)估過程的模型.筆者根據(jù)軟件質(zhì)量標(biāo)準(zhǔn)化自評(píng)和正式評(píng)價(jià)的結(jié)果及相關(guān)資料,結(jié)合評(píng)分標(biāo)準(zhǔn),收集了20組數(shù)據(jù),其中前18組作為訓(xùn)練樣本建立軟件質(zhì)量綜合評(píng)價(jià)知識(shí)庫(kù),最后兩組作為檢驗(yàn)樣本(表2).
5.1網(wǎng)絡(luò)參數(shù)設(shè)置與訓(xùn)練
本文使用MATLAB編寫程序進(jìn)行仿真.
當(dāng)采用經(jīng)典BP算法時(shí),根據(jù)以上所述的神經(jīng)網(wǎng)絡(luò)模型生成神經(jīng)網(wǎng)絡(luò),系統(tǒng)原始初始化權(quán)值以及隱藏層和輸出層的閾值后,設(shè)定學(xué)習(xí)率為0.3、最大訓(xùn)練次數(shù)為100000以及誤差精度為0.00001,輸入訓(xùn)練集中的樣本數(shù)據(jù),對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.歷時(shí)262s,經(jīng)過29736次迭代之后,訓(xùn)練結(jié)束(圖3).
表2LM-BP學(xué)習(xí)訓(xùn)練及驗(yàn)證樣本
NI1I2I3I4I5I6I7I8I9I10I11I12I13I14I15I16I17I18I19I20I21等級(jí)1453347346963465736557V32675766968967683998979V43231329322633226132133V14435647344333446334333V25213329122333248132131V16633548322663426364553V27211349342331226332113V18897985786997684999677V49455746566665865766555V310613566546665244568777V311231728324363426162355V212655366364667664568775V313211129122331227332113V114253548342665446334555V215675766766999864766793V416211129124331248332311V117473547566665664566555V318211128122331227134311V119453567566695645366537V320233348324331446334533V2
圖3 BP算法訓(xùn)練曲線
當(dāng)采用LM-BP算法時(shí),根據(jù)以上所述的神經(jīng)網(wǎng)絡(luò)模型生成神經(jīng)網(wǎng)絡(luò),系統(tǒng)原始初始化權(quán)值以及隱藏層和輸出層的閾值后,設(shè)定學(xué)習(xí)率為0.25、最大訓(xùn)練次數(shù)為100000、隱含層神經(jīng)元數(shù)為7以及誤差精度為0.00001,閥值初始化為0,輸入訓(xùn)練集中的樣本數(shù)據(jù),對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.歷時(shí)8s,經(jīng)過8次迭代之后,訓(xùn)練結(jié)束(圖4).本文采用仿真的計(jì)算機(jī)硬件配置是:CPU為Intel(R)Celeron(R)G530,內(nèi)存1G,硬盤120G.
圖4 LM-BP算法訓(xùn)練曲線
5.2實(shí)例驗(yàn)證
系統(tǒng)訓(xùn)練后,使用最后2組數(shù)據(jù)驗(yàn)證的指標(biāo)值(表2),經(jīng)過模型驗(yàn)證計(jì)算出最終的計(jì)算輸出結(jié)果(表3).實(shí)例證明,實(shí)際的評(píng)價(jià)結(jié)果和改進(jìn)算法的預(yù)測(cè)結(jié)果一致,由此可以證明此LM-BP神經(jīng)網(wǎng)絡(luò)綜合評(píng)價(jià)方法能夠達(dá)到預(yù)期效果.
表3LM-BP學(xué)習(xí)訓(xùn)練及驗(yàn)證樣本
樣本號(hào)標(biāo)準(zhǔn)BP算法評(píng)價(jià)結(jié)果LM-BP算法評(píng)價(jià)結(jié)果實(shí)際結(jié)果質(zhì)量等級(jí)190.00270.00020-0.0194-0.029501.05161.004710.06080.00170V3200.05180.035700.89510.997310.03470.012600.00120.00030V2
5.3與標(biāo)準(zhǔn)BP算法的比較
從圖3、圖4的訓(xùn)練曲線與表3的評(píng)價(jià)結(jié)果中發(fā)現(xiàn),相比于標(biāo)準(zhǔn)的BP算法,采用LM-BP算法的模型精度優(yōu)于標(biāo)準(zhǔn)的BP算法.LM-BP算法的誤差在訓(xùn)練中急劇下降,可見該算法可節(jié)省大量的訓(xùn)練時(shí)間,運(yùn)算速度比標(biāo)準(zhǔn)BP算法快很多.樣本的預(yù)測(cè)結(jié)果說明此網(wǎng)絡(luò)的收斂速度不僅快,而且收斂性也很好,軟件質(zhì)量的綜合評(píng)價(jià)精度高.
6結(jié)束語(yǔ)
本文通過系統(tǒng)的規(guī)劃、設(shè)計(jì)、實(shí)現(xiàn)證明,人工神經(jīng)網(wǎng)絡(luò)方法克服了傳統(tǒng)分析過程的復(fù)雜性,是一種自然的非線性建模過程.然后為了解決標(biāo)準(zhǔn)BP算法收斂速度慢、計(jì)算量大的缺點(diǎn),引入了基于LM-BP算法的神經(jīng)網(wǎng)絡(luò)軟件質(zhì)量綜合評(píng)價(jià)模型.實(shí)驗(yàn)表明,LM-BP算法可提高網(wǎng)絡(luò)的訓(xùn)練速度,而且預(yù)測(cè)的精度更高.因此,基于LM-BP算法的神經(jīng)網(wǎng)絡(luò)模型為軟件質(zhì)量綜合評(píng)價(jià)提供了一種新的研究思路,該方法用于實(shí)際的軟件質(zhì)量綜合評(píng)價(jià)中將給決策者提供重要的參考,具有一定的科學(xué)和實(shí)用價(jià)值.
參考文獻(xiàn):
[1] 艾洪福,石瑩.基于BP人工神經(jīng)網(wǎng)絡(luò)的霧霾天氣預(yù)測(cè)研究 [J]. 計(jì)算機(jī)仿真,2015,32(01):402-415.
[2] 陳濤.專家知識(shí)與神經(jīng)網(wǎng)絡(luò)在艦載軟件質(zhì)量評(píng)價(jià)中的應(yīng)用[J]. 電子制作,2015(01):77-78.
[3] 王欣彥,王立鵬,李新. 基于LM-BP神經(jīng)網(wǎng)絡(luò)的電機(jī)轉(zhuǎn)子裂紋故障診斷[J]. 微特電機(jī),2015,43(04):18-21.
[4] 洪流,黃海波,賈春暉,肖靜. 基于外部質(zhì)量特性的軟件質(zhì)量模糊綜合評(píng)價(jià)方法的研究[J]. 現(xiàn)代計(jì)算機(jī)(專業(yè)版) 2015, 5(15):6-8.
[5] 夏剛,樓文高,婁元英. 軟件質(zhì)量綜合評(píng)價(jià)的投影尋蹤模型[J].信息技術(shù),2014(03):72-74.
[6]鄭鵬. 基于灰色-Vague集的軟件質(zhì)量綜合評(píng)價(jià)[J].莆田學(xué)院學(xué)報(bào),2014(2):55-59.
[7] 王晶晶,王劍. 一種BP神經(jīng)網(wǎng)絡(luò)改進(jìn)算法研究[J].軟件導(dǎo)刊,2015(3):56-57.
[8] 路闊,鐘伯成. 基于LMBP神經(jīng)網(wǎng)絡(luò)的建筑能耗預(yù)測(cè)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,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
中圖分類號(hào):TP311.52
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1672-6197(2016)03-0074-05
作者簡(jiǎn)介:鄭鵬,男,595410007@qq.com
收稿日期:2015-08-01