石陸魁,馬春娟,王靖鑫,周 浩
(河北工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津300401)
在面向?qū)ο蟮能浖毕蓊A(yù)測(cè)中,大部分模型基于分類算法,如BP神經(jīng)網(wǎng)絡(luò) (back propagation network,BP)[1]、樸素貝 葉 斯 (naive Bayesian,NB)[2]、支 持 向 量 機(jī) (support vector machine,SVM)[3,4]、K 近 鄰 法 (K-nearest neighbors,KNN)等。在軟件缺陷預(yù)測(cè)中,通常根據(jù)某種軟件度量模型來(lái)獲得相關(guān)數(shù)據(jù),然后利用分類方法進(jìn)行預(yù)測(cè)。但對(duì)于面向?qū)ο蟮能浖瑸榱烁玫孛枋鲕浖奶匦?,需要用更多的屬性?lái)度量軟件,導(dǎo)致數(shù)據(jù)的維數(shù)越來(lái)越高。隨著數(shù)據(jù)維數(shù)的增加,最大限度地預(yù)測(cè)軟件中存在的缺陷變得較為困難,產(chǎn)生了所謂的 “維數(shù)災(zāi)難”問(wèn)題。因此,為了更準(zhǔn)確地預(yù)測(cè)面向?qū)ο蟮能浖写嬖诘娜毕?,提高軟件質(zhì)量,對(duì)高維的軟件度量數(shù)據(jù)進(jìn)行降維處理是非常必要的[5]。而流形學(xué)習(xí)作為一種處理高維數(shù)據(jù)的重要技術(shù),可以發(fā)現(xiàn)隱藏在高維數(shù)據(jù)中的真實(shí)結(jié)構(gòu)。流形學(xué)習(xí)方法分為線性和非線性方法,線性方法如主成分分析法 (principal component analysis,PCA)等,非線性方法如等距映射法(isometric mapping,ISOMAP)、局域線性嵌入法 (locally linear embedding,LLE)、拉普拉斯特征映射法 (Laplacian eigenmaps,LE)、局部切空間校正法 (linear local tangent space alignment,LTSA)等[6],這些非線性方法都可以較好地將高維數(shù)據(jù)映射到低維空間中,并得到了廣泛的應(yīng)用[7-11]。通過(guò)將流形學(xué)習(xí)引入到面向?qū)ο蟮能浖毕蓊A(yù)測(cè)中,有效地提高了缺陷的預(yù)測(cè)精度和效率。
軟件缺陷在軟件工程領(lǐng)域是指可運(yùn)行產(chǎn)品中會(huì)導(dǎo)致軟件失效的瑕疵,開(kāi)展軟件缺陷預(yù)測(cè)的目的是幫助軟件開(kāi)發(fā)人員更有效地提高發(fā)現(xiàn)和排除缺陷的效率,從而減少軟件產(chǎn)品中的缺陷,達(dá)到提高軟件產(chǎn)品的有效性和可靠性的目的。軟件度量是與軟件缺陷預(yù)測(cè)密切相關(guān)的一個(gè)概念,指軟件生產(chǎn)過(guò)程和軟件產(chǎn)品的屬性,其實(shí)質(zhì)是根據(jù)一定的規(guī)則,量化實(shí)體屬性,有效描述和理解軟件產(chǎn)品。軟件度量的目的是用軟件度量學(xué)科學(xué)地對(duì)軟件質(zhì)量進(jìn)行評(píng)價(jià),幫助制定切實(shí)可行的開(kāi)發(fā)計(jì)劃,合理利用資源,有效控制和管理開(kāi)發(fā)過(guò)程,從而提高軟件質(zhì)量,降低開(kāi)發(fā)成本。傳統(tǒng)的軟件度量模型包括McCabe結(jié)構(gòu)復(fù)雜性度量、Halstead軟件科學(xué)度量、LOC 語(yǔ)句行度量和Woodward度量等,它們都是針對(duì)傳統(tǒng)的面向結(jié)構(gòu)化的軟件開(kāi)發(fā)過(guò)程。軟件缺陷預(yù)測(cè)則是通過(guò)軟件度量來(lái)指導(dǎo)軟件開(kāi)發(fā)過(guò)程中資源的分配,幫助開(kāi)發(fā)人員發(fā)現(xiàn)缺陷,找出相應(yīng)的解決方案,提高軟件產(chǎn)品的質(zhì)量。
隨著面向?qū)ο蠹夹g(shù)的廣泛應(yīng)用,傳統(tǒng)的度量模式無(wú)法度量面向?qū)ο蟮木幊讨械臄?shù)據(jù)抽象、封裝、繼承、多態(tài)、信息隱藏等特性,需要研究面向?qū)ο蟮能浖攘磕P汀D壳?,主要的面向?qū)ο蟮能浖攘磕P陀校篊&K 度量模型和MOOD 模 型 等[12-14]。C&K 度 量 模 型 給 出 了6 個(gè) 類 級(jí) 別 的度量指標(biāo):每個(gè)類的加權(quán)方法數(shù) (weighted methods per class,WMC);繼 承 樹(shù) 的 深 度 (depth of inheritance,DIT);類的孩子數(shù)目 (number of children,NOC);對(duì)象類之間耦合 (coupling between object classes,CBO);一個(gè)類的響應(yīng)集 合 (response for a class,RFC);類 內(nèi) 聚 缺 乏 度(lack of cohesion in methods,LCOM)。該模型能較好好地反映面向?qū)ο蠹夹g(shù)的本質(zhì)特點(diǎn),設(shè)計(jì)者可以根據(jù)這6個(gè)指標(biāo)的度量值調(diào)節(jié)設(shè)計(jì)的靈活度,指導(dǎo)類的設(shè)計(jì)。由于MOOD 模型受環(huán)境影響較大,所以應(yīng)用較少。在實(shí)驗(yàn)中選擇基于C&K 度量模型對(duì)面向?qū)ο筌浖娜毕葸M(jìn)行預(yù)測(cè)。
LE算法是一種基于譜圖理論的流形學(xué)習(xí)算法,其基本思想是在高維空間中離得很近的點(diǎn)投影到低維空間中的像也應(yīng)該離得很近,LE算法最終歸結(jié)為求解圖拉普拉斯算子的廣義特征值問(wèn)題[6]。設(shè)集合X= {X1,X2,…,Xn}是D 維空間RD中的一個(gè)數(shù)據(jù)集,LE算法的主要步驟如下[6]:
(1)構(gòu)造鄰域圖。使用ε鄰域或k 近鄰方法計(jì)算每個(gè)樣本點(diǎn)Xi的鄰域并構(gòu)造鄰接矩陣G。
(2)建立加權(quán)鄰接矩陣W。為鄰域圖中的每條邊選擇一個(gè)權(quán)值,有2種方法。一種是使用0/1核,如果樣本點(diǎn)i和j 有邊連接,即Gij=1,則Wij=1,否則Wij=0;另一種是熱核方程,如果Gij=1,則Wij=exp(-d2ij/σ2);否則Wij=0。
(3)求解廣義特征問(wèn)題。通過(guò)求解稀疏矩陣的特征值問(wèn)題來(lái)求出最優(yōu)解,圖G 的拉普拉斯矩陣定義為L(zhǎng)=DW,其中D 為對(duì)角矩陣且Dij=∑jWij,L 為拉普拉斯算子。將廣義特征方程中d 個(gè)最小特征值對(duì)應(yīng)的特征向量作為嵌入空間的坐標(biāo)Y。
LE算法側(cè)重于保持流形的局部鄰域結(jié)構(gòu),是一種局部的非線性方法,能夠反映數(shù)據(jù)集映射到低維空間的內(nèi)在幾何結(jié)構(gòu),可以用于數(shù)據(jù)的聚類處理。該算法的特點(diǎn)在于將問(wèn)題最終轉(zhuǎn)化為求解圖拉普拉斯算子的廣義特征值問(wèn)題,不僅簡(jiǎn)化了求解過(guò)程,而且大大提高了運(yùn)行速度。
不同的軟件缺陷預(yù)測(cè)模型使用了不同的預(yù)測(cè)技術(shù),目前常用的軟件缺陷預(yù)測(cè)技術(shù)大部分是基于分類算法的,如K 近鄰、樸素貝葉斯、支持向量機(jī)、BP神經(jīng)網(wǎng)絡(luò)等。實(shí)驗(yàn)中使用這4種分類方法作為預(yù)測(cè)方法,下面簡(jiǎn)要地介紹一下這些方法。
1.3.1 K 近鄰法
K 近鄰法的基本思路是:在訓(xùn)練集中找出k 個(gè)與待測(cè)樣本距離最近的樣本,計(jì)算每一個(gè)待測(cè)樣本屬于每類的權(quán)重,如下所示
式中:X——測(cè)試樣本的特征向量,sim(X,Xi)——相似度計(jì)算公式,y(Xi,cj)——類別屬性函數(shù),當(dāng)樣本Xi屬于類cj時(shí),函數(shù)值為1,否則為0。然后比較權(quán)重值,將測(cè)試樣本分到權(quán)重最大的一類中。
1.3.2 樸素貝葉斯法
樸素貝葉斯分類法基于概率統(tǒng)計(jì)的思想,假定各決策變量是相互獨(dú)立的,通過(guò)統(tǒng)計(jì)現(xiàn)有數(shù)據(jù)和已知的先驗(yàn)知識(shí),使用概率統(tǒng)計(jì)的手段預(yù)測(cè)未來(lái)某一事件可能發(fā)生的概率。假設(shè)X= {x1=A1,x2=A2,…,xn=An}為觀測(cè)樣本,假定可以將樣本分為m 個(gè)類,用c1,c2,…,cm表示,當(dāng)且僅當(dāng)滿足如下公式時(shí),未知樣本X 通過(guò)貝葉斯分類模型將其分為ci
P(ci|X)>P(cj|X),1≤j≤m,j≠i (2)
式中:ci——P(ci|X)的最大值對(duì)應(yīng)的類也稱為最大后驗(yàn)假定。
為了計(jì)算P(ci|X),由全概率公式可知
式中:P(ci)——先驗(yàn)概率。
為了解決數(shù)據(jù)集屬性較多時(shí)計(jì)算P(X|c(diǎn)i)開(kāi)銷非常大的問(wèn)題,樸素貝葉斯理論提出類條件獨(dú)立的假定,這樣簡(jiǎn)化了聯(lián)合分布,降低了P(X|c(diǎn)i)的計(jì)算開(kāi)銷,P(X|c(diǎn)i)的計(jì)算可簡(jiǎn)化為
式中:P(x1|c(diǎn)i),P(x2|c(diǎn)i),…,P(xn|c(diǎn)i)由訓(xùn)練樣本估計(jì),其計(jì)算方法如下
式中:Sik——類ci中屬性Ak的值為xk的訓(xùn)練樣本數(shù)。
1.3.3 支持向量機(jī)
支持向量機(jī)分類通過(guò)在高維空間中尋找最優(yōu)的分類超平面將兩類樣本盡可能多地正確分開(kāi),同時(shí)使分開(kāi)的兩類樣本距離該超平面最遠(yuǎn)。支持向量機(jī)的關(guān)鍵在于核函數(shù),它將向量映射到高維空間中。對(duì)二分類問(wèn)題,給定 {(X1,y1),…,(Xl,yl)}為線性可分樣本集,其中Xi∈Rn,yi∈ {+1,-1},i=1,2,…,l。SVM 求最優(yōu)分類面問(wèn)題可以轉(zhuǎn)化為二次規(guī)劃問(wèn)題,如下所示
式中:αi和αj——拉格朗日乘子,K (Xi,Xj)——核函數(shù),它是連接低維與高維之間的橋梁。求解方程式得:
式中:b*——最優(yōu)超平面的偏移量。根據(jù)支持向量機(jī)求得決策函數(shù)如下
在 實(shí) 驗(yàn) 中 使 用 徑 向 基 核 函 數(shù) (radial basis function,RBF),其定義如下
式中:X 和X′——特征向量,σ決定徑向基核函數(shù)的帶寬。
1.3.4 BP神經(jīng)網(wǎng)絡(luò)
誤差反向傳播神經(jīng)網(wǎng)絡(luò)BP通過(guò)反向傳播反復(fù)調(diào)整網(wǎng)絡(luò)的權(quán)值和偏差,使輸出模式盡可能地接近期望模式,當(dāng)輸出層的誤差平方和小于指定誤差時(shí)訓(xùn)練完成。算法包括以下幾個(gè)步驟:
(1)初始化網(wǎng)絡(luò)及學(xué)習(xí)參數(shù),設(shè)定神經(jīng)元閾值,初始化隱含層與輸出層各節(jié)點(diǎn)的連接權(quán)值為 [-1,1]區(qū)間的一個(gè)隨機(jī)數(shù)。
(2)提供訓(xùn)練模式,選擇一個(gè)期望輸出不滿足要求的訓(xùn)練模式,將其輸入模式和期望輸出傳遞給網(wǎng)絡(luò)。
(3)正向傳播過(guò)程,對(duì)給定的輸入模式,計(jì)算從第一隱含層開(kāi)始的輸出模式,比較得到的輸出模式與期望模式,若誤差不滿足要求,則執(zhí)行步驟 (4);否則,執(zhí)行步驟(6)。
(4)反向傳播過(guò)程,從輸出層反向計(jì)算到第一隱含層,并逐層修正各單元的連接權(quán)值。首先計(jì)算同一層單元的誤差δk,然后按照下式修正相應(yīng)的權(quán)值
(5)返回步驟 (3)。
(6)如果所有訓(xùn)練模式都滿足期望輸出,訓(xùn)練結(jié)束;否則,返回步驟 (2)。
為了更好地度量面向?qū)ο筌浖奶匦裕嫦驅(qū)ο蟮能浖攘磕P椭邪膶傩栽絹?lái)越多,導(dǎo)致度量數(shù)據(jù)的維數(shù)越來(lái)越高,直接對(duì)這些高維的軟件度量數(shù)據(jù)進(jìn)行軟件缺陷預(yù)測(cè),不但會(huì)影響預(yù)測(cè)的精度,而且會(huì)降低預(yù)測(cè)算法的執(zhí)行效率。如果使用流形學(xué)習(xí)算法對(duì)高維的軟件度量數(shù)據(jù)進(jìn)行降維,提取出其與分類類別相關(guān)的本質(zhì)特征,無(wú)疑會(huì)提高軟件缺陷的預(yù)測(cè)精度,而且會(huì)提高算法的執(zhí)行效率?;诖颂岢隽嘶诹餍螌W(xué)習(xí)的面向?qū)ο蟮能浖毕蓊A(yù)測(cè)模型,如圖1所示。
在該模型中,首先對(duì)原始的度量數(shù)據(jù)利用流形學(xué)習(xí)方法進(jìn)行降維處理,得到低維特征,然后將低維特征數(shù)據(jù)分為訓(xùn)練集和測(cè)試集,在訓(xùn)練集上訓(xùn)練建立預(yù)測(cè)模型,最后在測(cè)試集上測(cè)試預(yù)測(cè)模型的有效性。流形學(xué)習(xí)方法可以采用PCA、MDS、ISOMAP、LLE、LE和LSTA 等,預(yù)測(cè)方法可以采用KNN、BP神經(jīng)網(wǎng)絡(luò)、NB、SVM 等。
在2個(gè)數(shù)據(jù)集上驗(yàn)證所提模型的有效性,一個(gè)是KC1數(shù)據(jù)集[15],包含145個(gè)樣本,每個(gè)樣本有89個(gè)度量屬性,其中包括CK 度 量 集 的 屬 性 如 WMC、NOC、DIT、CBO、RFC、LCOM 等。另 一 個(gè) 是Eclipse2.0 數(shù) 據(jù) 集[16],有6728個(gè)樣本,從中抽取了200個(gè)樣本。樣本標(biāo)簽分兩類,沒(méi)有缺陷的軟件模塊用 “1”表示,有缺陷的軟件模塊用 “2”表示。在實(shí)驗(yàn)中采用二折交叉驗(yàn)證法,將每個(gè)數(shù)據(jù)集平均分成2個(gè)子集,輪流將其中一個(gè)子集做訓(xùn)練集,另一個(gè)子集做測(cè)試集,取2次的均值。使用精度(accuracy)、查準(zhǔn)率 (precision)、查全率(recall)和F值來(lái)評(píng)價(jià)模型的預(yù)測(cè)能力。
在實(shí)驗(yàn)中,首先用KNN、NB、SVM 和BP 神經(jīng)網(wǎng)絡(luò)直接對(duì)高維的軟件度量數(shù)據(jù)進(jìn)行預(yù)測(cè);然后利用PCA 方法將高維數(shù)據(jù)映射到低維空間中,再用4種分類方法對(duì)低維數(shù)據(jù)進(jìn)行預(yù)測(cè);接著利用LE 算法得到高維數(shù)據(jù)的低維表示,再用4種分類方法對(duì)低維數(shù)據(jù)進(jìn)行預(yù)測(cè);最后比較不同方法得到的結(jié)果。在實(shí)驗(yàn)中,SVM 模型類型采用CSVC模型,核函數(shù)采用徑向基核函數(shù)。在KC1 數(shù)據(jù)集上,LE算法中k=4 和d=5,PCA 算法中主成分個(gè)數(shù)為5,SVM 算法中C=1和σ=0.01176,實(shí)驗(yàn)結(jié)果見(jiàn)表1。在Eclipse2.0數(shù)據(jù)集上,LE算法中k=8和d=6,PCA 中主成分個(gè)數(shù)為5,SVM 算法中C=1 和σ=0.04167,實(shí)驗(yàn)結(jié)果見(jiàn)表2。
表1 在KC1數(shù)據(jù)集上的結(jié)果
表2 在Eclipse2.0數(shù)據(jù)集上的結(jié)果
通過(guò)上述實(shí)驗(yàn)可以看出,與直接對(duì)原始的軟件度量數(shù)據(jù)預(yù)測(cè)相比,用LE 算法降低維數(shù)后再預(yù)測(cè)具有更高的精度,而利用PCA 降維后多數(shù)情況下與直接預(yù)測(cè)的結(jié)果相近。同時(shí),用4種方法直接對(duì)高維數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí),4種方法的預(yù)測(cè)結(jié)果相差較大,KNN 方法的預(yù)測(cè)精度最高。而降維后再用4種方法進(jìn)行預(yù)測(cè)得到的結(jié)果非常相近,說(shuō)明降維后采用何種預(yù)測(cè)方法對(duì)預(yù)測(cè)結(jié)果的影響不大。因此,利用所提出的模型提高了軟件缺陷預(yù)測(cè)的精度,這樣有助于軟件開(kāi)發(fā)團(tuán)隊(duì)在軟件開(kāi)發(fā)周期的前期更準(zhǔn)確地預(yù)測(cè)軟件缺陷的分布,可以更好地幫助軟件開(kāi)發(fā)團(tuán)隊(duì)將有限的資源集中于容易出現(xiàn)缺陷的高風(fēng)險(xiǎn)模塊,以有效預(yù)防因前期模塊的缺陷帶來(lái)更多的漏洞,避免了后期測(cè)試時(shí)發(fā)現(xiàn)錯(cuò)誤而需要花費(fèi)大量時(shí)間和影響經(jīng)濟(jì)效益的問(wèn)題,可以更好的確保軟件如期保質(zhì)保量地完成。
此外降維后再預(yù)測(cè)所用的時(shí)間明顯減少,算法的執(zhí)行效率得到極大地提升。不同預(yù)測(cè)方法在2個(gè)數(shù)據(jù)集上降維前后的執(zhí)行時(shí)間如表3和表4所示。每種方法所用時(shí)間為十次執(zhí)行的平均值,單位為秒/s。
表4 各種預(yù)測(cè)方法在Eclipse2.0上的執(zhí)行時(shí)間
為了有效地度量面向?qū)ο蟮能浖枰酶嗟亩攘繉傩詠?lái)描述。對(duì)于高維的軟件屬性度量數(shù)據(jù),傳統(tǒng)的軟件缺陷預(yù)測(cè)方法會(huì)產(chǎn)生 “維數(shù)災(zāi)難”問(wèn)題。本文結(jié)合流形學(xué)習(xí)提出了一種基于流形學(xué)習(xí)的面向?qū)ο蟮能浖毕蓊A(yù)測(cè)模,其基本思想是利用流形學(xué)習(xí)方法降低數(shù)據(jù)的維數(shù)后再利用分類算法預(yù)測(cè)軟件中存在的缺陷。實(shí)驗(yàn)結(jié)果表明該模型有效地提高了軟件缺陷預(yù)測(cè)的精度和效率。下一步的工作是研究如何將該模型應(yīng)用在實(shí)際的軟件開(kāi)發(fā)過(guò)程中,來(lái)指導(dǎo)實(shí)際的軟件開(kāi)發(fā)。
[1]LI K,GONG L,KOU J.Predicting software quality by fuzzy neural network based on rough set[J].Journal of Computational Information Systems,2010,6 (5):1439-1448.
[2]GE Hehe,JIN Cong,YE Junmin.Software defect prediction model based on particle swarm optimization and nave Bayes[J].Computer Engineering,2011,37 (12):36-37 (in Chinese).[葛賀賀,金聰,葉俊民.基于PSO 和樸素貝葉斯的軟件缺陷預(yù)測(cè)模型 [J].計(jì)算機(jī)工程,2011,37 (12):36-37.]
[3]WANG Tao,LI Weihua,LIU Zun,et al.Software defect prediction model based on support vector machine[J].Journal of Northwestern Polytechnical University,2011,29 (6):864-870 (in Chinese).[王濤,李偉華,劉尊,等.基于支持向量機(jī)的軟件缺陷預(yù)測(cè)模型 [J].西北工業(yè)大學(xué)學(xué)報(bào),2011,29 (6):864-870.]
[4]JIANG Huiyan,ZONG Mao,LIU Xiangying.Research of software defect prediction model based on ACO-SVM [J].Chinese Journal of Computers,2011,34 (6):1148-1154 (in Chinese). [姜慧研,宗茂,劉相瑩.基于ACO-SVM 的軟件缺陷預(yù) 測(cè) 模 型 的 研 究 [J].計(jì) 算 機(jī) 學(xué) 報(bào),2011,34 (6):1148-1154.]
[5]LU H,Cukic B,Culp M.Software defect prediction using semi-supervised learning with dimension reduction [C]//Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering,2012:314-317.
[6]Tsai FS.Comparative study of dimensionality reduction techniques for data visualization [J].Journal of Artificial Intelligence,2010,3:119-134.
[7]LIU Jinling.Chinese short messages text clustering algorithm based on ISOMAP [J].Computer Engineering and Application,2009,45 (34):144-146. [劉金嶺.基于ISOMAP 的中文短信文本聚類算法 [J].計(jì)算機(jī)工程與應(yīng)用,2009,45(34):144-146.]
[8]QIAN Jin,DENG Kazhong,F(xiàn)AN Hongdong.Dimensionality reduction and classification for hyperspectral remote sensing imagery based on Laplacian Eigenmap [J].Remote Sensing Information,2012,27 (5):3-7 (in Chinese). [錢(qián)進(jìn),鄧喀中,范洪冬.基于拉普拉斯特征映射高光譜遙感影像降維及其分類 [J].遙感信息,2012,27 (5):3-7.]
[9]WU Qiang,WANG Xinsai,WANG Weiping,et al.Infrared imaging colorizing method based on local linear embedding [J].Journal of Applied Optics,2012,33 (4):733-737 (in Chinese).[吳強(qiáng),王新賽,王衛(wèi)平,等.基于LLE的紅外成像彩色 化 處 理 算 法 研 究 [J]. 應(yīng) 用 光 學(xué),2012,33 (4):733-737.]
[10]XIANG Tingting,LUO Yunlun,WANG Xuesong.Application of manifold learning and nonlinear dimensionality reduction in private preserving [J].Computer Engineering and Applications,2011,47 (8):79-83 (in Chinese). [向婷婷,羅運(yùn)綸,王學(xué)松.流形學(xué)習(xí)及維數(shù)約簡(jiǎn)在數(shù)據(jù)隱私保護(hù)中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2011,47 (8):79-83.]
[11]CUI Y,ZHENG C,YANG J.Dimensionality reduction for microarray data using local mean based discriminant analysis[J].Biotechnology Letters,2013,35 (3):331-336.
[12]YI Tong.Software measurement study in object-oriented design:State of art [J].Application Research of Computers,2011,28 (2):427-434 (in Chinese).[易彤.面向?qū)ο笤O(shè)計(jì)中軟件度量學(xué):回顧與熱點(diǎn) [J].計(jì)算機(jī)應(yīng)用研究,2011,28 (2):427-434.]
[13]ZHANG Yan,LIN Ying,WANG Hongsong.Study on object-oriented software metrics[J].Computer and Digital Engineering,2009,37 (3):117-119 (in Chinese).[張雁,林穎,王紅崧.面向?qū)ο筌浖攘康难芯?[J].計(jì)算機(jī)與數(shù)字工程,2009,37 (3):117-119.]
[14]TAO Min,TAO Shi.Research on software metrics method for object oriented C++based [J].Software Industry and Engineering,2010,4:40-44 (in Chinese). [陶敏,陶石.基于C++語(yǔ)言的面向?qū)ο蟮能浖攘糠椒ㄑ芯?[J].軟件產(chǎn)業(yè)與工程,2010,4:40-44.]
[15]Boetticher G,Menzies T,Ostrand T.Promise repository of empirical software engineering data [DB/OL]. [2007-01-01/2013-03-17].http://promisedata.org/repository.
[16]Zimmermann T,Premraj R,Zeller A.Predicting defects for eclipse[C]//In Proceedings of the 3rd International Workshop on Predictor Models in Software Engineering,2007.