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

基于遷移學(xué)習(xí)和缺陷數(shù)量信息的跨公司軟件缺陷預(yù)測(cè)方法與流程

文檔序號(hào):11591201閱讀:217來源:國(guó)知局

本發(fā)明屬于跨公司軟件缺陷預(yù)測(cè)技術(shù)領(lǐng)域,特別是涉及一種基于遷移學(xué)習(xí)和缺陷數(shù)量信息的跨公司軟件缺陷預(yù)測(cè)方法。



背景技術(shù):

(1)軟件項(xiàng)目缺陷預(yù)測(cè)技術(shù)

軟件產(chǎn)業(yè)作為信息產(chǎn)業(yè)的重要組成部分,在促進(jìn)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整、經(jīng)濟(jì)發(fā)展方式轉(zhuǎn)變、工業(yè)化與信息化融合及維護(hù)國(guó)家安全方面均發(fā)揮著重要作用。然而隨著軟件應(yīng)用領(lǐng)域的不斷擴(kuò)展,和設(shè)計(jì)復(fù)雜度的不斷提升,軟件項(xiàng)目的質(zhì)量問題越來越難把控。在這種需求背景下,高效的軟件缺陷預(yù)測(cè)技術(shù)越來越引起人們的關(guān)注。

軟件缺陷預(yù)測(cè)技術(shù)可以在軟件系統(tǒng)開發(fā)早期,高效的預(yù)測(cè)系統(tǒng)各個(gè)軟件模塊是否存在缺陷,并根據(jù)預(yù)測(cè)結(jié)果,合理分配測(cè)試人力資源,從而有效降低測(cè)試成本并減小測(cè)試周期。此外,對(duì)于每個(gè)具體的軟件項(xiàng)目來說,不同時(shí)期修復(fù)缺陷的成本是完全不同的,一般來說,其修復(fù)成本是隨時(shí)間呈正比例上升的。比如,文獻(xiàn)1其中提到,1985到1987年,therac-25輻射治療設(shè)備卷入多宗因輻射劑量嚴(yán)重超標(biāo)引發(fā)的醫(yī)療事故,其罪魁禍?zhǔn)资轻t(yī)療設(shè)備電力軟件的bug,導(dǎo)致大量患者接受了高達(dá)100倍的預(yù)定治療劑量,其中三人直接死于輻射劑量超標(biāo),。假定我們能在軟件測(cè)試的早期就發(fā)現(xiàn)并修復(fù)這個(gè)bug,上述悲劇將不再重演。

現(xiàn)有的缺陷預(yù)測(cè)技術(shù)主要包括:缺陷數(shù)量預(yù)測(cè)技術(shù)、缺陷分布預(yù)測(cè)技術(shù)和軟件預(yù)測(cè)模型技術(shù)。

其中缺陷數(shù)量預(yù)測(cè)技術(shù)一般用來確定整體項(xiàng)目缺陷的個(gè)數(shù),如文獻(xiàn)2,其中akahashi將代碼與具體的文檔數(shù)量對(duì)應(yīng)起來,給出了缺陷密度的估計(jì)式:§=67.98+0.46f1-9.69f2-0.08f3,其中§為缺陷率(單位:thenumberoferrors/kloc,kloc為千行代碼),f1為程序規(guī)約變更的頻率(單位:thenumberofpages/kloc),f2為程序員技能(單位:years),f3為程序設(shè)計(jì)文檔頁(yè)數(shù)(單位:thenumberofpages/kloc)。

缺陷分布預(yù)測(cè)技術(shù)則利用分類或回歸技術(shù),如線性判別分析lda(1ineardiscriminantanalysis),分類回歸樹cart(classificationandregressiontree),支持向量機(jī)svm(supportvectormachine),人工神經(jīng)網(wǎng)絡(luò)ann(artificialneuralnetwork),邏輯回歸lr(logisticregression),多元線性回歸mlr(multiplelinearregression)等方法,來對(duì)模塊是否存在缺陷進(jìn)行預(yù)測(cè)。

不同于上述兩種技術(shù)一般選定一些特殊度量元來通過分類回歸找到缺陷模塊的方法,軟件預(yù)測(cè)模型技術(shù)則基于歷史缺陷數(shù)據(jù)構(gòu)建模型。相比而言,這種方法更能將一些其他的缺陷影響因素考慮在內(nèi),比如團(tuán)隊(duì)因素等,且無需人為的參數(shù)調(diào)整。因此,軟件預(yù)測(cè)模型技術(shù)也成為了當(dāng)今主流的軟件缺陷預(yù)測(cè)技術(shù)。

