999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于貢獻(xiàn)者行為特征的開源軟件缺陷預(yù)測研究

2023-06-15 05:26:44黃亞蒙馬璐璐
無線互聯(lián)科技 2023年2期

黃亞蒙 馬璐璐

摘要:針對開源軟件存在缺陷,改善軟件質(zhì)量等問題,文章提出了基于貢獻(xiàn)者行為特征的開源軟件缺陷預(yù)測研究。首先獲取Apache軟件基金會中的開源軟件項目,運(yùn)用Git和SVN版本控制系統(tǒng)對開發(fā)人員日志信息提取;然后采用K均值聚類算法模型挖掘開發(fā)人員團(tuán)隊(貢獻(xiàn)者),采用詞頻統(tǒng)計和主成分分析算法模型得到貢獻(xiàn)者行為特征;最后利用隨機(jī)森林算法實(shí)現(xiàn)對貢獻(xiàn)者特征行為的軟件缺陷預(yù)測,該實(shí)驗(yàn)結(jié)果具有一定的參考意義。

關(guān)鍵詞:開源軟件;行為特征;軟件缺陷預(yù)測

中圖分類號:TP311? 文獻(xiàn)標(biāo)志碼:A

0 引言

隨著軟件開發(fā)不斷發(fā)展,開源軟件開發(fā)正在走進(jìn)大眾的視野中,雖給人們的生活帶來大量便利,但也出現(xiàn)一些問題,部分軟件產(chǎn)品在進(jìn)行操作時無法正常運(yùn)行以及存在大量的軟件半成品等,給人們帶來巨大的經(jīng)濟(jì)損失,甚至威脅人類生命安全,故關(guān)于軟件質(zhì)量的研究已經(jīng)刻不容緩。

本文通過對開源軟件中版本控制系統(tǒng)和缺陷跟蹤系統(tǒng)中的開發(fā)者行為日志信息挖掘與處理研究,對開源項目貢獻(xiàn)者(即開發(fā)者團(tuán)隊)的行為特征進(jìn)行分析,發(fā)現(xiàn)了研究貢獻(xiàn)者特征行為對項目缺陷造成的影響。主要強(qiáng)調(diào)開發(fā)人員在開源項目的核心作用力,通過對貢獻(xiàn)者的行為日志分析,確定出貢獻(xiàn)者行為特征,建立一種基于貢獻(xiàn)者特征行為的軟件缺陷預(yù)測模型,確定貢獻(xiàn)者行為特征對開源軟件缺陷率的影響,貢獻(xiàn)者在軟件開發(fā)過程中規(guī)避此類缺陷[1]。

1 數(shù)據(jù)獲取

本文采用Apache軟件基金會中的開源軟件項目作為研究對象。Apache軟件基金會的開源項目具有一定公信度,其下的版本控制系統(tǒng)及缺陷跟蹤系統(tǒng)的數(shù)據(jù)較為完整,具有支持多平臺安裝和使用、安全性高、易于擴(kuò)展、性能穩(wěn)定等特點(diǎn)。其項目信息存儲在Git repository和Subversion repository資源網(wǎng)站,故采用不同方式獲取項目信息。首先對項目克隆及檢出得到230個項目集;之后采用Git,SVN,MySQL等工具將日志信息導(dǎo)出到CSV文件中。

2 貢獻(xiàn)者行為特征選擇

2.1 數(shù)據(jù)處理

數(shù)據(jù)處理主要目的是得到成員下的項目,然后采用K均值聚類實(shí)現(xiàn)貢獻(xiàn)者的選擇。其過程如下:運(yùn)用Git命令對Git項目貢獻(xiàn)統(tǒng)計;利用數(shù)據(jù)透視法實(shí)現(xiàn)對SVN項目貢獻(xiàn)統(tǒng)計;實(shí)現(xiàn)對所有項目貢獻(xiàn)統(tǒng)計;結(jié)合數(shù)據(jù)透視法得到成員下的項目,得到615組成員數(shù)據(jù)集,172個維度屬性。

2.2 基于K均值聚類算法的貢獻(xiàn)者選擇

K均值聚類算法具有算法簡單、時間復(fù)雜度較低、收斂速度快、能有效地處理大規(guī)模的數(shù)據(jù)集等優(yōu)點(diǎn),故采取K均值聚類算法實(shí)現(xiàn)貢獻(xiàn)者選擇[2]。首先對簇數(shù)k選擇,然后通過歐式距離計算數(shù)據(jù)對象之間的相似性,使得實(shí)現(xiàn)類內(nèi)數(shù)據(jù)對象相似度最大,類間相似度最小。K均值聚類算法將成員數(shù)據(jù)集依據(jù)數(shù)據(jù)集間的相似性(共同參與到相同項目的項目成員)聚集到指定的類簇中,且每個數(shù)據(jù)集屬于并僅屬于一個類簇中,具體操作如下:選取肘部方法和輪廓系數(shù)法實(shí)現(xiàn)對簇數(shù)的選擇;采用K均值聚類算法實(shí)現(xiàn)貢獻(xiàn)者的選擇。

