亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

軟件缺陷智能檢測(cè)方法和系統(tǒng)與流程

文檔序號(hào):12120606閱讀:475來(lái)源:國(guó)知局
軟件缺陷智能檢測(cè)方法和系統(tǒng)與流程

本發(fā)明涉及軟件安全技術(shù)領(lǐng)域,特別是涉及一種軟件缺陷智能檢測(cè)方法和系統(tǒng)。



背景技術(shù):

隨著信息技術(shù)的發(fā)展,軟件復(fù)雜程度不斷提高、軟件規(guī)模不斷增大,尤其是對(duì)于復(fù)雜軟件系統(tǒng),良好的軟件質(zhì)量控制和檢測(cè)機(jī)制不但可以幫助企業(yè)開(kāi)發(fā)出高質(zhì)量的軟件產(chǎn)品,減少產(chǎn)品生產(chǎn)和維護(hù)成本,而且在提高客戶滿意度,建立良好的企業(yè)形象和增強(qiáng)企業(yè)在市場(chǎng)上的競(jìng)爭(zhēng)力等方面都有著重要的意義。

傳統(tǒng)的軟件缺陷智能檢測(cè)方法采用基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)模型,以軟件模塊的度量數(shù)據(jù)向量作為輸入,通過(guò)預(yù)處理、特征提取、模型訓(xùn)練和預(yù)測(cè)等步驟,實(shí)現(xiàn)對(duì)軟件模塊是否存在缺陷進(jìn)行預(yù)測(cè)。該模型由于其性能的評(píng)價(jià)準(zhǔn)則、歸納偏置等內(nèi)在問(wèn)題,對(duì)軟件有缺陷模塊和軟件無(wú)缺陷模塊同等處理,以總體最大預(yù)測(cè)精度作為目標(biāo),但對(duì)軟件缺陷的檢出率仍然不高。因此,傳統(tǒng)的軟件缺陷智能檢測(cè)方法存在預(yù)測(cè)準(zhǔn)確度低的缺點(diǎn)。



技術(shù)實(shí)現(xiàn)要素:

基于此,有必要針對(duì)上述問(wèn)題,提供一種可提高預(yù)測(cè)準(zhǔn)確度的軟件缺陷智能檢測(cè)方法和系統(tǒng)。

一種軟件缺陷智能檢測(cè)方法,包括以下步驟:

獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集;所述軟件樣本集包括軟件有缺陷樣本集和軟件無(wú)缺陷樣本集;

對(duì)所述軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)處理,得到聚類(lèi)子集;

對(duì)所述聚類(lèi)子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無(wú)缺陷樣本集;

根據(jù)所述軟件有缺陷樣本集和所述平衡后的軟件無(wú)缺陷樣本集得到更新軟件樣本集;

根據(jù)所述更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測(cè)模型;

根據(jù)所述缺陷檢測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),并輸出預(yù)測(cè)結(jié)果。

一種軟件缺陷智能檢測(cè)系統(tǒng),包括:

樣本集建立模塊,用于獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集;所述軟件樣本集包括軟件有缺陷樣本集和軟件無(wú)缺陷樣本集;

聚類(lèi)處理模塊,用于對(duì)所述軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)處理,得到聚類(lèi)子集;

抽樣處理模塊,用于對(duì)所述聚類(lèi)子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無(wú)缺陷樣本集;

樣本集更新模塊,用于根據(jù)所述軟件有缺陷樣本集和所述平衡后的軟件無(wú)缺陷樣本集得到更新軟件樣本集;

模型訓(xùn)練模塊,用于根據(jù)所述更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測(cè)模型;

缺陷預(yù)測(cè)模塊,用于根據(jù)所述缺陷檢測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),并輸出預(yù)測(cè)結(jié)果。

