国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)軟件缺陷預(yù)測方法

2018-05-23 01:17趙正偉
關(guān)鍵詞:軟件缺陷分類器關(guān)聯(lián)

胡 柳,鄧 杰,趙正偉,李 瑞

(1. 湖南信息職業(yè)技術(shù)學(xué)院 計算機工程學(xué)院,湖南 長沙 410200; 2.廣西民族大學(xué) 信息科學(xué)與工程學(xué)院,廣西 南寧 530006;3. 河北省眼科醫(yī)院 信息科,河北 邢臺 054000)

0 引言

隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,軟件復(fù)雜程度不斷提高,軟件規(guī)模由單一的本地軟件逐漸演化成為網(wǎng)絡(luò)化軟件,軟件缺陷影響著人們生活的方方面面。良好的軟件缺陷控制和預(yù)測機制可以幫助企業(yè)開發(fā)出高質(zhì)量的軟件產(chǎn)品,防止軟件因系統(tǒng)缺陷而導(dǎo)致的嚴重后果,降低軟件維護成本,并提高客戶滿意度。因此,軟件開發(fā)過程和軟件質(zhì)量越來越受到重視,如何預(yù)測網(wǎng)絡(luò)化軟件系統(tǒng)缺陷成為當(dāng)前研究的熱點領(lǐng)域。

目前,國內(nèi)外軟件缺陷研究領(lǐng)域相關(guān)學(xué)者進行了深入的研究并取得了一系列的成果。主流的方法有基于統(tǒng)計分析學(xué)方法、基于神經(jīng)網(wǎng)絡(luò)的軟件缺陷預(yù)測模型等。傅藝綺等人[1]提出了一種基于組合機器學(xué)習(xí)算法的軟件缺陷預(yù)測模型,利用機器學(xué)習(xí)算法在不同評價指標上的不同優(yōu)勢,結(jié)合stacking集成學(xué)習(xí)方法提出將不同預(yù)測算法的預(yù)測結(jié)果作為軟件度量并進行再次預(yù)測。熊婧等人[2]將Adaboost算法原理通過訓(xùn)練多個弱分類器構(gòu)成一個更強的級聯(lián)分類器,通過采用美國國家航空航天局(NASA)的軟件缺陷數(shù)據(jù)庫進行仿真實驗,有效地提高了軟件缺陷預(yù)測模型的預(yù)測性能。程銘等人[3]提出一種加權(quán)貝葉斯遷移學(xué)習(xí)算法,通過收集訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的特征信息并計算特征差異,將不同項目數(shù)據(jù)之間差異轉(zhuǎn)化為訓(xùn)練數(shù)據(jù)權(quán)重,并建立預(yù)測模型,在8個開源項目數(shù)據(jù)集上進行實驗。張德平等人[4]借鑒Granger檢驗思想,利用GMDH網(wǎng)絡(luò)選擇與軟件失效具有因果關(guān)系的度量指標,建立軟件缺陷預(yù)測模型,并通過兩組真實軟件失效數(shù)據(jù)集,將所提出的方法與其他方法進行比較分析。馬振宇等人[5]在BP算法建立模型的基礎(chǔ)上,使用SC-PSO算法優(yōu)化BP的參數(shù)值,通過十折交叉的方法對結(jié)果展開分析,結(jié)果表明該方法對軟件缺陷預(yù)測有更大的幫助。

在軟件缺陷預(yù)測研究中,針對軟件缺陷數(shù)據(jù)具有代價敏感性且軟件度量取值為連續(xù)值的特點,李偉湋等人[6]提出基于領(lǐng)域三支決策粗糙集模型的軟件缺陷預(yù)測方法。針對軟件代碼背后隱藏的不同技術(shù)方面和主題問題導(dǎo)致的軟件缺陷,張澤濤等人[7]提出一種基于主題模型的軟件缺陷預(yù)測技術(shù)。針對軟件可靠性預(yù)測模型在現(xiàn)實環(huán)境中的應(yīng)用問題,李東林等人[8]對軟件可靠性數(shù)據(jù)預(yù)處理進行了研究,蔣永輝等人[9]提出了軟件過程的軟件可靠性預(yù)測運作模型。

針對網(wǎng)絡(luò)化軟件缺陷預(yù)測中缺陷之間的顯性關(guān)聯(lián)關(guān)系和隱性關(guān)聯(lián)關(guān)系,本文提出一種基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)軟件缺陷預(yù)測方法。關(guān)聯(lián)規(guī)則算法廣泛應(yīng)用于商業(yè)、網(wǎng)絡(luò)安全及移動通信領(lǐng)域,通過對數(shù)據(jù)的關(guān)聯(lián)性進行分析和挖掘,開展決策過程。本文將結(jié)合NASA的軟件缺陷數(shù)據(jù)庫進行仿真實驗。