手肘法的核心指標(biāo)是SSE(誤差平方和)公式如(1)所示:

SSE=∑ki=1∑p∈Ci|p-mi|2(1)

Ci表示第i個簇,p表示Ci中的樣本點(diǎn),mi表示Ci質(zhì)心中所有樣本均值,SSE表示所有樣本聚類誤差,其代表聚類效果的好壞,通過Python得到k和SSE關(guān)系;輪廓系數(shù)法主要是確定聚類結(jié)果的內(nèi)聚度和分離度,其結(jié)果是對聚類效果好壞評價。采用輪廓系數(shù)法與肘部方法相結(jié)合的方式確定k值,輪廓系數(shù)的核心指標(biāo)是S,樣本點(diǎn)Xi,其計算公式如(2)所示:

S=b-amax(a,b)(2)

a表示Xi與同簇的其他樣本的平均距離,稱為凝聚度,b表示Xi與最近簇中所有樣本的平均距離,稱為分離度,其計算公式如(3)所示:

Cj=argmin1n∑p∈Ck|p-Xi|2(3)

p表示某個簇Ck中的樣本,平均輪廓系數(shù)的取值范圍為[-1,1],且簇內(nèi)樣本的距離越近,簇間樣本距離越遠(yuǎn),平均輪廓系數(shù)越大,聚類效果越好。采用Python將k進(jìn)行聚類求輪廓系數(shù),得出k=12時,SSE及輪廓系數(shù)值相匹配,聚類結(jié)果相對較好;故采用Matlab對成員數(shù)據(jù)集進(jìn)行K均值聚類,Best total sum of distances表示聚類結(jié)果的好壞,經(jīng)由10次聚類結(jié)果評估,如表1所示。

最佳距離總和=544.77時效果最好,并運(yùn)行得出貢獻(xiàn)者即項目成員團(tuán)隊的分類結(jié)果,得到12組貢獻(xiàn)者。

2.3 基于詞頻統(tǒng)計的貢獻(xiàn)者行為特征選擇

詞頻統(tǒng)計的主要操作步驟主要分為4步,即分詞、詞干提取、去停用詞和計算詞頻[3]。分詞是將文件中的信息按照一定的規(guī)則進(jìn)行分散;詞干提取是將同一單詞在不同的語句狀態(tài)下呈現(xiàn)不同的狀態(tài)進(jìn)行提取;去停用詞是英文狀態(tài)下經(jīng)常出現(xiàn),其沒有特殊指代含義,采用Python自然語言中自帶的NLTK工具包中停用詞語料庫,實(shí)現(xiàn)對高頻詞的停用;計算詞頻是遍歷每個單詞出現(xiàn)在文本中的次數(shù);首先將12組文本信息通過詞頻統(tǒng)計得到12組結(jié)果,對提取出的行為特征頻數(shù)排序,提取其特征數(shù)出現(xiàn)超過1萬次的詞匯作為行為特征初始樣本;然后將12組貢獻(xiàn)者的特征信息與提取的行為特征初始樣本比對,保留12組貢獻(xiàn)者都存在的特征集。

2.4 基于主成分分析的特征降維

主成分分析算法從多元特征中解析出主要特征,其反映原始變量絕大部分信息,并且彼此之間不相關(guān),實(shí)現(xiàn)數(shù)據(jù)集之間的降維效果,最終實(shí)現(xiàn)對貢獻(xiàn)者行為特征的選擇[4]。

采用Matlab工具將12組度量元的統(tǒng)計數(shù)據(jù)進(jìn)行主成分分析算法的降維,處理過程如下:(1)數(shù)據(jù)的標(biāo)準(zhǔn)化處理;(2)計算樣本相關(guān)系數(shù)矩陣;(3)計算相關(guān)系數(shù)矩陣特征值及特征向量;(4)計算特征值的貢獻(xiàn)率和累計貢獻(xiàn)率;(5)選擇主成分;(6)計算主成分得分。得到行為特征重要性排序,將降序中為0以上的數(shù)據(jù)集保留,其行為特征對與軟件開發(fā)的影響性較大,選取此類行為特征進(jìn)行軟件缺陷預(yù)測分析。

3 軟件缺陷預(yù)測