上述軟件缺陷智能檢測(cè)方法和系統(tǒng),獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集。對(duì)軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)處理,得到聚類(lèi)子集。對(duì)聚類(lèi)子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無(wú)缺陷樣本集。根據(jù)軟件有缺陷樣本集和平衡后的軟件無(wú)缺陷樣本集得到更新軟件樣本集。根據(jù)更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測(cè)模型。根據(jù)缺陷檢測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),并輸出預(yù)測(cè)結(jié)果。通過(guò)對(duì)樣本軟件模塊進(jìn)行分類(lèi),并對(duì)軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)和抽取樣本,保證了樣本的平衡。根據(jù)平衡后的軟件無(wú)缺陷樣本集訓(xùn)練缺陷檢測(cè)模型,使缺陷預(yù)測(cè)模型能夠更好的對(duì)缺陷數(shù)據(jù)進(jìn)行估計(jì)和擬合,對(duì)有缺陷數(shù)據(jù)的預(yù)測(cè)能夠得到明顯的提升,提高了預(yù)測(cè)準(zhǔn)確度。

附圖說(shuō)明

圖1為一實(shí)施例中軟件缺陷智能檢測(cè)方法的流程圖;

圖2為一實(shí)施例中軟件缺陷智能檢測(cè)系統(tǒng)的結(jié)構(gòu)圖。

具體實(shí)施方式

在一個(gè)實(shí)施例中,一種軟件缺陷智能檢測(cè)方法,如圖1所示,包括以下步驟:

步驟S110:獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集。

軟件樣本集包括軟件有缺陷樣本集和軟件無(wú)缺陷樣本集。樣本軟件模塊指已知是否存在缺陷的軟件模塊。例如,對(duì)于軟件中已知的Q個(gè)模塊,其中軟件無(wú)缺陷模塊有M個(gè),軟件有缺陷模塊有N個(gè),M+N=Q。在獲取得到樣本軟件模塊之后根據(jù)是否存在缺陷進(jìn)行分類(lèi),得到軟件有缺陷樣本集和軟件無(wú)缺陷樣本集。

在一個(gè)實(shí)施例中,步驟S110包括步驟112至步驟116。

步驟112:分別對(duì)樣本軟件模塊進(jìn)行標(biāo)記處理,得到各樣本軟件模塊的缺陷標(biāo)記。

對(duì)每一個(gè)模塊i,i=1,2,...,Q,分別對(duì)其是否存在缺陷標(biāo)記flagi。flagi=1,存在缺陷;flagi=0,沒(méi)有缺陷??梢岳斫猓鳂颖拒浖K的標(biāo)記方式以及得到的缺陷標(biāo)記的取值并不唯一,在其他實(shí)施例中,也可以是令存在缺陷的樣本軟件模塊的缺陷標(biāo)記為0,令不存在缺陷的樣本軟件模塊的缺陷標(biāo)記為1等。

步驟114:分別對(duì)樣本軟件模塊進(jìn)行靜態(tài)度量,得到各樣本軟件模塊的樣本向量。

對(duì)每一個(gè)模塊i,i=1,2,...,Q,分別對(duì)其源代碼進(jìn)行靜態(tài)度量。本實(shí)施例中靜態(tài)度量具體可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等,得到共k個(gè)度量值,并將這些度量值分別標(biāo)記為ti1,ti2,...,tik,構(gòu)成樣本向量Ti={ti1,ti2,...,tik}。

步驟116:根據(jù)各樣本軟件模塊的缺陷標(biāo)記,對(duì)對(duì)應(yīng)樣本軟件模塊的樣本向量進(jìn)行分類(lèi),得到軟件有缺陷樣本集和軟件無(wú)缺陷樣本集。

將軟件有缺陷模塊的樣本向量分為一類(lèi),得到軟件有缺陷樣本集{Ti|flagi=1}。將軟件無(wú)缺陷模塊的樣本向量分為一類(lèi),得到軟件無(wú)缺陷樣本集{Ti|flagi=0}。軟件有缺陷樣本集和軟件無(wú)缺陷樣本集構(gòu)成軟件樣本集{Ti|i=1,2,...,Q}。

步驟S120:對(duì)軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)處理,得到聚類(lèi)子集。

對(duì)軟件無(wú)缺陷樣本集{Ti|flagi=0}進(jìn)行聚類(lèi),得到聚類(lèi)子集,聚類(lèi)子集的具體數(shù)量并不唯一。本實(shí)施例中,采用MeanShift方法進(jìn)行聚類(lèi),計(jì)算量小,可提高聚類(lèi)分析速度。步驟S120包括步驟122至步驟128。

