亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        黃亞蒙 馬璐璐

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

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

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

        0 引言

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

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

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

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

        2 貢獻者行為特征選擇

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

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

        2.2 基于K均值聚類算法的貢獻者選擇

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

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

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

        Ci表示第i個簇,p表示Ci中的樣本點,mi表示Ci質(zhì)心中所有樣本均值,SSE表示所有樣本聚類誤差,其代表聚類效果的好壞,通過Python得到k和SSE關(guān)系;輪廓系數(shù)法主要是確定聚類結(jié)果的內(nèi)聚度和分離度,其結(jié)果是對聚類效果好壞評價。采用輪廓系數(shù)法與肘部方法相結(jié)合的方式確定k值,輪廓系數(shù)的核心指標(biāo)是S,樣本點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進行聚類求輪廓系數(shù),得出k=12時,SSE及輪廓系數(shù)值相匹配,聚類結(jié)果相對較好;故采用Matlab對成員數(shù)據(jù)集進行K均值聚類,Best total sum of distances表示聚類結(jié)果的好壞,經(jīng)由10次聚類結(jié)果評估,如表1所示。

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

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

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

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

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

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

        3 軟件缺陷預(yù)測

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

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

        缺陷數(shù)據(jù)集獲取,實操中存在兩種缺陷網(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)計,運用SPSS工具對缺陷數(shù)據(jù)集及日志數(shù)據(jù)集進行數(shù)據(jù)關(guān)聯(lián)性分析,不具有關(guān)聯(lián)性。平均值插補法不會對樣本造成極大的干擾,其通用與各個領(lǐng)域,具有極大的普適性,故采用平均值法進行缺失值的插補得出最終bug數(shù)據(jù)表,得出各組貢獻值的bug表,進行整理匯總,得到貢獻者特征缺陷數(shù)據(jù)集表,如表2所示。

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

        采用K折交叉驗證法作為隨機森林模型檢驗分析技術(shù),其將原始樣本打亂并重復(fù)利用,充分地利用有限的樣本資源減少預(yù)測偏差,并考慮訓(xùn)練樣本和泛化誤差。其具體的步驟如下:首先將原始數(shù)據(jù)隨機分為k組,然后將子集分別做一次測試集,余下的k-1組子集作為訓(xùn)練集用來訓(xùn)練模型,共得到k個模型,最后用平均值作為模型預(yù)測精度的最終估計值。求得其均方根誤差(RMSE)、平均絕對誤差(MAE)及因變量實際與預(yù)測值的相關(guān)系數(shù)(R)作為模型模擬結(jié)果與實際值的吻合程度的衡量指標(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ù)集,采用隨機森林回歸算法進行對軟件的缺陷的預(yù)測如圖1所示。

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

        4 結(jié)語

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

        參考文獻

        [1]謝新強,楊曉春,王斌,等.一種多特征融合的軟件開發(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].河北省科學(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

        国产精品自在拍在线拍| 日韩国产自拍视频在线观看| 久久国产精品婷婷激情| 欧美性猛交xxxx三人| 成 人 网 站 免 费 av| 精精国产xxxx视频在线播放器| 日本女u久久精品视频| 亚洲爆乳无码精品aaa片蜜桃| 熟妇人妻无乱码中文字幕| 国产精品18久久久久网站| 综合中文字幕亚洲一区二区三区 | 国产人妻久久精品二区三区| 国产精品每日更新在线观看 | 永久无码在线观看| 天堂av一区二区在线| 亚洲av无码成人精品国产| 青青草原精品99久久精品66| 国产免费人成视频在线播放播| 白白色发布视频在线播放| 亚洲无av在线中文字幕| 免费黄色电影在线观看| av大片在线无码永久免费网址| 91色区在线免费观看国产| 国产喷水1区2区3区咪咪爱av| 国产污污视频| 蜜桃人妻午夜精品一区二区三区 | 精品久久香蕉国产线看观看亚洲| 人妻无码一区二区| 国产精品人成在线765| 色欲色香天天天综合网www| 深夜福利小视频在线观看| 国产精品福利久久香蕉中文| 国产三级不卡视频在线观看| 国产又粗又黄又爽的大片| 人妻无码视频| 国产熟女露脸大叫高潮| 日本动漫瀑乳h动漫啪啪免费 | 亚洲av日韩精品久久久久久a| 亚洲av无码一区二区三区在线| 国产精品日韩中文字幕| 男女男精品视频网站免费看|