(2)跨公司軟件項(xiàng)目缺陷預(yù)測(cè)技術(shù)

然而在一些實(shí)際測(cè)試場(chǎng)景中,當(dāng)需要用軟件模型預(yù)測(cè)技術(shù)來對(duì)一些新的公司的軟件項(xiàng)目進(jìn)行缺陷預(yù)測(cè)時(shí),并沒有大量的歷史的缺陷數(shù)據(jù)來供我們來訓(xùn)練模型。但在網(wǎng)絡(luò)上存在很多高質(zhì)量的開源軟件項(xiàng)目缺陷數(shù)據(jù)集,因此就有學(xué)者試圖從這些跨公司的開源項(xiàng)目缺陷數(shù)據(jù)集出發(fā),來訓(xùn)練預(yù)測(cè)模型從而對(duì)新的公司的軟件項(xiàng)目進(jìn)行缺陷預(yù)測(cè)。然而直接使用跨項(xiàng)目的缺陷數(shù)據(jù)集來對(duì)新公司的軟件項(xiàng)目進(jìn)行缺陷預(yù)測(cè)還存在一些問題,原因是不同項(xiàng)目之間可能存在著不同的特征分布,直接套用跨公司的軟件缺陷預(yù)測(cè)經(jīng)驗(yàn)可能會(huì)導(dǎo)致預(yù)測(cè)精度過低。

文獻(xiàn)3中馬櫻等人提出了一種transfernaivebayes(tnb)算法,tnb算法考慮了源數(shù)據(jù)和目標(biāo)數(shù)據(jù)來自不同公司的跨公司預(yù)測(cè)場(chǎng)景,為了較好利用跨公司數(shù)據(jù),tnb運(yùn)用了遷移學(xué)習(xí)的方法來建立一個(gè)更有效的預(yù)測(cè)模型。遷移學(xué)習(xí)的目標(biāo)是將從一個(gè)環(huán)境中學(xué)習(xí)到的知識(shí)用來解決新環(huán)境中的任務(wù)。因此,遷移學(xué)習(xí)用來解決跨項(xiàng)目缺陷預(yù)測(cè)過程中出現(xiàn)的問題尤為合適。遷移學(xué)習(xí)處理原始跨項(xiàng)目缺陷數(shù)據(jù)的基本思路是:對(duì)于原始的跨項(xiàng)目缺陷數(shù)據(jù),其與待預(yù)測(cè)數(shù)據(jù)之間的相似度越高,賦予的權(quán)重越高。在此基礎(chǔ)上,那些跟我們待預(yù)測(cè)數(shù)據(jù)相似度高的跨項(xiàng)目缺陷數(shù)據(jù)就能在預(yù)測(cè)結(jié)果中起到更大的作用,同時(shí)也能削弱不相關(guān)的跨項(xiàng)目缺陷數(shù)據(jù)對(duì)預(yù)測(cè)結(jié)果的影響。

(3)樸素貝葉斯

這里之所以選擇貝葉斯算法作為我們預(yù)測(cè)模型的基礎(chǔ),是因?yàn)?,?dāng)遇到一個(gè)需要考慮多個(gè)因素來得到最終預(yù)測(cè)概率的問題,許多算法會(huì)在計(jì)算過程中忽略弱特征的影響,而貝葉斯算法卻是使用所有的特征來修正預(yù)測(cè)結(jié)果,這很適合需要考慮多個(gè)因素的缺陷預(yù)測(cè)問題。盡管單個(gè)分離的特征對(duì)結(jié)果造成的影響很小,但組合起來卻能對(duì)最終的結(jié)果產(chǎn)生大的影響。

使用貝葉斯算法進(jìn)行預(yù)測(cè)的思想基礎(chǔ)是:假定一個(gè)待預(yù)測(cè)實(shí)例為x,它可能所屬的類別c為:{′y′,′n′},′y′和′n′分別代表有缺陷和無缺陷。對(duì)于待預(yù)測(cè)實(shí)例x,其屬于有缺陷和無缺陷類別的后驗(yàn)概率分別為p(′y′|x)和p(′n′|x),如果p(′y′|x)≥p(′n′|x),即x屬于有缺陷類別的后驗(yàn)概率大于等于其屬于無缺陷類別的后驗(yàn)概率,那么認(rèn)為實(shí)例x有缺陷,反之,無缺陷。基于貝葉斯定理,p(′c′|x)可寫為其中p(′c′)為有無缺陷的先驗(yàn)概率,p(x|′c′)是實(shí)例x相對(duì)于類別′c′的條件概率,′c′分別為有缺陷′y′和無缺陷′n′,p(x)是用于歸一化的證據(jù)因子。對(duì)于給定的待預(yù)測(cè)實(shí)例x,證據(jù)因子p(x)與類標(biāo)號(hào)無關(guān),因此估計(jì)p(′c′|x)的問題就化為如何基于訓(xùn)練數(shù)據(jù)來估計(jì)有無缺陷的先驗(yàn)概率p(′c′)和條件概率p(x|′c′)。