步驟122:以軟件無(wú)缺陷樣本集中的樣本向量為起點(diǎn),計(jì)算樣本向量的meanshift向量。具體為:

其中,Mh表示樣本向量T的meanshift向量,Sh(T)表示半徑為常數(shù)h的高維球區(qū)域內(nèi),滿足關(guān)系(T-Ti)T(T-Ti)<h2的K個(gè)樣本向量的集合,Ti為Sh(T)中的樣本向量。需要說(shuō)明的是,(T-Ti)T(T-Ti)<h2中,括號(hào)內(nèi)的T表示樣本向量,括號(hào)右上角的運(yùn)算符號(hào)T表示轉(zhuǎn)置。

步驟124:判斷樣本向量的meanshift向量是否大于預(yù)設(shè)閾值。若是,則將樣本向量與meanshift向量之和作為新的樣本向量,并返回步驟122。若否,則進(jìn)行步驟126。預(yù)設(shè)閾值ε為預(yù)先設(shè)定且可根據(jù)實(shí)際情況調(diào)整,如果meanshift向量Mh大于ε,以Ti+Mh作為新的起點(diǎn),再次計(jì)算新的meanshift向量Mh。

步驟126:將樣本向量與meanshift向量之和作為樣本向量的中心點(diǎn)。如果Mh小于或等于ε,則確認(rèn)Ti+Mh為中心點(diǎn)。重復(fù)步驟122至步驟126直至遍歷所有樣本向量,生成P個(gè)中心點(diǎn)。

步驟128:根據(jù)樣本向量的中心點(diǎn)對(duì)樣本向量進(jìn)行聚類(lèi),得到聚類(lèi)子集。將趨于同一中心點(diǎn)的樣本向量劃分為一類(lèi),形成P個(gè)聚類(lèi)子集。

通過(guò)聚類(lèi)方法計(jì)算軟件缺陷分布的多個(gè)子集,更好的刻畫(huà)軟件缺陷分布,為進(jìn)一步的樣本平衡抽樣奠定基礎(chǔ)。

步驟S130:對(duì)聚類(lèi)子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無(wú)缺陷樣本集。

對(duì)聚類(lèi)形成的P個(gè)聚類(lèi)子集進(jìn)行抽樣,以保證樣本平衡。對(duì)于第j個(gè)聚類(lèi)子集的樣本數(shù)為mj,則有對(duì)每個(gè)聚類(lèi)子集進(jìn)行抽樣的數(shù)量并不唯一,本實(shí)施例中,對(duì)所述聚類(lèi)子集進(jìn)行隨機(jī)抽樣的抽取樣本個(gè)數(shù)為:

其中,mj'為對(duì)第j個(gè)聚類(lèi)子集進(jìn)行隨機(jī)抽樣的抽取樣本個(gè)數(shù),mj為第j個(gè)聚類(lèi)子集的樣本數(shù),M為軟件無(wú)缺陷模塊的總數(shù),N為軟件有缺陷模塊的總數(shù)。

基于缺陷數(shù)據(jù)樣本分布,在每個(gè)子集下采用隨機(jī)抽樣的方法選取樣本,實(shí)現(xiàn)樣本間的平衡。得到平衡后的軟件無(wú)缺陷集{Ti'|flagi=0},樣本個(gè)數(shù)為

步驟S140:根據(jù)軟件有缺陷樣本集和平衡后的軟件無(wú)缺陷樣本集得到更新軟件樣本集。

將軟件有缺陷樣本集與平衡后的軟件無(wú)缺陷樣本集合并,作為更新軟件樣本集{Ti'|i=1,2,...,M'+N}。

步驟S150:根據(jù)更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測(cè)模型。

在平衡后的高維樣本空間下,選擇適合的數(shù)據(jù)挖掘方法訓(xùn)練缺陷檢測(cè)模型。根據(jù)平衡后的軟件無(wú)缺陷樣本集訓(xùn)練缺陷檢測(cè)模型,使缺陷預(yù)測(cè)模型能夠更好的對(duì)缺陷數(shù)據(jù)進(jìn)行估計(jì)和擬合。在一個(gè)實(shí)施例中,步驟S150包括:

其中,Ti、Tj分別為更新軟件樣本集中第i、j個(gè)樣本向量,k(Ti,Tj)表示樣本向量Ti、Tj之間的核函數(shù);flagi、flagj分別為更新軟件樣本集中第i、j個(gè)樣本向量所對(duì)應(yīng)的缺陷標(biāo)記,λi、λj為缺陷檢測(cè)模型待訓(xùn)練的參數(shù),表示更新軟件樣本集中第i、j個(gè)樣本向量的權(quán)值;s.t.表示約束條件,C為懲罰因子,M’+N表示更新軟件樣本集中樣本向量的個(gè)數(shù)。

表示取最大值時(shí)缺陷檢測(cè)模型的參數(shù)λ的取值;分別將更新軟件樣本集中的樣本向量Ti、Tj代入在取最大值時(shí)確定樣本向量Ti的權(quán)值λi的取值,最終得到更新軟件樣本集中所有樣本向量的權(quán)值。

步驟S160:根據(jù)缺陷檢測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),并輸出預(yù)測(cè)結(jié)果。