1 網(wǎng)絡(luò)軟件缺陷預(yù)測

1.1 網(wǎng)絡(luò)軟件缺陷預(yù)測存在的問題

網(wǎng)絡(luò)軟件缺陷預(yù)測中,由于數(shù)據(jù)分布、數(shù)據(jù)特征和軟件質(zhì)量等問題導(dǎo)致預(yù)測算法或模型難以在現(xiàn)實軟件中進行有效的預(yù)測,而網(wǎng)絡(luò)軟件測試過程的數(shù)據(jù)包括有效數(shù)據(jù)樣本和失效數(shù)據(jù)樣本,在網(wǎng)絡(luò)軟件缺陷預(yù)測中如何有效利用失效數(shù)據(jù)進行預(yù)測才是重點。

目前,軟件缺陷預(yù)測用到的主要方法和技術(shù)有神經(jīng)網(wǎng)絡(luò)算法、貝葉斯網(wǎng)絡(luò)、機器學(xué)習(xí)法、支持向量機、主題模型及遷移學(xué)習(xí)等。研究者利用這些方法進行了軟件缺陷預(yù)測模型的設(shè)計,并取得了較好的效果。但這些傳統(tǒng)的算法模型并未全面考慮影響軟件質(zhì)量和可靠性的各項不確定性因素,未能很好地描述軟件內(nèi)部的缺陷。為了尋求最佳的預(yù)測效果,在有效數(shù)據(jù)和失效數(shù)據(jù)的獲取過程中應(yīng)從軟件靜態(tài)和動態(tài)兩方面同時獲取,使得其樣本數(shù)據(jù)總量能最大限度地支持精細化預(yù)測,降低預(yù)測偏差。因此,本文在基于關(guān)聯(lián)規(guī)則的基礎(chǔ)上,采用關(guān)聯(lián)規(guī)則算法對網(wǎng)絡(luò)化軟件缺陷預(yù)測方法進行分析與建模,以尋求獲取較好的缺陷預(yù)測結(jié)果。

1.2 網(wǎng)絡(luò)軟件缺陷預(yù)測架構(gòu)

網(wǎng)絡(luò)軟件缺陷預(yù)測模型的架構(gòu)分為缺陷數(shù)據(jù)采集、缺陷數(shù)據(jù)預(yù)處理、引入預(yù)測算法、預(yù)測模型構(gòu)建或訓(xùn)練、預(yù)測模型測試與驗證五個部分,其模型框架如圖1所示。

圖1 網(wǎng)絡(luò)軟件缺陷預(yù)測架構(gòu)

通過對目標軟件的源代碼或缺陷軟件數(shù)據(jù)庫中的樣本進行采集,采用歸一化、消零、權(quán)重處理、去重等數(shù)據(jù)預(yù)處理操作,引入關(guān)聯(lián)規(guī)則算法對樣本數(shù)據(jù)進行有效性計算,并生成預(yù)測模型,在算法中不斷嘗試參數(shù)值以獲取最優(yōu)的結(jié)果,最后對軟件模塊進行缺陷預(yù)測。

2 關(guān)聯(lián)規(guī)則及關(guān)聯(lián)分類器

2.1 關(guān)聯(lián)分類法

關(guān)聯(lián)分類法(CBA)結(jié)合了分類規(guī)則和關(guān)聯(lián)規(guī)則的挖掘,支持將非監(jiān)督學(xué)習(xí)方法用于監(jiān)督分類,其任務(wù)是挖掘出用于區(qū)分實例類的關(guān)聯(lián)規(guī)則,即分類的關(guān)聯(lián)規(guī)則(CARs)。CARs能夠反映出數(shù)據(jù)的描述性關(guān)聯(lián)特性和可用于分類的特征。如關(guān)聯(lián)規(guī)則X=>Y,其中X為前置事件,表示數(shù)據(jù)描述性關(guān)聯(lián)規(guī)則,Y為后置事件,表示分類特征。如“respect>0.5127 or avg>0.2563=>result=1”中,前置事件為“respect>0.5127 or avg>0.2563”,后置事件為“result=1”。

CBA的基本過程為:

(1)數(shù)據(jù)的離散化處理。

(2)獲取關(guān)聯(lián)分類規(guī)則CARs。

(3)采用分類器構(gòu)建算法構(gòu)造分類器。

(4)利用構(gòu)造的分類器開展實驗研究。

2.2 關(guān)聯(lián)規(guī)則生成算法

關(guān)聯(lián)規(guī)則的生成算法可融入Apriori算法或FP-Tree算法,生成一系列由置信度c和支持度s的規(guī)則集合,前置的相關(guān)定理如下:

定理1 設(shè)X,Y是數(shù)據(jù)集中的項目集,如果X∈Y,則s(X)≥s(Y),且Y為大項目集時,X也為大項目集。其中s表示支持度。

定理2 強規(guī)則X=>Y對應(yīng)的項目集(X∪Y)也一定是大項目集。

定理3 若R為大項目集,ē和e為其子集,ē∈e∈Y,則c(ē=>(L—ē))≤c(e=>(L—e))。其中c表示置信度。

關(guān)聯(lián)規(guī)則的生成算法如下:

While所有k個項目的大項目集Lk(k≥2)

Hi={lastrs(Lk)}

Call fn{Lk,Hi}

I++

Wend

Procedure fn(Lk:k個項目的大項目集,Hm:m個項目的結(jié)論集)

Whilehm+1∈Hm+1

C=s(lk)/s(lk-hm+1)

Ifc≥mincthen

Print rule(lk-hm+1)=>hm+1,置信度=c,支持度=s(lk)

Else

Delhm+1

End if

Wend

通過遍歷大項目集中的數(shù)據(jù)記錄,對每一個記錄進行關(guān)聯(lián)規(guī)則的計算,最終形成結(jié)論集rule,以用于后期的分類關(guān)聯(lián)規(guī)則生成。

2.3 分類器的構(gòu)建

對于2.2節(jié)所得到的結(jié)論集,需要選擇最小誤差規(guī)則來構(gòu)建分類器,如果某兩條記錄值的置信度c和支持度s符合下述條件:{c(a)>c(b)}或c(a)=c(b) ands(a)>s(b)或c(a)=c(b) ands(a)=s(b) andt(a)>t(b)},其中t(a)為記錄產(chǎn)生的時間,則稱a的優(yōu)先級大于b。分類器的構(gòu)建采用優(yōu)先級較高的覆蓋原有的數(shù)據(jù)集。

分類器構(gòu)建算法步驟:

(1)將規(guī)則集中的規(guī)則按優(yōu)先級排序,sort(Lk)。

(2)選擇滿足條件的規(guī)則集構(gòu)建分類器,crea(Li∈Lk),其中Li滿足優(yōu)先級較高的條件。

(3)移除噪聲記錄clear(Li),參數(shù)Li指對提高分類精度無作用的記錄。

3 實驗過程

3.1 實驗準備

為了驗證基于關(guān)聯(lián)規(guī)則及其算法在網(wǎng)絡(luò)化軟件缺陷預(yù)測中的應(yīng)用有效性,缺陷數(shù)據(jù)集選用NASA的軟件質(zhì)量度量數(shù)據(jù)庫。該數(shù)據(jù)庫的數(shù)據(jù)集通過采集實際軟件項目中的代碼和運行質(zhì)量過程而得到,每一條樣本記錄對應(yīng)于軟件功能模塊的內(nèi)部指標屬性值。目前,多數(shù)軟件缺陷預(yù)測模型使用該數(shù)據(jù)庫,且對記錄集進行了人工層面的篩選,以獲取最優(yōu)的預(yù)測效果。

實驗環(huán)境為雙核2.8 GHz CPU,內(nèi)存4 GB,操作系統(tǒng)為Windows 7,平臺軟件為Eclipse 3.4、MATLAB 7.0。

通過對NASA的軟件質(zhì)量度量數(shù)據(jù)庫記錄進行有效性選擇后,樣本數(shù)據(jù)如表1所示。

表1 樣本數(shù)據(jù)集

3.2 評價標準

對于分類模型,本文采用傳統(tǒng)的分類器性能評價指標:精確度、召回率和平均F值。指標設(shè)計為基于二分類數(shù)據(jù)集的混合矩陣,如表2所示。

表2 指標混合矩陣

精確度表示預(yù)測正確的樣本量與總樣本的百分比,召回率表示預(yù)測正樣本量與實際正樣本量的百分比。

精確度:p=TP/(TP+FP)×100%

(1)

召回率:r=TP/(TP+FN)×100%

(2)

平均F值:F=(2×p×r)/(p+r)

(3)

3.3 實驗結(jié)果與分析

本文采用隨機選擇方法采集NASA軟件缺陷質(zhì)量數(shù)據(jù)庫中樣本記錄,共選取14 258個樣本數(shù)據(jù)進行關(guān)聯(lián)規(guī)則生成及分類規(guī)則生成、11 987個樣本數(shù)據(jù)進行實驗分類,以驗證本文在網(wǎng)絡(luò)化軟件缺陷預(yù)測中的有效性,并與現(xiàn)有的BP神經(jīng)網(wǎng)絡(luò)法進行對比。關(guān)聯(lián)規(guī)則算法直接利用Apriori算法進行數(shù)據(jù)挖掘及分類,依據(jù)支持度得出所有頻繁項集,然后根據(jù)置信度產(chǎn)生關(guān)聯(lián)規(guī)則,選擇最小誤差規(guī)則構(gòu)建關(guān)聯(lián)規(guī)則分類器,并對11 987個樣本數(shù)據(jù)進行實驗分類。