[文獻(xiàn)1]leveson,nancyg.;turner,clarks.(july1993)."aninvestigationofthetherac-25accidents".ieeecomputer.26(7):18–41.

[文獻(xiàn)2]王青,伍書劍,李明樹."軟件缺陷預(yù)測(cè)技術(shù)".journalofsoftware,vol.19,no.7,july2008,pp.1565—1580.

[文獻(xiàn)3]may,luog,zengx,etal.transferlearningforcross-companysoftwaredefectprediction[j].information&softwaretechnology,2012,54(3):248–256.



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

針對(duì)現(xiàn)有的基于遷移學(xué)習(xí)的跨項(xiàng)目缺陷預(yù)測(cè)方法中存在的類不平衡和數(shù)據(jù)間距離相等時(shí)權(quán)值排名無法確定的問題,即當(dāng)兩個(gè)實(shí)例和待預(yù)測(cè)數(shù)據(jù)之間擁有相同的相似度時(shí),哪一個(gè)實(shí)例該被賦予更高的權(quán)值,或者,在類不平衡問題中,大量無缺陷實(shí)例權(quán)值的累加會(huì)導(dǎo)致有缺陷實(shí)例權(quán)值對(duì)結(jié)果的影響微乎其微,這種不良影響該如何消除的問題,本發(fā)明提供了一種基于遷移學(xué)習(xí)和缺陷數(shù)量信息的跨公司軟件缺陷預(yù)測(cè)方法。

本發(fā)明所采用的技術(shù)方案是:一種基于遷移學(xué)習(xí)和缺陷數(shù)量信息的跨公司軟件缺陷預(yù)測(cè)方法,其特征在于,包括以下步驟:

步驟1:標(biāo)注每個(gè)跨項(xiàng)目實(shí)例即訓(xùn)練數(shù)據(jù)有多少個(gè)缺陷;

步驟2:根據(jù)經(jīng)驗(yàn)提取實(shí)例內(nèi)的度量屬性;

步驟3:數(shù)據(jù)預(yù)處理;

步驟4:基于加權(quán)跨項(xiàng)目實(shí)例集構(gòu)建貝葉斯缺陷預(yù)測(cè)模型;

步驟5:根據(jù)貝葉斯缺陷預(yù)測(cè)模型預(yù)測(cè)本項(xiàng)目實(shí)例是否有缺陷。

本發(fā)明對(duì)現(xiàn)有跨項(xiàng)目缺陷數(shù)據(jù)的權(quán)值計(jì)算方法進(jìn)行改進(jìn),提出一種基于遷移學(xué)習(xí)和缺陷數(shù)量信息的跨公司軟件缺陷預(yù)測(cè)方法,即在根據(jù)遷移學(xué)習(xí)計(jì)算權(quán)值的基礎(chǔ)上,考慮缺陷個(gè)數(shù)信息的加成作用,有效避免了不平衡問題對(duì)預(yù)測(cè)結(jié)果造成的影響,從而提高了跨項(xiàng)目缺陷預(yù)測(cè)的精度。

附圖說明

圖1本發(fā)明實(shí)施的流程示意圖;

圖2本發(fā)明實(shí)施的構(gòu)建貝葉斯預(yù)測(cè)模型示意圖。

具體實(shí)施方式

為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。

請(qǐng)見圖1和圖2,本發(fā)明提供的一種基于遷移學(xué)習(xí)和缺陷數(shù)量信息的跨公司軟件缺陷預(yù)測(cè)方法,包括以下步驟:

步驟1:人工標(biāo)注每個(gè)跨項(xiàng)目實(shí)例有多少個(gè)缺陷;

對(duì)存在缺陷的實(shí)例標(biāo)注缺陷個(gè)數(shù)為n(n>0),無缺陷的實(shí)例標(biāo)注缺陷個(gè)數(shù)為0;

步驟2:根據(jù)經(jīng)驗(yàn)提取實(shí)例內(nèi)的度量屬性ai;