利用缺陷預(yù)測(cè)模型對(duì)未知的待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),得到預(yù)測(cè)結(jié)果并輸出,告知工作人員完成對(duì)待測(cè)軟件模塊的缺陷預(yù)測(cè)。在一個(gè)實(shí)施例中,步驟S160包括步驟162和步驟164。

步驟162:對(duì)待測(cè)軟件模塊進(jìn)行靜態(tài)度量,得到待測(cè)軟件模塊的樣本向量。具體地,對(duì)待測(cè)軟件模塊源代碼進(jìn)行靜態(tài)度量,靜態(tài)度量同樣可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等。

步驟164:根據(jù)待測(cè)軟件模塊的樣本向量以及缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè)。具體為:

其中,T為待測(cè)軟件模塊的樣本向量,g(T)表示待測(cè)軟件模塊的缺陷標(biāo)記,sgn表示對(duì)求整型變量,當(dāng)大于0時(shí)取1,當(dāng)小于或等于0時(shí)取0;Ti為更新軟件樣本集中第i個(gè)樣本向量,flagi為更新軟件樣本集中第i個(gè)樣本向量所對(duì)應(yīng)的缺陷標(biāo)記,λi表示由缺陷預(yù)測(cè)模型得到的更新軟件樣本集中第i個(gè)樣本向量的權(quán)值,M’+N表示更新軟件樣本集中樣本向量的個(gè)數(shù),b為常數(shù)。同樣,本實(shí)施例中K(Ti,T)表示樣本向量Ti、T之間的核函數(shù)。進(jìn)行整型變量的方式與缺陷標(biāo)記的定義對(duì)應(yīng)。

在實(shí)際應(yīng)用中,由于軟件失效的概率相比正常的概率較低,軟件失效模塊占軟件模塊總數(shù)相對(duì)較少。然而,當(dāng)這些少量的軟件失效模塊未被發(fā)現(xiàn)時(shí),一旦投入實(shí)際使用,所帶來(lái)的經(jīng)濟(jì)損失和社會(huì)損失是不可估量的。并且,由于軟件失效模塊占軟件模塊總數(shù)相對(duì)較少,這使得其在軟件缺陷檢測(cè)模型訓(xùn)練樣本數(shù)據(jù)相差懸殊時(shí),智能檢測(cè)方法產(chǎn)生偏向性。

上述軟件缺陷智能檢測(cè)方法,針對(duì)軟件復(fù)雜程度不斷提高、軟件規(guī)模不斷增大,尤其是對(duì)于復(fù)雜軟件系統(tǒng)缺陷檢測(cè)工作量巨大,缺陷定位困難等問(wèn)題。通過(guò)對(duì)樣本軟件模塊進(jìn)行分類(lèi),并對(duì)軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)和抽取樣本,保證了樣本的平衡。根據(jù)平衡后的軟件無(wú)缺陷樣本集訓(xùn)練缺陷檢測(cè)模型,使缺陷預(yù)測(cè)模型能夠更好的對(duì)缺陷數(shù)據(jù)進(jìn)行估計(jì)和擬合,對(duì)有缺陷數(shù)據(jù)的預(yù)測(cè)能夠得到明顯的提升,提高了預(yù)測(cè)準(zhǔn)確度。