隨機(jī)森林算法具有很高的預(yù)測準(zhǔn)確率,對噪聲和異常值具有很好的容忍度,易于實(shí)現(xiàn),且計算開銷小,不容易出現(xiàn)過擬合現(xiàn)象等[5],故本文采取隨機(jī)森林算法實(shí)現(xiàn)對軟件缺陷預(yù)測。

3.1 數(shù)據(jù)處理

缺陷數(shù)據(jù)集獲取,實(shí)操中存在兩種缺陷網(wǎng)址數(shù)據(jù)集,https://issues.apache.org/jira/browse下可直接獲取缺陷數(shù)據(jù)集總量;https://github.com/apache下的缺陷數(shù)據(jù)集分布在issue中的open和closed中,匯總得到缺陷量,存在bug缺失項。將172個項目日志數(shù)統(tǒng)計,運(yùn)用SPSS工具對缺陷數(shù)據(jù)集及日志數(shù)據(jù)集進(jìn)行數(shù)據(jù)關(guān)聯(lián)性分析,不具有關(guān)聯(lián)性。平均值插補(bǔ)法不會對樣本造成極大的干擾,其通用與各個領(lǐng)域,具有極大的普適性,故采用平均值法進(jìn)行缺失值的插補(bǔ)得出最終bug數(shù)據(jù)表,得出各組貢獻(xiàn)值的bug表,進(jìn)行整理匯總,得到貢獻(xiàn)者特征缺陷數(shù)據(jù)集表,如表2所示。

3.2 基于隨機(jī)森林算法的特征行為缺陷預(yù)測

采用K折交叉驗(yàn)證法作為隨機(jī)森林模型檢驗(yàn)分析技術(shù),其將原始樣本打亂并重復(fù)利用,充分地利用有限的樣本資源減少預(yù)測偏差,并考慮訓(xùn)練樣本和泛化誤差。其具體的步驟如下:首先將原始數(shù)據(jù)隨機(jī)分為k組,然后將子集分別做一次測試集,余下的k-1組子集作為訓(xùn)練集用來訓(xùn)練模型,共得到k個模型,最后用平均值作為模型預(yù)測精度的最終估計值。求得其均方根誤差(RMSE)、平均絕對誤差(MAE)及因變量實(shí)際與預(yù)測值的相關(guān)系數(shù)(R)作為模型模擬結(jié)果與實(shí)際值的吻合程度的衡量指標(biāo),當(dāng)RMSE與MAE的值越小,R的值越接近1,表明模型的預(yù)測效果越好,其指標(biāo)的定義如(4)(5)(6)所示:

RMSE=∑ni=1( yi-yi)2n(4)

MAE=1n∑ni=1 yi-yi(5)

R=±∑ni=1(y^-y-)2∑ni=1(yi-y-)2(6)

yi,yi表示第i個樣本的預(yù)測值,y-表示樣本觀測值的平均值,n表示對應(yīng)的樣本容量。利用特征缺陷率的數(shù)據(jù)集,采用隨機(jī)森林回歸算法進(jìn)行對軟件的缺陷的預(yù)測如圖1所示。

當(dāng)特征集為10,17,38,41,43,45,46時,即code,file,remove,support,test,update,use時,其判斷為缺陷集的可能性較大,故貢獻(xiàn)者在進(jìn)行軟件開發(fā)時,可以? 通過規(guī)避及防范此類特征下的操作,增加開源軟件項目的可信度,提高軟件產(chǎn)品的質(zhì)量。

4 結(jié)語

本文提出了基于貢獻(xiàn)者行為特征的軟件預(yù)測研究。首先在Apache軟件基金會中運(yùn)用Git和SVN版本控制系統(tǒng)完成對開源項目獲取,使用MySQL等工具實(shí)現(xiàn)對開源項目日志信息獲取,對日志中成員進(jìn)行貢獻(xiàn)統(tǒng)計分析,采用K均值聚類算法完成對貢獻(xiàn)者選擇,得到12組貢獻(xiàn)者分組;然后利用詞頻統(tǒng)計方式完成對貢獻(xiàn)者行為特征選擇,并采用主成分分析完成對特征降維,共提取49項特征;之后采用缺陷跟蹤系統(tǒng)對項目的bug集統(tǒng)計;最后使用隨機(jī)森林算法完成貢獻(xiàn)者特征行為的軟件缺陷預(yù)測研究,得出貢獻(xiàn)者在進(jìn)行項目開發(fā)時在遇到code,file,remove,support,test,update,use等行為特征時開源軟件出現(xiàn)缺陷的概率較高,貢獻(xiàn)者在進(jìn)行軟件項目的開發(fā)過程中遇到此類編寫程序代碼時,應(yīng)保持警惕,減少軟件缺陷。