實驗步驟如下:

(1)為了獲取樣本記錄數(shù)據(jù),采用隨機方法對樣本庫中的記錄進行提取。

(3)利用Apriori算法獲取關(guān)聯(lián)分類規(guī)則CARs。

(4)采用分類器構(gòu)建算法構(gòu)造分類器。

(5)實驗分類。

為了獲取構(gòu)造分類器和實際分類時所消耗的時間,在程序設(shè)計中引入毫秒級時間記錄量,采用關(guān)聯(lián)規(guī)則方法對軟件質(zhì)量缺陷進行分類的結(jié)果如表3所示。

表3 基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)軟件缺陷分析結(jié)果

從缺陷結(jié)果分析中可以發(fā)現(xiàn),基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)軟件缺陷預(yù)測方法在精確度和召回率上比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)法略高,值得注意的是對于JM1、KC1、PC1等缺陷模塊在精確度上比傳統(tǒng)方法低,對于不同的樣本選擇和分類算法,在建立過程和統(tǒng)計上都存在一定的差異。

4 結(jié)論

本文提出了一種基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)軟件缺陷預(yù)測方法,同時結(jié)合傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)方法對NASA軟件缺陷數(shù)據(jù)庫樣本進行預(yù)測。從實驗結(jié)果分析可以看出,在通用的缺陷預(yù)測條件下,關(guān)聯(lián)規(guī)則法能有效提升預(yù)測的精確度,同時在召回率上也有一定的優(yōu)勢。本文創(chuàng)新地將關(guān)聯(lián)規(guī)則方法應(yīng)用于網(wǎng)絡(luò)化軟件缺陷預(yù)測中。由于樣本數(shù)據(jù)選取的多樣性,對軟件缺陷的預(yù)測還需要有更多的分析模型進行全面的評估,以提高軟件的質(zhì)量。

參考文獻

[1] 傅藝綺,董威,尹良澤,等.基于組合機器學(xué)習(xí)算法的軟件缺陷預(yù)測模型[J].計算機研究與發(fā)展,2017,53(3):633-641.

[2] 熊婧,高巖,王雅瑜. 基于adaboost算法的軟件缺陷預(yù)測模型[J].計算機科學(xué),2016,43(7):186-190.

[3] 程銘,母國慶,袁夢霆. 基于遷移學(xué)習(xí)的軟件缺陷預(yù)測[J].電子學(xué)報,2016,44(1):115-122.

[4] 張德平,劉國強,張柯. 基于GMDH因果關(guān)系的軟件缺陷預(yù)測模型[J].計算機科學(xué),2016,43(7):171-176.

[5] 馬振宇,張威,畢學(xué)軍,等. 基于優(yōu)化PSO-BP算法的軟件缺陷預(yù)測模型[J].計算機工程與設(shè)計,2016,37(2):413-417.

[6] 李偉湋,郭鴻昌.基于鄰域三支決策粗糙集模型的軟件缺陷預(yù)測方法[J].數(shù)據(jù)采集與處理,2017,32(1):166-174.

[7] 張澤濤,葉立軍,程偉,等.一種基于主題模型的軟件缺陷預(yù)測技術(shù)研究[J]計算機工程與科學(xué),2016,38(5):932-937.

[8] 李東林,徐燕凌,蔣心怡.軟件可靠性數(shù)據(jù)預(yù)處理研究[J].電子技術(shù)應(yīng)用,2010,36(8):153-156.

[9] 蔣永輝,吳洪麗,王政霞.基于軟件過程的軟件可靠性預(yù)測運作模型[J].微型機與應(yīng)用,2010,29(6):3-6.

猜你喜歡
軟件缺陷分類器關(guān)聯(lián)
不懼于新,不困于形——一道函數(shù)“關(guān)聯(lián)”題的剖析與拓展
基于測試的軟件缺陷數(shù)據(jù)分析方法
基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
“一帶一路”遞進,關(guān)聯(lián)民生更緊
奇趣搭配
基于差異性測度的遙感自適應(yīng)分類器選擇
基于實例的強分類器快速集成方法
智趣
基于度量元的靜態(tài)軟件缺陷預(yù)測技術(shù)*
基于層次化分類器的遙感圖像飛機目標檢測