在一個(gè)實(shí)施例中,一種軟件缺陷智能檢測(cè)系統(tǒng),如圖2所示,包括樣本集建立模塊110、聚類(lèi)處理模塊120、抽樣處理模塊130、樣本集更新模塊140、模型訓(xùn)練模塊150和缺陷預(yù)測(cè)模塊160。

樣本集建立模塊110用于獲取樣本軟件模塊進(jìn)行預(yù)處理,得到軟件樣本集。

軟件樣本集包括軟件有缺陷樣本集和軟件無(wú)缺陷樣本集。樣本軟件模塊指已知是否存在缺陷的軟件模塊。在獲取得到樣本軟件模塊之后根據(jù)是否存在缺陷進(jìn)行分類(lèi),得到軟件有缺陷樣本集和軟件無(wú)缺陷樣本集。在一個(gè)實(shí)施例中,樣本集建立模塊110包括第一樣本集建立單元、第二樣本集建立單元和第三樣本集建立單元。

第一樣本集建立單元用于分別對(duì)樣本軟件模塊進(jìn)行標(biāo)記處理,得到各樣本軟件模塊的缺陷標(biāo)記。

對(duì)每一個(gè)模塊i,i=1,2,...,Q,分別對(duì)其是否存在缺陷標(biāo)記flagi。flagi=1,存在缺陷;flagi=0,沒(méi)有缺陷。可以理解,各樣本軟件模塊的標(biāo)記方式以及得到的缺陷標(biāo)記的取值并不唯一,在其他實(shí)施例中,也可以是令存在缺陷的樣本軟件模塊的缺陷標(biāo)記為0,令不存在缺陷的樣本軟件模塊的缺陷標(biāo)記為1等。

第二樣本集建立單元用于分別對(duì)樣本軟件模塊進(jìn)行靜態(tài)度量,得到各樣本軟件模塊的樣本向量。

對(duì)每一個(gè)模塊i,i=1,2,...,Q,分別對(duì)其源代碼進(jìn)行靜態(tài)度量。本實(shí)施例中靜態(tài)度量具體可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等,得到共k個(gè)度量值,并將這些度量值分別標(biāo)記為ti1,ti2,...,tik,構(gòu)成樣本向量Ti={ti1,ti2,...,tik}。

第三樣本集建立單元用于根據(jù)各樣本軟件模塊的缺陷標(biāo)記,對(duì)對(duì)應(yīng)樣本軟件模塊的樣本向量進(jìn)行分類(lèi),得到軟件有缺陷樣本集和軟件無(wú)缺陷樣本集。

將軟件有缺陷模塊的樣本向量分為一類(lèi),得到軟件有缺陷樣本集{Ti|flagi=1}。將軟件無(wú)缺陷模塊的樣本向量分為一類(lèi),得到軟件無(wú)缺陷樣本集{Ti|flagi=0}。軟件有缺陷樣本集和軟件無(wú)缺陷樣本集構(gòu)成軟件樣本集{Ti|i=1,2,...,Q}。

聚類(lèi)處理模塊120用于對(duì)軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)處理,得到聚類(lèi)子集。

對(duì)軟件無(wú)缺陷樣本集{Ti|flagi=0}進(jìn)行聚類(lèi),得到聚類(lèi)子集,聚類(lèi)子集的具體數(shù)量并不唯一。本實(shí)施例中,采用MeanShift方法進(jìn)行聚類(lèi),計(jì)算量小,可提高聚類(lèi)分析速度。聚類(lèi)處理模塊120包括第一處理單元、第二處理單元、第三處理單元和第四處理單元。

第一處理單元用于以軟件無(wú)缺陷樣本集中的樣本向量為起點(diǎn),計(jì)算樣本向量的meanshift向量。具體為:

其中,Mh表示樣本向量T的meanshift向量,Sh(T)表示半徑為常數(shù)h的高維球區(qū)域內(nèi),滿足關(guān)系(T-Ti)T(T-Ti)<h2的K個(gè)樣本向量的集合,Ti為Sh(T)中的樣本向量。需要說(shuō)明的是,(T-Ti)T(T-Ti)<h2中,括號(hào)內(nèi)的T表示樣本向量,括號(hào)右上角的運(yùn)算符號(hào)T表示轉(zhuǎn)置。