參考文獻(xiàn)

[1]謝新強(qiáng),楊曉春,王斌,等.一種多特征融合的軟件開發(fā)者推薦[J].軟件學(xué)報,2018(8):2306-2321.

[2]劉望舒,陳翔,顧慶,等.軟件缺陷預(yù)測中基于聚類分析的特征選擇方法[J].中國科學(xué):信息科學(xué),2016(9):1298-1320.

[3]李杰,孫仁誠.基于詞頻統(tǒng)計算法的中英文詞頻分布研究[J].青島大學(xué)學(xué)報(工程技術(shù)版),2020(1):1-5.

[4]張曉風(fēng).基于主成分分析的軟件缺陷預(yù)測研究[D].南京:南京航空航天大學(xué),2017.

[5]呂紅燕,馮倩.隨機(jī)森林算法研究綜述[J].河北省科學(xué)院學(xué)報,2019(3):37-41.

(編輯 傅金睿)

Research on open source software defect prediction based on characteristic behavior of contributors

Huang? Yameng1, Ma? Lulu2*

(1.Huanghe Jiaotong University, Jiaozuo 454950, China; 2.Zhengzhou Technical College, Zhengzhou 450100, China)

Abstract: Aiming at the problems of open source software defects and improving software quality,this paper puts forward a research on open source software defect prediction based on the behavior characteristics of contributors.First,obtain the open source software project in the Apache Software Foundation,and use GIT and SVN version control system to extract the developers log information;Then,the K-means clustering algorithm model is used to mine the developer team (contributors), and the word frequency statistics and principal component analysis algorithm model are used to obtain the behavior characteristics of contributors;Finally,the random forest algorithm is used to predict the software defects of contributors characteristic behavior.The experimental results have certain reference significance.

Key words: open source software; behavioral characteristics; software defect prediction

主站蜘蛛池模板: 一级毛片免费播放视频| www.日韩三级| 亚洲国产综合自在线另类| a级毛片在线免费| 亚洲,国产,日韩,综合一区| 亚洲无码精彩视频在线观看| 免费国产不卡午夜福在线观看| 亚洲一区二区三区香蕉| 国产第二十一页| 国产新AV天堂| 欧美黄网在线| 国产午夜不卡| YW尤物AV无码国产在线观看| 熟妇人妻无乱码中文字幕真矢织江| 欧美日韩北条麻妃一区二区| www.91在线播放| www.亚洲天堂| 无码一区中文字幕| 欧美精品1区| 国产9191精品免费观看| 国产精品免费久久久久影院无码| a毛片免费观看| 久久亚洲天堂| jizz国产在线| 色婷婷亚洲十月十月色天| 亚洲天堂色色人体| 在线无码九区| 久久永久视频| 亚洲日韩精品伊甸| 性激烈欧美三级在线播放| 亚洲成a∧人片在线观看无码| 久久99久久无码毛片一区二区| 欧美一区二区人人喊爽| av免费在线观看美女叉开腿| lhav亚洲精品| 欧美日本激情| 婷婷99视频精品全部在线观看 | 婷婷五月在线视频| 国产精品久久久久久影院| 欧美日韩激情在线| 亚洲无码熟妇人妻AV在线| 欧美人人干| 色婷婷狠狠干| 亚洲日韩第九十九页| 日韩高清成人| 午夜欧美理论2019理论| 高清无码手机在线观看| 亚洲va在线∨a天堂va欧美va| 国产精品无码影视久久久久久久| 国产色婷婷| 97青青青国产在线播放| 97国产在线视频| 白浆视频在线观看| 亚洲高清免费在线观看| 三级视频中文字幕| 美女视频黄频a免费高清不卡| 91精品亚洲| 国产H片无码不卡在线视频| 全午夜免费一级毛片| 欧美97色| 无码精品国产dvd在线观看9久| 国产日韩久久久久无码精品| 国产精品毛片一区视频播| 亚洲不卡影院| 在线99视频| 欧美中文字幕在线视频| 福利在线一区| 久青草免费在线视频| 中国丰满人妻无码束缚啪啪| 亚洲免费三区| 中国国产一级毛片| 色偷偷综合网| 韩日免费小视频| 精品伊人久久久久7777人| 97无码免费人妻超级碰碰碰| 国产国模一区二区三区四区| 欧美亚洲另类在线观看| 国产高清无码第一十页在线观看| 国产精品毛片一区| 国产高清在线精品一区二区三区| 亚洲一区二区精品无码久久久| 亚洲第一黄色网址|