常瑞花,賈鵬
(武警工程大學(xué)科研部,西安710086)
基于度量元的靜態(tài)軟件缺陷預(yù)測(cè)技術(shù)*
常瑞花,賈鵬
(武警工程大學(xué)科研部,西安710086)
軟件缺陷預(yù)測(cè)技術(shù)是當(dāng)前軟件工程領(lǐng)域的一個(gè)熱點(diǎn)研究問題。回顧和綜述了基于度量元的靜態(tài)軟件缺陷預(yù)測(cè)技術(shù)研究的起源與國內(nèi)外最新進(jìn)展動(dòng)態(tài),并對(duì)常用缺陷預(yù)測(cè)技術(shù)的評(píng)價(jià)指標(biāo)進(jìn)行對(duì)比和分析,指出其優(yōu)缺點(diǎn)和適用范圍。最后對(duì)靜態(tài)軟件缺陷預(yù)測(cè)技術(shù)的可能發(fā)展方向進(jìn)行預(yù)測(cè)。
度量元,軟件缺陷,預(yù)測(cè),靜態(tài)
軟件密集型裝備中軟件所占比例的日益增加,使得系統(tǒng)的可靠性越來越依賴于其采用軟件的可靠性。研究表明普遍存在于軟件中的缺陷,已成為制約系統(tǒng)可靠性的瓶頸。而當(dāng)前常用的檢驗(yàn)、驗(yàn)證手段往往難以發(fā)現(xiàn)并排除所有的軟件缺陷。為此,軟件缺陷預(yù)測(cè)技術(shù)應(yīng)運(yùn)而生,成為當(dāng)前國內(nèi)外研究的熱點(diǎn)。
軟件缺陷預(yù)測(cè)技術(shù)從20世紀(jì)70年代發(fā)展至今,一直都是軟件工程領(lǐng)域中最活躍的內(nèi)容之一。軟件缺陷預(yù)測(cè)技術(shù)大致可以分為靜態(tài)軟件缺陷預(yù)測(cè)和動(dòng)態(tài)軟件缺陷預(yù)測(cè)兩種。靜態(tài)軟件缺陷預(yù)測(cè)技術(shù)主要是指基于軟件缺陷相關(guān)的度量元數(shù)據(jù),對(duì)軟件缺陷的數(shù)量或分布進(jìn)行預(yù)測(cè)研究的技術(shù)。主要針對(duì)靜態(tài)軟件缺陷預(yù)測(cè)技術(shù)及相關(guān)問題展開研究。當(dāng)前軟件缺陷預(yù)測(cè)的研究內(nèi)容主要集中在以下3個(gè)方面。
1.1 估計(jì)軟件中遺留或需移除的軟件缺陷數(shù)目
早期軟件缺陷預(yù)測(cè)主要根據(jù)經(jīng)驗(yàn)來估計(jì),通常使用統(tǒng)計(jì)學(xué)習(xí)方法估計(jì)遺留在軟件系統(tǒng)中的缺陷數(shù)目[1]。例如,人們普遍認(rèn)為一個(gè)軟件模塊中缺陷數(shù)量大約為每60行一個(gè)缺陷(樂觀估計(jì)的話為每100行有1個(gè)缺陷),并據(jù)此來估計(jì)項(xiàng)目驗(yàn)證和測(cè)試階段所需要的人力和計(jì)算機(jī)資源。之后量化的研究有:Halstead[2]提出缺陷與軟件體積度量元的關(guān)系D=V/3 000。其中,軟件體積V與開發(fā)語言相關(guān),V=N(log2(n)),N=N1+N2,n=n1+n2,n1表示不同操作符數(shù)量,n2表示不同操作數(shù)數(shù)量,N1表示總的操作符數(shù)量,N2代表總的操作數(shù)數(shù)量;Lipow[3]在Halstead的基礎(chǔ)上進(jìn)行了改進(jìn),考慮了語言的差異性,提出了缺陷與可執(zhí)行代碼行L的關(guān)系式:D/L=A0+A1lnL+ A2ln2L,其中,系數(shù)Ai(i=0,1,2…)與編程語言相關(guān),語言越高級(jí),則系數(shù)Ai越大;Takahashi[4]將代碼與具體的文檔數(shù)量對(duì)應(yīng)起來,給出了缺陷密度的估計(jì)式:B=67.98+0.46f1-9.69f2-0.08f3。其中B為缺陷率,即每千行代碼中包含的缺陷數(shù)目,f1為程序規(guī)約變更的頻率,f2為程序員技能,f3為程序設(shè)計(jì)文檔;之后,Malaiya等人[5]在假設(shè)模塊規(guī)模符合指數(shù)分布的情況下,給出了缺陷密度估算公式:D(s)=a/s+b+cs。其中,D(s)表示缺陷密度,s為規(guī)模,a,b,c為經(jīng)驗(yàn)值,它們分別取決于編程人員能力,過程成熟度以及測(cè)試程度等。
1.2 軟件缺陷分布預(yù)測(cè)技術(shù)
著名學(xué)者Khoshgoftaar,Lessmann等人[6-8]通過收集軟件缺陷、軟件技術(shù)、軟件過程以及執(zhí)行代碼等關(guān)聯(lián)的度量元數(shù)據(jù),利用分類技術(shù)或回歸技術(shù)研究軟件缺陷的分布問題。研究結(jié)果表明,軟件缺陷在軟件模塊中的分布符合2~8原則,因此,要預(yù)測(cè)或識(shí)別這些包含大多數(shù)軟件缺陷的少數(shù)模塊,就需要分類技術(shù)來進(jìn)行判定。隨著機(jī)器學(xué)習(xí)技術(shù)研究在軟件工程領(lǐng)域中的廣泛深入,用于軟件缺陷預(yù)測(cè)的分類技術(shù)有很多[3,9-19],例如線性判別分析(Linear Discriminant Analysis,LDA),邏輯回歸(Logistic Regression,LR),樸素貝葉斯(Na?ve Bayes,NB),貝葉斯網(wǎng)絡(luò)(Bayesian Networks,BN),K近鄰(K-Nearest Neighbor,KNN),多層感知機(jī)(Multi-Layer Perceptron,MLP),徑向基網(wǎng)絡(luò)(Radial Basis Function network,RBFnet),遺傳程序(Genetic Programming,GP),支持向量機(jī)(Support Vector Machine,SVM),決策樹(Decision Tree,DT),隨機(jī)森林(Random Forest,RF)等等。
雖然提出了大量的軟件缺陷預(yù)測(cè)方法,然而準(zhǔn)確的軟件缺陷預(yù)測(cè)問題依然沒有徹底解決。Lessmann和Menzies等人[7,20]發(fā)現(xiàn)當(dāng)前大量的軟件缺陷預(yù)測(cè)方法在預(yù)測(cè)精度上遇到了瓶頸,分析其原因主要有兩點(diǎn):①可供使用的(有標(biāo)識(shí))軟件度量元數(shù)據(jù)有限;②從軟件度量元數(shù)據(jù)中獲取的信息有限。而且大多數(shù)的軟件缺陷預(yù)測(cè)方法建立于存在大量的有標(biāo)識(shí)軟件度量元數(shù)據(jù)的假設(shè)上,但在實(shí)際過程中,存在許多可供使用的有標(biāo)識(shí)軟件度量元數(shù)據(jù)十分有限的情況,限制了上述預(yù)測(cè)方法性能的有效發(fā)揮,因此,一定程度上限制了其推廣應(yīng)用。為了克服該瓶頸,學(xué)者進(jìn)行了一些有益的研究,Menzies等人[21]提出和設(shè)計(jì)了元學(xué)習(xí)模型WHICH,并指出針對(duì)不同的需求采用不同的評(píng)價(jià)指標(biāo),同時(shí)提出指標(biāo)AUC(Effort,PD)用于模型的評(píng)價(jià)。也有學(xué)者提出使用不同項(xiàng)目的軟件度量元數(shù)據(jù)[22-23]。Selia和Catal等人[24-25]則利用大量存在的無標(biāo)識(shí)軟件度量元數(shù)據(jù)進(jìn)行軟件缺陷預(yù)測(cè)。
1.3 軟件缺陷預(yù)測(cè)技術(shù)的評(píng)價(jià)
在軟件缺陷預(yù)測(cè)研究的領(lǐng)域中,提出了許多的缺陷預(yù)測(cè)模型和方法,然而由于數(shù)據(jù)私有或不公開的問題,對(duì)于各類預(yù)測(cè)技術(shù)的評(píng)價(jià)和比較分析一直比較少。最早進(jìn)行軟件缺陷預(yù)測(cè)模型比較的是:2003年,Khoshgoftaar等人[26]利用一組大型通信軟件度量元數(shù)據(jù)對(duì)6類缺陷預(yù)測(cè)方法進(jìn)行了比較和評(píng)價(jià),評(píng)價(jià)指標(biāo)選用平均絕對(duì)誤差(Average Absolute Error,AAE)和平均相對(duì)誤差(Average Relative Error,ARE)。2004年,Khoshgoftaar等人[27]指出不同的分類方法產(chǎn)生不同的I類和II類錯(cuò)誤率,如果單純利用某個(gè)錯(cuò)誤率來評(píng)價(jià)不同的預(yù)測(cè)方法是難以得到大家認(rèn)同的,需要在兩類錯(cuò)誤類之間取得平衡。如果按照I類和II類錯(cuò)誤率的總計(jì)來評(píng)價(jià)這幾類預(yù)測(cè)方法也存在一定的問題,因?yàn)镮類和II類錯(cuò)誤的成本是不同的,所以Khoshgoftaar按照經(jīng)驗(yàn)值給出了I類和II類錯(cuò)誤的成本對(duì)比,將成本因素考慮進(jìn)去引入錯(cuò)分成本(Expected Cost of Misclassification,ECM)的概念,并在大型通信系統(tǒng)中收集軟件度量元和缺陷數(shù)據(jù)完成對(duì)這7類缺陷方法進(jìn)行評(píng)價(jià)。2005年前后,美國國家航空航天局NASA和一些研究學(xué)者收集并建立了公開軟件度量元數(shù)據(jù)庫MDP(Metrics Data Program)[28]和PROMISE[29],這為軟件缺陷預(yù)測(cè)技術(shù)的研究提供了大量可以免費(fèi)下載的軟件度量元數(shù)據(jù)樣本,很大程度上緩解了軟件度量元數(shù)據(jù)不足的現(xiàn)狀。在這些公開的軟件度量元數(shù)據(jù)集上,2004年,Zhong等人[30]比較了25種軟件缺陷預(yù)測(cè)方法的性能。2008年,Lessmann[7]也在NASA的10組公開數(shù)據(jù)上對(duì)22種軟件缺陷預(yù)測(cè)算法進(jìn)行了比較。2007年,張洪宇等人[31]對(duì)基于樸素貝葉斯缺陷預(yù)測(cè)過程中采用的(PD,PF)評(píng)價(jià)指標(biāo)進(jìn)行了質(zhì)疑,發(fā)現(xiàn)較高的PD值和較低的PF值并不能確保精確率(Precision)取得較高的值,并指出對(duì)于不平衡數(shù)據(jù)而言,較好的缺陷模型應(yīng)該達(dá)到較高的反饋率和精確率,指出(PD,Precision)指標(biāo)更適于軟件缺陷的預(yù)測(cè)。同期,Menzies等人對(duì)張洪宇等人的質(zhì)疑進(jìn)行了回應(yīng),指出Precison和PF近似反比,且Precision指標(biāo)穩(wěn)定性差,高的精確率需要付出較高的代價(jià)[32]。另外,基于混淆矩陣的評(píng)價(jià)指標(biāo)通常假設(shè)正確的肯定率或錯(cuò)誤的否定率的成本是相同的,但這與實(shí)際情況不符,所以Eric等人[33-34]提出了基于成本效益(Cost-Effectiveness,CE)的評(píng)價(jià)方法。
國內(nèi)對(duì)于軟件缺陷的研究,主要集中在軟件缺陷數(shù)據(jù)的分析、缺陷的分類和管理等方面[35-37]。而基于度量元的軟件缺陷預(yù)測(cè)方法研究,國內(nèi)起步較晚,但是發(fā)展十分迅速。最早基于度量元的軟件缺陷預(yù)測(cè)研究的是哈爾濱工程大學(xué)張家海等人[38],利用單隱層神經(jīng)網(wǎng)絡(luò)估測(cè)了組合導(dǎo)航軟件模塊中的缺陷數(shù)目,但神經(jīng)網(wǎng)絡(luò)需要大量的導(dǎo)航軟件數(shù)據(jù),限制了模型在實(shí)際過程中的使用。隨著機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘等技術(shù)的發(fā)展,許多高校和研究所陸續(xù)提出了各種軟件缺陷預(yù)測(cè)方法[39-41]。但是,這些方法主要建立在私有數(shù)據(jù)上,大大限制了模型的推廣。隨著NASA MDP和Promise等公開數(shù)據(jù)庫的出現(xiàn),國內(nèi)高校和研究組織基于這些公開數(shù)據(jù)展開了軟件缺陷預(yù)測(cè)的相關(guān)研究,涌現(xiàn)出一批最新的研究成果,例如,西安交通大學(xué)宋擒豹等人[42]提出了復(fù)雜軟件缺陷預(yù)測(cè)模型無偏向比較的框架,通過仿真數(shù)據(jù)和公開數(shù)據(jù)對(duì)該框架的有效性進(jìn)行了驗(yàn)證。東北大學(xué)的姜慧研等人[43]提出了ACO-SVM軟件缺陷預(yù)測(cè)算法,并在多組公開數(shù)據(jù)上進(jìn)行仿真實(shí)驗(yàn)驗(yàn)證其有效性,然而該方法的不足之處在于參數(shù)的尋優(yōu)需要較長的時(shí)間。電子科技大學(xué)的彭怡和馬櫻等人也分別對(duì)軟件缺陷預(yù)測(cè)展開研究,彭怡等人[44]對(duì)基于集成方法的軟件缺陷預(yù)測(cè)模型提出了一種多準(zhǔn)則決策的評(píng)價(jià)方法AHP;馬櫻等人[45]提出了基于基本偏相關(guān)方法的軟件缺陷預(yù)測(cè)模型,在公開數(shù)據(jù)Eclipse上取得較好的性能,但該方法對(duì)于軟件度量元和缺陷數(shù)據(jù)的質(zhì)量要求比較高。最近馬櫻等人[46]又提出了基于非對(duì)稱核主成分分析方法用于軟件缺陷的預(yù)測(cè)。
可以發(fā)現(xiàn)上述軟件缺陷預(yù)測(cè)的研究主要是基于有標(biāo)識(shí)的軟件度量元數(shù)據(jù)展開的,而且許多方法假設(shè)存在大量的有標(biāo)識(shí)軟件度量元數(shù)據(jù)。但在許多的實(shí)際過程中,有標(biāo)識(shí)的軟件度量元數(shù)據(jù)是相對(duì)貧瘠的。近一兩年來,國內(nèi)學(xué)者為了解決有標(biāo)識(shí)軟件數(shù)據(jù)匱乏或不足情況下的軟件缺陷預(yù)測(cè)問題,進(jìn)行了一些有益的研究。一些學(xué)者利用實(shí)際過程中大量存在的無標(biāo)識(shí)度量元數(shù)據(jù)進(jìn)行缺陷檢測(cè)模型的建立[47],也有學(xué)者使用跨項(xiàng)目(Cross-Project)數(shù)據(jù)緩解有標(biāo)識(shí)軟件數(shù)據(jù)的不足[48],但是基于跨項(xiàng)目數(shù)據(jù)的軟件缺陷預(yù)測(cè)是一個(gè)極富挑戰(zhàn)性的問題,研究發(fā)現(xiàn)基于跨項(xiàng)目數(shù)據(jù)的缺陷預(yù)測(cè)模型性能有時(shí)反而更差。清華大學(xué)的張洪宇和其團(tuán)隊(duì)[49]也對(duì)此進(jìn)行研究,提出了主動(dòng)和半監(jiān)督學(xué)習(xí)結(jié)合采樣的軟件缺陷預(yù)測(cè)方法,該方法比較適于大規(guī)模的軟件項(xiàng)目,不足之處在于樣本的訓(xùn)練對(duì)收集的軟件數(shù)據(jù)要求很高,限制了其推廣??梢钥闯?,國內(nèi)高校和研究所對(duì)于無標(biāo)識(shí)軟件度量元數(shù)據(jù)缺陷預(yù)測(cè)的研究還處于一個(gè)起步摸索階段。
軟件缺陷預(yù)測(cè)技術(shù)的研究既是軟件工程領(lǐng)域的探索性研究,具有較強(qiáng)的創(chuàng)新性,也是該領(lǐng)域的基礎(chǔ)性研究。雖然當(dāng)前提出了眾多的軟件缺陷預(yù)測(cè)方法或模型,但到目前為止,軟件缺陷預(yù)測(cè)問題還沒有得到徹底解決,尚有如下問題存在:
3.1 軟件缺陷預(yù)測(cè)模型通用性差
存在許多的軟件缺陷預(yù)測(cè)模型基于私有數(shù)據(jù)建立,由于種種原因這些私有數(shù)據(jù)沒有公開,使得其他研究人員難以進(jìn)行預(yù)測(cè)模型的比較,且針對(duì)特定數(shù)據(jù)建立的該模型通用性較差。
3.2 軟件度量元選擇缺乏理論支持
不同度量元對(duì)于軟件缺陷預(yù)測(cè)結(jié)果的影響問題。傳統(tǒng)的軟件度量元技術(shù)主要是基于規(guī)模度量元,隨著軟件開發(fā)技術(shù)的發(fā)展,軟件的復(fù)雜度不斷增加,出現(xiàn)了許多新的度量元,例如過程度量元,執(zhí)行度量元等。新的度量元能否提高原來預(yù)測(cè)技術(shù)的性能,還沒有確鑿的證據(jù)。
3.3 有標(biāo)識(shí)軟件度量元數(shù)據(jù)預(yù)測(cè)精度的提高
軟件缺陷預(yù)測(cè)過程中,軟件度量元數(shù)據(jù)的收集需要大量的成本,導(dǎo)致訓(xùn)練軟件缺陷預(yù)測(cè)模型的數(shù)據(jù)很有限,尤其是有類別標(biāo)識(shí)的軟件度量元數(shù)據(jù)。準(zhǔn)確的軟件缺陷預(yù)測(cè)是軟件測(cè)試人員和項(xiàng)目管理者追求的目標(biāo),如何從新角度出發(fā),進(jìn)一步提高軟件缺陷預(yù)測(cè)的精度是一個(gè)重要的研究內(nèi)容。
3.4 無標(biāo)識(shí)軟件度量元數(shù)據(jù)的預(yù)測(cè)技術(shù)研究
當(dāng)前大部分基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測(cè)技術(shù)都假設(shè)存在大量的軟件度量元和缺陷數(shù)據(jù)。然而出于種種原因,在實(shí)際情況中有標(biāo)識(shí)軟件度量元數(shù)據(jù)是十分匱乏的,如何利用無標(biāo)識(shí)軟件缺陷度量元數(shù)據(jù)進(jìn)行準(zhǔn)確的軟件缺陷預(yù)測(cè)是軟件工程領(lǐng)域中下一步研究的熱點(diǎn)和難點(diǎn)。
論文綜述了基于度量元靜態(tài)軟件缺陷預(yù)測(cè)技術(shù)的國內(nèi)外研究現(xiàn)狀,歸納總結(jié)當(dāng)前存在的問題,并指出了下一步研究的內(nèi)容和方向。
參考文獻(xiàn):
[1]王青,伍書劍,李明樹.軟件缺陷預(yù)測(cè)技術(shù)[J].軟件學(xué)報(bào),2008,19(7):1565-1580.
[2]Halstead M H.Elements of Software Science(Operating and Programming Systems Series)[M].New York:Elsevier Science Inc,1977.
[3]Lipow M.Number ofFaults Per Line of Code[J].IEEE Transactionson SoftwareEngineering,1982,8(4):437-439.
[4]Takahashi M,Kamayachi Y.An Empirical Study of a Model for Program Error Prediction[J].IEEE Transactions on Software Engineering,1989,15(1):82-86.
[5]Malayia Y K,Denton J.Module Size Distribution and Defect Density[C]//In:Proceeding of the 11th International Symposium on Software Reliability Engineering.San Jose::IEEE Computer Society Press,2000.
[6]Evett M,Khoshgoftaar T,Chien P,et al.GP-based Software Quality Prediction[C]//In:Proceeding of the 3rd Annual Genetic Programming Conference.SanFrancisco:Morgan Kaufmann Press,1998.
[7]Lessmann S,Baesens B,Mues C,et al.Benchmarking Classification Models for Software Defect Prediction:A Proposed Framework and Novel Findings[J].IEEE Trans Softw Eng,2008,34(4):485-496.
[8]Naeem Seliya,Taghi M K.The Use of Decision Trees for Cost-sensitive Classification:an Empirical Study in Software Quality Prediction[J].Data Ming and Knowledge Discovery,2011,5(1):448-459.
[9]Munson J C,Khoshgoftaar T M.The Detection of Fault-prone Programs[J].IEEE Transaction on Software Engineering,1992,18(5):423-433.
[10]Briand L C,Melo W L,Wust J.Assessing the Applicability of Fault-proneness Models Across Object-oriented Software Projects[J].IEEE Transaction on Software Engineering,2002,28(7):706-720.
[11]Porter A,Selby R.Empirically Guided Software Development Using Metric-based Classification Trees[J].IEEE Software,1990,7(2):46-54.
[12]Menzies T,Greenwald J,F(xiàn)rank A.Data Mining Static Code Attributes to Learn Defect Predictors[J].IEEE Transactions on Software Engineering,2007,33(1):2-13.
[13]Zheng J.Prediction Software Reliability with Neural Network Ensembles[J].Expert System with Application,2009,36(2):2116-2122.
[14]Kaim O E,Mahmoud O E.Predicting Defect-prone Software Modules using Support Vector Machines[J].The Journal of Systems and Software,2008,81(5):649-660.
[15]Catal C,Diri B.Investigating the Effect of Dataset Size,Metrics Sets and Feature Selection Techniques on Software FaultPrediction Problem[J].Information Science,2009,179(8):1040-1058.
[16]Bibi S,Tsoumakas G,Stamelos I,et al.Regression via Classification Applied on Software Defect Estimation[J]. ExpertSystemswithApplication,2005,34(3): 2091-2101.
[17]Pai G J,Dugan J B.Empirical Analysis of Software Fault Content and Fault Proness Using Byesian Methods[J]. IEEE Transaction on Software Engineering,2006,33(10): 675-686.
[18]Gao K,Khoshgoftaar T M.A Comprehensive Empirical Study of Count Models for Software Fault Prediction[J]. IEEE Transactions for Reliability,2011,56(2):223-236.
[19]Khoshgoftaar T M,Seliya N,Gao K.Assessment of a New Three-group Software Quality Classification Technique:An Empirical Case Study[J].Empirical Software Engineering,10(2):183-218.
[20]Menzies T,Turhan B,Gregory G,et al.Implication of Ceiling Effects in Defect Predictors[C]//In Proceedings of the 4th International Workshop on Predictor Models in Software Engineering.Leipzig,Germany,2008.
[21]Menzies T,Milton Z,Turhan B,et al.Defect Prediction from Static Code Features:Current Results,Limitations,New Approaches[J].Automated Software Engineering,2010,17(4):375-407.
[22]Zimmermann T,Nagappan N,Gall H,et al.Cross-project Defect Prediction:a Large Scale Experiment on Data vs. Domain vs.Process[C]//In:Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering.Amsterdam,the Netherlands,New York:ACM Press,2009.
[23]He Z M,Shu F D,Yang Y,et al.An Investigation on the Feasibility of Cross-project Defect Prediction[J].Automated Software Engineering,2012,19(2):167-199.
[24]Seliya N,Khoshgoftaar T M.Software Quality Estimation with Limited Fault Data:a Semi-supervised Learning Perspective[J].Software Quality Journal,2007,15(3): 327-344.
[25]Catal C,Sevim U,Diri B.Clustering and Metrics Thresholds Based Software Fault Prediction of Unlabeled Program Modules[C]//In:Proceedings of the 6th International Conference on Information Technology:New Generations,Software Engineering Track.New York:ACM Press,2009.
[26]Khoshgoftaar T M,Seliya N.Fault Prediction Modeling for Software Quality Estimation:Comparing Commonly used Techniques[J].Empirical Software Engineering,2003,8(3):255-283.
[27]Khoshgoftaar T M,Seliya N.Comparative Assessment of Software Quality Classification Techniques:An EmpiricalCase Study[J].Empirical Software Engineering,2004,9(3):229-257.
[28]NASA/IV&VFacility.NASAMetricsDataProgram[DB/EL].http://mdp.ivv.nasa.gov/.2005-12-5.
[29]Sayyad S J,Menzies T J.The PROMISE Repository of Software Engineering Database[EB/OL].Canada:University of Ottawa.http://promise.site.uottawa.ca/SERepository.2013-11-5.
[30]Zhong S,Khoshgoftaar T,Seliya N.Analyzing Software Measurement Data with Clustering Techniques[J].IEEE Intelligent System,2004,19(2):20-27.
[31]Zhang H,Zhang X.Comments on“Data Mining Static Code Attributes to Learn Defect Predictors”[J].IEEE Transactions on Software Engineering,2007,33(9):635-637.
[32]Menzies T,Dekhtyar A,Distefano J,et al.Problems with Precision:A Response to“Comments on‘Data Mining Static Code Attributes to Learn Defect Predictors’”[J]. IEEE Transactions on Software Engineering,2007,33(9): 637-640.
[33]Erik A,Lionel C B,Magnus J F.Data Mining Techniques for Building Fault-proneness Model in Telecom Java Software[C]//In:Proceedings of the 18th International Symposium on Software Reliability Engineering.New York:IEEE Computer Society Press,2007.
[34]Erik A,Lionel D,Briand,et al.A Systematic and Comprehensive Investigation of Methods to Build and Evaluate Fault Prediction Models[J].The Journal of System and Software,2010,83(1):2-17.
[35]聶劍平,韓柯,陳光,等.軟件缺陷增長過程的混沌分析[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(11):97-100.
[36]劉海,郝克剛.軟件缺陷數(shù)據(jù)的分析方法及其實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2008,35(8):262-264.
[37]王賀.基于ODC的軟件缺陷管理方法的研究與應(yīng)用[J].北京:北京郵電大學(xué),2009.
[38]張家海,孫楓,謝榮生,等.估測(cè)組合導(dǎo)航系統(tǒng)軟件缺陷的一種神經(jīng)網(wǎng)絡(luò)方法[J].哈爾濱工程大學(xué)學(xué)報(bào),2001,22(1):55-58.
[39]李心科,金元杰.基于灰色預(yù)測(cè)理論的軟件缺陷預(yù)測(cè)模型研究[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(3):101-103.
[40]顏真.基于模糊支持向量回歸的軟件缺陷預(yù)測(cè)[D].北京:北京理工大學(xué),2010.
[41]趙亮,侯金寶.文件和包層次的軟件缺陷預(yù)測(cè)[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,51(S1):1472-1476.
[42]Song Q B,Jia Z H,Shepperd M,et al.A General Software Defect-proneness Prediction Framework[J].IEEE Transactions on Software Engineering,2011,37(3):356-370.
[43]姜慧研,宗茂,劉相瑩.基于ACO-SVM的軟件缺陷預(yù)測(cè)模型的研究[J].計(jì)算機(jī)學(xué)報(bào),2011,34(6): 1148-1154.
[44]Peng Y,Kou G,Wang G X,et al.Ensemble of Software Defect Predictors:an AHP-based Evaluation Method[J].International Journal of Information Technology&Decision Making,2011,10(1):187-206.
[45]馬櫻,羅光春,李炯,等.偏相關(guān)方法在軟件缺陷預(yù)測(cè)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2012,29(2):594-596.
[46]Ma Y,Luo G C,Chen H.Kernel Based Asymmetric Learning for Software Defect Prediction[J].IEICE Trans.Inf.& Syst.,2012,E95-D(1):267-270.
[47]Jiang Y,Li M S,Zhou Z H.Software Defect Detection with ROCUS[J].Journal of Computer Science&Technology,2011,26(2):328-342.
[48]Ma Y,Luo G C,Zeng X,et al.Transfer Learning for Cross-company Software Defect Prediction[J].Information and software technology,2012,54(3):248-25.
[49]Li M,Zhang H Y,Wu R X,et al.Sample-based Software Defect Prediction with Active and Semi-supervised Learning[J].Automated Software Engineering,2012,19(2): 201-230.
Review of Static Software Defect Prediction Based on Metrics
CHANG Rui-hua,JIA Peng
(Engineering University of Armed Police Force,Xi’an 710086,China)
Software defect prediction technology has been a hot topic in the field of software engineering.Firstly,this paper reviewed and summarized the origin and new development of static software defect prediction based on metrics.Then evaluation methods for software defect prediction are analyzed.Meantime,its advantages and disadvantages and scope are compared and pointed out. Finally,some opinions of the authors about the future development in this research field are presented.
metric,software defect,prediction,static
TP311
A
1002-0640(2015)02-0001-05
2013-12-05
2014-02-07
“十一五”國防預(yù)研基金資助項(xiàng)目;武警工程大學(xué)基礎(chǔ)研究項(xiàng)目(WJY201315)
常瑞花(1982-),女,山西太原人,博士。研究方向:軟件缺陷預(yù)測(cè),信息處理與信息安全。