第二處理單元用于判斷樣本向量的meanshift向量是否大于預(yù)設(shè)閾值。預(yù)設(shè)閾值ε為預(yù)先設(shè)定且可根據(jù)實(shí)際情況調(diào)整。

第三處理單元,用于在樣本向量的meanshift向量大于預(yù)設(shè)閾值時(shí),將樣本向量與meanshift向量之和作為新的樣本向量,并控制第一處理單元再次以軟件無(wú)缺陷樣本集中的樣本向量為起點(diǎn),計(jì)算樣本向量的meanshift向量;以及在樣本向量的meanshift向量小于或等于預(yù)設(shè)閾值時(shí),將樣本向量與meanshift向量之和作為樣本向量的中心點(diǎn)。

如果meanshift向量Mh大于ε,以Ti+Mh作為新的起點(diǎn),再次計(jì)算新的meanshift向量Mh。如果Mh小于或等于ε,則確認(rèn)Ti+Mh為中心點(diǎn)。重復(fù)進(jìn)行計(jì)算直至遍歷所有樣本向量,生成P個(gè)中心點(diǎn)。

第四處理單元用于根據(jù)樣本向量的中心點(diǎn)對(duì)樣本向量進(jìn)行聚類(lèi),得到聚類(lèi)子集。將趨于同一中心點(diǎn)的樣本向量劃分為一類(lèi),形成P個(gè)聚類(lèi)子集。

通過(guò)聚類(lèi)方法計(jì)算軟件缺陷分布的多個(gè)子集,更好的刻畫(huà)軟件缺陷分布,為進(jìn)一步的樣本平衡抽樣奠定基礎(chǔ)。

抽樣處理模塊130用于對(duì)聚類(lèi)子集進(jìn)行隨機(jī)抽樣,得到平衡后的軟件無(wú)缺陷樣本集。

對(duì)聚類(lèi)形成的P個(gè)聚類(lèi)子集進(jìn)行抽樣,以保證樣本平衡。對(duì)于第j個(gè)聚類(lèi)子集的樣本數(shù)為mj,則有對(duì)每個(gè)聚類(lèi)子集進(jìn)行抽樣的數(shù)量并不唯一,本實(shí)施例中,對(duì)所述聚類(lèi)子集進(jìn)行隨機(jī)抽樣的抽取樣本個(gè)數(shù)為:

其中,mj'為對(duì)第j個(gè)聚類(lèi)子集進(jìn)行隨機(jī)抽樣的抽取樣本個(gè)數(shù),mj為第j個(gè)聚類(lèi)子集的樣本數(shù),M為軟件無(wú)缺陷模塊的總數(shù),N為軟件有缺陷模塊的總數(shù)。

基于缺陷數(shù)據(jù)樣本分布,在每個(gè)子集下采用隨機(jī)抽樣的方法選取樣本,實(shí)現(xiàn)樣本間的平衡。得到平衡后的軟件無(wú)缺陷集{Ti'|flagi=0},樣本個(gè)數(shù)為

樣本集更新模塊140用于根據(jù)軟件有缺陷樣本集和平衡后的軟件無(wú)缺陷樣本集得到更新軟件樣本集。

將軟件有缺陷樣本集與平衡后的軟件無(wú)缺陷樣本集合并,作為更新軟件樣本集{Ti'|i=1,2,...,M'+N}。

模型訓(xùn)練模塊150用于根據(jù)更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測(cè)模型。在平衡后的高維樣本空間下,選擇適合的數(shù)據(jù)挖掘方法訓(xùn)練缺陷檢測(cè)模型。根據(jù)平衡后的軟件無(wú)缺陷樣本集訓(xùn)練缺陷檢測(cè)模型,使缺陷預(yù)測(cè)模型能夠更好的對(duì)缺陷數(shù)據(jù)進(jìn)行估計(jì)和擬合。在一個(gè)實(shí)施例中,模型訓(xùn)練模塊150根據(jù)更新軟件樣本集進(jìn)行訓(xùn)練得到缺陷檢測(cè)模型,包括:

其中,Ti、Tj分別為更新軟件樣本集中第i、j個(gè)樣本向量,k(Ti,Tj)表示樣本向量Ti、Tj之間的核函數(shù);flagi、flagj分別為更新軟件樣本集中第i、j個(gè)樣本向量所對(duì)應(yīng)的缺陷標(biāo)記,λi、λj為缺陷檢測(cè)模型待訓(xùn)練的參數(shù),表示更新軟件樣本集中第i、j個(gè)樣本向量的權(quán)值;s.t.表示約束條件,C為懲罰因子,M’+N表示更新軟件樣本集中樣本向量的個(gè)數(shù)。

表示取最大值時(shí)缺陷檢測(cè)模型的參數(shù)λ的取值;分別將更新軟件樣本集中的樣本向量Ti、Tj代入在取最大值時(shí)確定樣本向量Ti的權(quán)值λi的取值,最終得到更新軟件樣本集中所有樣本向量的權(quán)值。

缺陷預(yù)測(cè)模塊160用于根據(jù)缺陷檢測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),并輸出預(yù)測(cè)結(jié)果。