本實(shí)施例選取了20個(gè)度量屬性,它們分別為:加權(quán)方法數(shù)(wmc),繼承樹深度(dit),子節(jié)點(diǎn)數(shù)(noc),對(duì)象類之間的耦合度(cbo),類的響應(yīng)(rfc),內(nèi)聚缺乏度(lcom),傳入耦合(ca),傳出耦合(ce),公開方法數(shù)(npm),代碼行數(shù)(loc),數(shù)據(jù)訪問度量(dam),聚合度量(moa),功能抽象度量(mfa),方法間的內(nèi)聚度(cam),繼承耦合(ic),方法間耦合(cbm),平均方法復(fù)雜度(amc),最大mccabe環(huán)形復(fù)雜度(max_cc),平均mccabe環(huán)形復(fù)雜度(avg_cc);

步驟3:數(shù)據(jù)預(yù)處理;

步驟3.1:計(jì)算每個(gè)跨項(xiàng)目實(shí)例x和本項(xiàng)目實(shí)例集之間的相似度;

首先計(jì)算本項(xiàng)目實(shí)例集即待預(yù)測(cè)實(shí)例中每個(gè)屬性的取值范圍,即每個(gè)屬性的最小值和最大值組成的左閉右閉區(qū)間。比如有跨公司的缺陷數(shù)據(jù)x1=(1,2,2,0),x2=(2,1,3,0),x3=(2,2,4,3),其中前三位分別為三個(gè)屬性的屬性值,最后一位的數(shù)字表示缺陷的個(gè)數(shù)?,F(xiàn)在來預(yù)測(cè)一個(gè)新項(xiàng)目的實(shí)例y1=(2,2,3)有無缺陷。那么該本項(xiàng)目實(shí)例集的每個(gè)屬性取值范圍為:第一個(gè)屬性取值范圍為[2,2],第二個(gè)屬性取值范圍為[2,2],第三個(gè)屬性取值范圍為[3,3]。然后判斷跨項(xiàng)目實(shí)例的每個(gè)屬性是否在該取值范圍內(nèi),那么該跨項(xiàng)目實(shí)例與本項(xiàng)目實(shí)例集之間的相似度si為,跨項(xiàng)目實(shí)例中的屬性滿足上述取值范圍的個(gè)數(shù)。對(duì)于x1=(1,2,2,0),只有第二個(gè)屬性在對(duì)應(yīng)屬性的取值范圍里,故s1=1,對(duì)于x2=(2,1,3,0),則第一和第三個(gè)屬性在對(duì)應(yīng)屬性的取值范圍里,故s2=2,對(duì)于x3=(2,2,4,3),則第一和第二個(gè)屬性在對(duì)應(yīng)屬性的取值范圍里,故s3=2。

步驟3.2:基于根據(jù)相似度si來確定每個(gè)跨項(xiàng)目實(shí)例的初始權(quán)重wi;

參考萬有引力公式,本實(shí)施例定義每個(gè)跨項(xiàng)目實(shí)例的初始權(quán)重為:其中wi為第i個(gè)跨項(xiàng)目實(shí)例的權(quán)重,g為重力常量,m1和m2分別為兩物體的質(zhì)量,r是兩物體間的距離;k是每個(gè)實(shí)例的屬性數(shù)目,m是本項(xiàng)目的實(shí)例的數(shù)量,m為本項(xiàng)目實(shí)例的每個(gè)屬性的質(zhì)量,那么kmm便為整體本項(xiàng)目實(shí)例的質(zhì)量,si是每個(gè)跨項(xiàng)目實(shí)例與本項(xiàng)目實(shí)例集的相似度,那么sim便為每個(gè)跨項(xiàng)目實(shí)例的質(zhì)量;類似的,(k-si+1)為每個(gè)跨項(xiàng)目實(shí)例與本項(xiàng)目實(shí)例集之間的距離;本實(shí)施例通過去除一些固定的常量,可以得到最右邊的關(guān)系式,即每個(gè)跨項(xiàng)目實(shí)例的初始權(quán)重si為第i個(gè)跨項(xiàng)目實(shí)例的相似度,k為實(shí)例中的屬性數(shù)目。由步驟3.1中相似度s1=1,s2=2,s3=2,那么

步驟3.3:考慮跨項(xiàng)目實(shí)例的缺陷個(gè)數(shù)信息來調(diào)整初始權(quán)重wi的值;

即在步驟3.2的基礎(chǔ)上乘以該跨項(xiàng)目實(shí)例缺陷的個(gè)數(shù)。假定第i個(gè)跨項(xiàng)目實(shí)例的缺陷個(gè)數(shù)為ni,那么該跨項(xiàng)目實(shí)例的最終權(quán)值為si為第i個(gè)跨項(xiàng)目實(shí)例的相似度,ni為第i個(gè)跨項(xiàng)目實(shí)例的缺陷個(gè)數(shù),k為實(shí)例中的屬性數(shù)目。結(jié)合步驟3.2的初始權(quán)值可知,考慮缺陷個(gè)數(shù)信息后,權(quán)值被依次調(diào)整為:

步驟4:構(gòu)建加權(quán)貝葉斯預(yù)測(cè)模型;

由背景介紹可知,要計(jì)算實(shí)例x分別屬于有缺陷和無缺陷的后驗(yàn)概率p('y'|x)和p('n'|x),需要分別計(jì)算其中p('y')和p('n')為有無缺陷的先驗(yàn)概率,為先驗(yàn)概率的調(diào)整因子,以使結(jié)果更接近真實(shí)的概率。

接下來本實(shí)施例將依次來計(jì)算有無缺陷的先驗(yàn)概率p('c'),c={'y','n'},有無缺陷條件下的每個(gè)屬性的條件概率p(aj|'c')以及本項(xiàng)目實(shí)例的歸一化證據(jù)因子p(x)。

首先,有無缺陷的先驗(yàn)概率為:其中c={'y','n'},n為跨項(xiàng)目實(shí)例個(gè)數(shù),ci為第i個(gè)跨項(xiàng)目實(shí)例的類別,f(ci,5為示性函數(shù),如果ci=c那么函數(shù)值為1,否則為0,wi為第i個(gè)跨項(xiàng)目實(shí)例的權(quán)重,nc為跨項(xiàng)目實(shí)例中類別的數(shù)量,在這里為2。結(jié)合步驟3.3中得到的最終權(quán)值,有無缺陷的先驗(yàn)概率分別為:

接下來在有無缺陷條件跨項(xiàng)目實(shí)例每個(gè)屬性的條件概率為:其中c={'y','n'},aj為實(shí)例中第j個(gè)屬性,n為跨項(xiàng)目實(shí)例個(gè)數(shù),aij為第i個(gè)跨項(xiàng)目實(shí)例的第j個(gè)屬性值,f(aij,aj)為示性函數(shù),如果aij=ai那么函數(shù)值為1,否則為0,f(ci,c)同上,wi為第i個(gè)跨項(xiàng)目實(shí)例的權(quán)重,nj為跨項(xiàng)目實(shí)例集中第j個(gè)屬性不同取值的個(gè)數(shù)。結(jié)合步驟3.3得到的最終權(quán)值,計(jì)算有無缺陷條件下每個(gè)屬性的條件概率,其中n1=2,n2=2,n3=3,那么

最后本實(shí)施例來計(jì)算本項(xiàng)目實(shí)例的歸一化證據(jù)因子:其中nc為類別的數(shù)量,p(ci)為有缺陷或者無缺陷的先驗(yàn)概率,為有無缺陷條件下該實(shí)例每個(gè)屬性條件概率的乘積。由上兩步計(jì)算的有無缺陷的先驗(yàn)概率和有無缺陷條件下每個(gè)屬性的條件概率,計(jì)算新項(xiàng)目實(shí)例y1的歸一化證據(jù)因子為:

步驟5:根據(jù)步驟4所得的先驗(yàn)概率和有無缺陷條件下的條件概率來預(yù)測(cè)本項(xiàng)目實(shí)例的特征分布有無缺陷;

本項(xiàng)目實(shí)例被預(yù)測(cè)為有無缺陷的概率為其中ci為'y'或'n',p(‘c’)為步驟3.4里面計(jì)算的有無缺陷的先驗(yàn)概率,為步驟3.4里的該實(shí)例每個(gè)屬性條件概率的乘積,p(x)為步驟3.4里的本項(xiàng)目實(shí)例的歸一化證據(jù)因子。如果p('y'|x)≥p('n'|x),那么實(shí)例x被預(yù)測(cè)為有缺陷,否則無缺陷。這里由步驟4中得到的有無缺陷的先驗(yàn)概率,有無缺陷條件下每個(gè)屬性的條件概率和證據(jù)因子可得,新項(xiàng)目實(shí)例y1被預(yù)測(cè)為有缺陷和無缺陷的概率分別為:顯而易見,p(′y′|y1)>p(′n′|y1),所以新項(xiàng)目實(shí)例y1被預(yù)測(cè)為有缺陷。

本實(shí)施例可由本領(lǐng)域技術(shù)人員采用計(jì)算機(jī)軟件技術(shù)依據(jù)下述技術(shù)細(xì)節(jié)自行實(shí)現(xiàn)。

應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。

應(yīng)當(dāng)理解的是,上述針對(duì)較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對(duì)本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請(qǐng)求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

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