利用缺陷預(yù)測(cè)模型對(duì)未知的待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè),得到預(yù)測(cè)結(jié)果并輸出,告知工作人員完成對(duì)待測(cè)軟件模塊的缺陷預(yù)測(cè)。在一個(gè)實(shí)施例中,缺陷預(yù)測(cè)模塊160包括第一預(yù)測(cè)單元和第二預(yù)測(cè)單元。

第一預(yù)測(cè)單元用于對(duì)待測(cè)軟件模塊進(jìn)行靜態(tài)度量,得到待測(cè)軟件模塊的樣本向量。具體地,對(duì)待測(cè)軟件模塊源代碼進(jìn)行靜態(tài)度量,靜態(tài)度量同樣可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等。

第二預(yù)測(cè)單元用于根據(jù)待測(cè)軟件模塊的樣本向量以及缺陷預(yù)測(cè)模型對(duì)待測(cè)軟件模塊進(jìn)行缺陷預(yù)測(cè)。具體為:

其中,T為待測(cè)軟件模塊的樣本向量,g(T)表示待測(cè)軟件模塊的缺陷標(biāo)記,sgn表示對(duì)求整型變量,當(dāng)大于0時(shí)取1,當(dāng)小于或等于0時(shí)取0;Ti為更新軟件樣本集中第i個(gè)樣本向量,flagi為更新軟件樣本集中第i個(gè)樣本向量所對(duì)應(yīng)的缺陷標(biāo)記,λi表示由缺陷預(yù)測(cè)模型得到的更新軟件樣本集中第i個(gè)樣本向量的權(quán)值,M’+N表示更新軟件樣本集中樣本向量的個(gè)數(shù),b為常數(shù)。同樣,本實(shí)施例中K(Ti,T)表示樣本向量Ti、T之間的核函數(shù)。進(jìn)行整型變量的方式與缺陷標(biāo)記的定義對(duì)應(yīng)。

上述軟件缺陷智能檢測(cè)系統(tǒng),針對(duì)軟件復(fù)雜程度不斷提高、軟件規(guī)模不斷增大,尤其是對(duì)于復(fù)雜軟件系統(tǒng)缺陷檢測(cè)工作量巨大,缺陷定位困難等問(wèn)題。通過(guò)對(duì)樣本軟件模塊進(jìn)行分類(lèi),并對(duì)軟件無(wú)缺陷樣本集進(jìn)行聚類(lèi)和抽取樣本,保證了樣本的平衡。根據(jù)平衡后的軟件無(wú)缺陷樣本集訓(xùn)練缺陷檢測(cè)模型,使缺陷預(yù)測(cè)模型能夠更好的對(duì)缺陷數(shù)據(jù)進(jìn)行估計(jì)和擬合,對(duì)有缺陷數(shù)據(jù)的預(yù)測(cè)能夠得到明顯的提升,提高了預(yù)測(cè)準(zhǔn)確度。

以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說(shuō)明書(shū)記載的范圍。

以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1