• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    LightGBM融合CFS的開(kāi)發(fā)者感知代碼異味強(qiáng)度預(yù)測(cè)模型研究

    2022-12-06 11:06:04高建華
    關(guān)鍵詞:異味開(kāi)發(fā)者度量

    宇 通,高建華

    (上海師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,上海 200234)

    1 引 言

    代碼異味是程序源代碼中任何可能表明問(wèn)題更深層次的特征,通常由不合理的代碼設(shè)計(jì)和不恰當(dāng)?shù)拈_(kāi)發(fā)操作引起,即如果軟件系統(tǒng)包含代碼異味,則通常表明代碼質(zhì)量存在問(wèn)題.傳統(tǒng)的代碼異味識(shí)別方法帶有極大的主觀性,并且因開(kāi)發(fā)者、開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)方法的不同而異.

    相關(guān)研究人員將常見(jiàn)的代碼異味按照其不同特點(diǎn)進(jìn)行了分類.Fowler等人[1]定義了22種發(fā)現(xiàn)的代碼異味,針對(duì)如何檢測(cè)代碼異味,Moha等人[2]提出DéCOR的檢測(cè)方法以及DETEX一種實(shí)例化該方法的檢測(cè)技術(shù),但該方法不能檢測(cè)代碼異味的強(qiáng)度.

    代碼異味作為軟件技術(shù)債務(wù)[3]的直接體現(xiàn),會(huì)隨時(shí)間推移而在軟件系統(tǒng)中堆積[4],因?yàn)檐浖陂_(kāi)發(fā)與使用階段經(jīng)常會(huì)因需求變更而進(jìn)行擴(kuò)展[5],增加新需求或修改原有需求.在此過(guò)程中由于開(kāi)發(fā)時(shí)間或其他條件限制或通常會(huì)使源代碼復(fù)雜度提高[6],從而降低了軟件質(zhì)量與可維護(hù)性.代碼異味問(wèn)題應(yīng)盡快得到解決,正如Macia[7]在實(shí)證分析中得出的結(jié)論,如果開(kāi)發(fā)早期階段在代碼中引入了異味,如不盡快消除便可能在代碼和體系結(jié)構(gòu)級(jí)別上導(dǎo)致更為嚴(yán)重的問(wèn)題.

    為了解決異味問(wèn)題引入了重構(gòu)[1],重構(gòu)是在不改變軟件外部行為的條件下,改善代碼內(nèi)部結(jié)構(gòu)的技術(shù).進(jìn)行代碼重構(gòu)是提升軟件質(zhì)量的常用做法.

    Zhang等人[8]對(duì)代碼異味與重構(gòu)相關(guān)的研究現(xiàn)狀做了系統(tǒng)的闡述,他們發(fā)現(xiàn)現(xiàn)有的大多數(shù)研究集中于開(kāi)發(fā)自動(dòng)檢測(cè)代碼異味的工具或方法,而少有關(guān)于代碼異味的實(shí)證性研究.

    Basili等人[9]提出使用面向?qū)ο蟮囊幌盗卸攘恐笜?biāo)(CK)來(lái)預(yù)測(cè)軟件項(xiàng)目是否存在缺陷,但并未對(duì)軟件中存在的代碼異味進(jìn)行預(yù)測(cè).

    選擇重構(gòu)代碼的順序至關(guān)重要,Yamashita等人[10]發(fā)現(xiàn)并非所有代碼異味的危害程度都相同.有些異味程度較輕而不會(huì)對(duì)軟件質(zhì)量造成缺陷,因此應(yīng)優(yōu)先重構(gòu)異味較嚴(yán)重即異味強(qiáng)度大的代碼.選擇合適的方法對(duì)代碼異味強(qiáng)度進(jìn)行預(yù)測(cè)有利于對(duì)代碼異味的處理進(jìn)行優(yōu)先級(jí)排序,可使異味強(qiáng)度大的代碼得到優(yōu)先處理,以節(jié)省人力物力成本.

    在重構(gòu)的先后順序上,Zhang等人[11]提出重構(gòu)優(yōu)先級(jí)概念,即根據(jù)不同代碼異味的嚴(yán)重性確定重構(gòu)的先后次序,但只定性分析了軟件缺陷與代碼異味的關(guān)系,沒(méi)有進(jìn)行深入研究.

    Ouni等人[12]利用軟件開(kāi)發(fā)歷史信息,運(yùn)用多目標(biāo)優(yōu)化的方法確定重構(gòu)操作的最佳順序以減少系統(tǒng)中的異味數(shù)量,提高了重構(gòu)效率.Vidal等人[13]開(kāi)發(fā)了SPIRIT工具,根據(jù)代碼異味類型、過(guò)去做出的修改、系統(tǒng)修改可能性的評(píng)估,3個(gè)重要度量標(biāo)準(zhǔn)對(duì)代碼異味進(jìn)行排序.但此類方法均未綜合考慮代碼的各項(xiàng)度量指標(biāo).

    在異味嚴(yán)重性檢測(cè)方法上,F(xiàn)ontana等人[14]提出使用機(jī)器學(xué)習(xí)技術(shù)對(duì)代碼異味嚴(yán)重性進(jìn)行檢測(cè),運(yùn)用了機(jī)器學(xué)習(xí)分類與回歸模型,使用軟件多種度量指標(biāo)作為模型輸入進(jìn)行預(yù)測(cè).

    Pecorelli等人[15]在進(jìn)行代碼異味處理優(yōu)先級(jí)排序時(shí)比較了RF、LR(邏輯回歸)、樸素貝葉斯等機(jī)器學(xué)習(xí)算法,并驗(yàn)證了RF具有最佳效果,但未經(jīng)特征篩選過(guò)程且模型精度與運(yùn)行效率都有待提高.

    在特征選擇方面,通常原始數(shù)據(jù)集中存在著冗余和不相關(guān)特征,不經(jīng)過(guò)處理可能會(huì)導(dǎo)致過(guò)擬合,引發(fā)“維度災(zāi)難”[16],Hall[17]提出使用相關(guān)性分析研究機(jī)器學(xué)習(xí)中的特征選擇問(wèn)題,以提高機(jī)器學(xué)習(xí)模型性能,取得了良好的效果.

    Ke等人[18]提出了LightGBM,一種實(shí)現(xiàn)GBDT(梯度提升決策樹(shù))算法的框架,在保證高精度的同時(shí)具有更快的訓(xùn)練速度,也實(shí)現(xiàn)了更低的內(nèi)存消耗.LightGBM已被運(yùn)用在金融領(lǐng)域如加密貨幣價(jià)格趨勢(shì)預(yù)測(cè)[19]以及醫(yī)學(xué)領(lǐng)域如針對(duì)乳腺癌患者的miRNA分類[20],均取得了良好的效果,但目前還沒(méi)有使用LightGBM進(jìn)行代碼異味強(qiáng)度預(yù)測(cè)的相關(guān)研究.

    對(duì)此,本文提出了一種基于LightGBM融合CFS的開(kāi)發(fā)者感知代碼異味強(qiáng)度預(yù)測(cè)模型,該模型綜合考慮代碼產(chǎn)品與過(guò)程度量指標(biāo),使用經(jīng)相關(guān)性分析篩選后的高相關(guān)特征,運(yùn)用LightGBM算法對(duì)數(shù)據(jù)集中所考慮的4種代碼異味實(shí)例進(jìn)行異味強(qiáng)度預(yù)測(cè).

    本文的主要貢獻(xiàn)有如下3個(gè)方面:

    1)在統(tǒng)計(jì)層面分析了選取的代碼度量指標(biāo)與異味強(qiáng)度的相關(guān)關(guān)系,并選用軟件代碼的多個(gè)不同層面的度量指標(biāo),綜合構(gòu)建代碼異味強(qiáng)度預(yù)測(cè)模型.

    2)提出了一種基于LightGBM融合CFS的代碼異味強(qiáng)度預(yù)測(cè)模型,結(jié)合相關(guān)性分析進(jìn)行特征選擇,并對(duì)LightGBM模型參數(shù)進(jìn)行調(diào)整,根據(jù)模型評(píng)價(jià)指標(biāo)對(duì)模型進(jìn)行優(yōu)化.

    3)基于開(kāi)發(fā)者感知的代碼異味數(shù)據(jù)集,分別對(duì)軟件項(xiàng)目中4種不同類型代碼異味進(jìn)行研究并將本文提出的基于LightGBM融合CFS模型與RF模型進(jìn)行多方面對(duì)比,驗(yàn)證了本文提出的模型相比RF模型在預(yù)測(cè)精度以及效率等各方面性能上均有較大提升.

    2 相關(guān)術(shù)語(yǔ)

    2.1 代碼異味

    代碼異味也稱設(shè)計(jì)缺陷或設(shè)計(jì)異常,是代碼在次優(yōu)設(shè)計(jì)下的產(chǎn)物,其存在嚴(yán)重影響了軟件系統(tǒng)的可靠性與可維護(hù)性,同一段代碼可能會(huì)受多種代碼異味影響.代碼重構(gòu)可以解決異味問(wèn)題.本文聚焦以下4種代碼異味,如表1所示.

    表1 代碼異味及其特征

    選擇以上4種類級(jí)別的代碼異味進(jìn)行研究,原因?yàn)椋?/p>

    Blob Class是內(nèi)聚性較差的類所存在的代碼異味,對(duì)代碼質(zhì)量造成了嚴(yán)重影響,且根據(jù)最近的研究,此種氣味對(duì)軟件項(xiàng)目及開(kāi)發(fā)人員來(lái)說(shuō)最為關(guān)鍵.

    Complex Class表明類結(jié)構(gòu)過(guò)于復(fù)雜,由此導(dǎo)致對(duì)這些類的測(cè)試工作較為困難,開(kāi)發(fā)者通常能識(shí)別此種異味并對(duì)其嚴(yán)重性進(jìn)行評(píng)估.

    Spaghetti Code在過(guò)去研究中被深入調(diào)查,此種異味導(dǎo)致開(kāi)發(fā)人員對(duì)源代碼理解能力的下降,從而增加了代碼維護(hù)工作量,開(kāi)發(fā)人員也能對(duì)其關(guān)鍵性進(jìn)行準(zhǔn)確評(píng)估.

    Shotgun Surgery是對(duì)某類進(jìn)行修改時(shí)需要一并修改其他類,開(kāi)發(fā)人員可根據(jù)觸發(fā)其他類修改的數(shù)量來(lái)評(píng)估此種代碼異味的強(qiáng)度.

    以上4種代碼異味已被證明在研究軟件項(xiàng)目中大范圍分布,其存在會(huì)對(duì)軟件系統(tǒng)的可維護(hù)性、可理解性、可測(cè)試性造成嚴(yán)重的負(fù)面影響,且由于異味檢測(cè)工具的限制,需在針對(duì)Java語(yǔ)言編寫的程序中進(jìn)行異味研究.綜上所述,本文聚焦以上4種類級(jí)別的代碼異味,對(duì)這4種代碼異味進(jìn)行分析研究也有助于更好地解決軟件開(kāi)發(fā)中的潛在問(wèn)題.

    2.2 代碼異味強(qiáng)度

    根據(jù)異味嚴(yán)重性數(shù)值劃分不同等級(jí)得到代碼異味強(qiáng)度,其可用于衡量異味的嚴(yán)重程度.準(zhǔn)確地對(duì)代碼異味強(qiáng)度進(jìn)行預(yù)測(cè)可使高危險(xiǎn)性的代碼問(wèn)題得到優(yōu)先處理,從而在極大程度上減少軟件項(xiàng)目的維護(hù)開(kāi)銷.本文考慮基于開(kāi)發(fā)者感知的代碼異味嚴(yán)重性Criticality,該指標(biāo)是開(kāi)發(fā)者對(duì)代碼異味嚴(yán)重程度的直接評(píng)價(jià),并按程度不同分為1~5,1為最輕微,5為最嚴(yán)重.代碼異味強(qiáng)度相應(yīng)地分為3個(gè)不同等級(jí):NON-SEVERE(輕微)、MEDIUM(中度)、SEVERE(嚴(yán)重),以表征代碼異味的嚴(yán)重程度,如表2所示.

    表2 代碼異味強(qiáng)度等級(jí)劃分

    輕微等級(jí)代表代碼中存在較弱的代碼異味強(qiáng)度,危害較弱且不易被察覺(jué).中度等級(jí)代表代碼中已有較明顯的異味,通??杀婚_(kāi)發(fā)者直接感知.嚴(yán)重等級(jí)代表代碼中已存在危害性較高的代碼異味,需要開(kāi)發(fā)者盡快處理,防止后續(xù)發(fā)展為更嚴(yán)重的代碼問(wèn)題.

    2.3 LightGBM算法

    LightGBM,全稱為L(zhǎng)ight Gradient Boosting Machine,該算法基于梯度增強(qiáng)的機(jī)器學(xué)習(xí)框架,利用了決策樹(shù)算法.LightGBM與其他樹(shù)類算法不同,不逐行增長(zhǎng)樹(shù),而按葉增長(zhǎng)樹(shù),其選擇它認(rèn)為將產(chǎn)生最大損失減少的葉子.LightGBM與XGBoost或其他模型所使用基于排序的決策樹(shù)算法不同,LightGBM實(shí)現(xiàn)了一種高度優(yōu)化的基于直方圖的決策樹(shù)學(xué)習(xí)算法,這種算法與傳統(tǒng)算法相比在效率與內(nèi)存消耗方面具有巨大優(yōu)勢(shì),LightGBM算法采用兩種新技術(shù)GOSS(基于梯度的單邊采樣)與EFB(互斥特征捆綁),使得算法運(yùn)行速度更快且能保持極高的準(zhǔn)確度[18].LightGBM具有許多XGBoost的優(yōu)點(diǎn),包括稀疏優(yōu)化、并行訓(xùn)練等方面.

    LightGBM的基于梯度的單邊采樣方法如算法1所示.

    算法1.GOSS(基于梯度的單邊采樣)

    輸入:訓(xùn)練數(shù)據(jù)M、迭代次數(shù)I、大梯度數(shù)據(jù)采樣率a、小梯度數(shù)據(jù)采樣率b、損失函數(shù)loss、弱學(xué)習(xí)器L.

    輸出:訓(xùn)練完成的強(qiáng)學(xué)習(xí)器

    2.topN←len(M)*a/*提取大梯度樣本*/;

    3.randN←len(M)*b/*從剩余數(shù)據(jù)隨機(jī)選取b×100%小梯度樣本*/;

    4.fori=1 toIdo /*迭代循環(huán)直到達(dá)到規(guī)定迭代次數(shù)*/;

    5. preds←models.predict(M) /*模型預(yù)測(cè)得到樣本預(yù)測(cè)值preds*/;

    6.k←loss(M,preds),s←{1,1,…} /*由preds計(jì)算loss,再計(jì)算得樣本梯度,樣本初始權(quán)重s均為1*/;

    7. sorted←SortedData(abs(k)) /*由梯度絕對(duì)值降序排序得到樣本索引數(shù)組sorted*/;

    8. topSet←sorted[1:topN] /*在大梯度樣本中選擇topN數(shù)據(jù)得到索引數(shù)組topset*/;

    9. randSet←RandPick(sorted[topN:len(M)],randN) /*從剩余數(shù)據(jù)中隨機(jī)選取b*100%的數(shù)據(jù),生成小梯度樣本randSet*/;

    10. usedSet←topset+randSet /*大梯度樣本與小梯度樣本進(jìn)行合并*/;

    12. newmodel←L(M[usedSet],-k[usedSet],s[used Set]) /*由usedSet中的樣本M、梯度k與權(quán)重s得到新的弱學(xué)習(xí)器*/;

    13. models.append(newModel) /*將新的弱學(xué)習(xí)器加入模型*/;

    LightGBM中的互斥特征捆綁方法(EFB)包括兩項(xiàng)內(nèi)容:特征捆綁和互斥特征合并,如算法2與算法3所示.

    算法2.特征捆綁

    輸入:特征F、最大沖突數(shù)C、圖G;

    輸出:特征捆綁集合bundles;

    1.searchOrder←G.sortByDegree() /*構(gòu)造具有加權(quán)邊的圖G,圖的頂點(diǎn)為特征,將不互斥的特征頂點(diǎn)相連,邊的權(quán)值對(duì)應(yīng)特征同時(shí)不為0的樣本數(shù),按照頂點(diǎn)的度按降序排序特征*/;

    2.bundles←{},bundlesConflict←{}

    3.foriin searchOrder do

    4. needNew←True

    5. forj=1 tolen(bundles) do /*對(duì)有序表中每個(gè)特征,在特征捆綁簇中進(jìn)行遍歷*/;

    6. cnt←ConflictCnt(bundles[j],F(xiàn)[i])

    7. ifcnt+bundlesConflict[i] ≤Cthen /*C為設(shè)置的最大沖突閾值,若該特征加入特征簇中后沖突數(shù)不超過(guò)C,則加入該特征到這個(gè)簇中*/;

    8. bundles[j].add(F[i]),needNew←False /*將特征分配給具有小沖突的現(xiàn)有bundle*/;

    9. break

    10. ifneedNewthen

    11. AddF[i] as a new bundle tobundles/*否則創(chuàng)建新特征簇,并將該特征加入*/;

    算法3.合并互斥特征

    輸入:數(shù)據(jù)數(shù)量numData、一個(gè)互斥特征簇F;

    輸出:newBin、binRanges;

    1.binRanges←{0},totalBin←0 /*LightGBM中直方圖算法對(duì)特征值進(jìn)行了分桶(bin)*/;

    2.forfinFdo /*binRanges為偏移常數(shù)數(shù)組*/;

    3. totalBin += f.numBin

    4. binRanges.append(totalBin)

    5.newBin←new Bin(numData)

    6.fori=1 tonumDatado

    7. newBin[i]←0

    8. forj=1 tolen(F) do

    9. ifF[j].bin[i]≠ 0 then

    10. newBin[i]←F[j].bin[i] + binRanges[j]

    2.4 CFS

    基于相關(guān)性的特征選擇(Correlation-based feature selection,CFS).從源代碼中提取到的代碼度量部分可能與異味強(qiáng)度無(wú)關(guān),即特征與異味強(qiáng)度之間的相關(guān)性較小,直接使用原始數(shù)據(jù)集中高維的數(shù)據(jù)特征通常會(huì)導(dǎo)致算法模型運(yùn)算速度變慢,還可能降低識(shí)別精度.因此提出CFS根據(jù)相關(guān)性分析對(duì)代碼度量指標(biāo)進(jìn)行篩選,計(jì)算各度量指標(biāo)與基于開(kāi)發(fā)者感知的代碼異味嚴(yán)重性數(shù)值間的相關(guān)系數(shù),衡量其之間的相關(guān)關(guān)系.采取過(guò)濾的方法,將相關(guān)性較低的度量指標(biāo)濾去,保留高相關(guān)度量指標(biāo)來(lái)作為后續(xù)代碼異味強(qiáng)度預(yù)測(cè)模型的輸入,如圖1所示.

    圖1 代碼度量指標(biāo)CFS過(guò)程

    3 代碼異味強(qiáng)度預(yù)測(cè)模型

    實(shí)際情況下代碼之中存在的異味問(wèn)題按危害程度有輕重之分,而現(xiàn)有的異味檢測(cè)方法仍存在較大的局限性,或只依靠手動(dòng)設(shè)置代碼的單一結(jié)構(gòu)度量閾值檢測(cè)指標(biāo),如設(shè)置行數(shù)閾值范圍來(lái)檢測(cè)長(zhǎng)方法,但缺點(diǎn)首先是指標(biāo)的選取較為靈活,缺乏開(kāi)發(fā)經(jīng)驗(yàn)的人員往往不能準(zhǔn)確定位某種代碼異味的外在度量指標(biāo),其次是單一某種或簡(jiǎn)單幾種綜合的代碼度量指標(biāo)并不能充分反映代碼質(zhì)量.

    基于此,本文考慮基于LightGBM融合CFS模型進(jìn)行代碼異味強(qiáng)度預(yù)測(cè),先進(jìn)行數(shù)據(jù)篩選過(guò)程,再提取相應(yīng)代碼度量指標(biāo)并通過(guò)CFS進(jìn)行特征選擇,最后運(yùn)用LightGBM進(jìn)行預(yù)測(cè)并對(duì)預(yù)測(cè)效果及模型進(jìn)行評(píng)價(jià),如圖2所示.

    圖2 基于LightGBM融合CFS的代碼異味強(qiáng)度預(yù)測(cè)模型

    3.1 數(shù)據(jù)統(tǒng)計(jì)

    本文考慮所研究的4種類級(jí)別代碼異味,挖掘Apache與Eclipse系統(tǒng)中9個(gè)開(kāi)源項(xiàng)目中存在異味的代碼,使用Décor[2]和HIST[21]進(jìn)行異味檢測(cè),提取分別包含4種異味的代碼.數(shù)據(jù)集中包含的代碼異味數(shù)量情況如表3所示.

    表3 代碼異味數(shù)量統(tǒng)計(jì)

    3.2 代碼度量指標(biāo)

    選取產(chǎn)品度量、過(guò)程度量結(jié)合開(kāi)發(fā)者度量,綜合構(gòu)建代碼異味強(qiáng)度預(yù)測(cè)模型.本文研究所考慮的度量指標(biāo)如表4所示.

    表4 代碼度量指標(biāo)

    3.3 模型預(yù)測(cè)與評(píng)價(jià)

    本文采用基于LightGBM融合CFS模型,運(yùn)用10折交叉驗(yàn)證方式對(duì)數(shù)據(jù)集中代碼的異味強(qiáng)度進(jìn)行預(yù)測(cè),如圖3所示,依次將每折數(shù)據(jù)作為測(cè)試集,其余數(shù)據(jù)作為訓(xùn)練集,合并每折預(yù)測(cè)結(jié)果從而得到全體樣本的代碼異味強(qiáng)度預(yù)測(cè)結(jié)果.共選取6個(gè)評(píng)價(jià)指標(biāo)對(duì)實(shí)驗(yàn)進(jìn)行評(píng)估,其中,基于實(shí)例的評(píng)價(jià)指標(biāo)共5個(gè),包括Precision,Recall,F(xiàn)1,MCC,AUC.基于模型效率的評(píng)價(jià)指標(biāo)1個(gè),分析基于LightGBM融合CFS模型的性能表現(xiàn),并與Pecorelli[15]等人提出的RF模型方法進(jìn)行對(duì)比.

    圖3 10折交叉驗(yàn)證示意圖

    4 實(shí)驗(yàn)研究

    本文設(shè)計(jì)3個(gè)實(shí)驗(yàn),主要尋求解決以下3個(gè)問(wèn)題:

    Q1:代碼相關(guān)度量指標(biāo)是否和基于開(kāi)發(fā)者感知的代碼異味強(qiáng)度間存在相關(guān)關(guān)系?

    Q2:本文所提出的基于LightGBM融合CFS模型與文獻(xiàn)[15]的RF模型相比精度表現(xiàn)如何,是否有了提升?

    Q3:本文所提出的基于LightGBM融合CFS模型是否比文獻(xiàn)[15]的RF模型速度更快,效率更高?

    4.1 實(shí)驗(yàn)環(huán)境和數(shù)據(jù)集

    本文實(shí)驗(yàn)環(huán)境如下:操作系統(tǒng)為Windows 10,處理器為Intel(R) Core i5-6300HQ CPU @ 2.30GHz,內(nèi)存12GB,所用軟件為SPSS和PyCharm,開(kāi)發(fā)語(yǔ)言為Python.

    為了評(píng)估本文模型的性能,實(shí)驗(yàn)使用基于開(kāi)發(fā)者感知的代碼異味數(shù)據(jù)集,該數(shù)據(jù)集由開(kāi)發(fā)者對(duì)代碼氣味實(shí)例進(jìn)行評(píng)價(jià)得出,其中包含了開(kāi)發(fā)者對(duì)感知到的代碼異味嚴(yán)重程度的度量值.

    數(shù)據(jù)集包含9個(gè)開(kāi)源Java項(xiàng)目,它們屬于兩個(gè)軟件生態(tài)系統(tǒng),分別為Apache與Eclipse.數(shù)據(jù)集中項(xiàng)目在代碼量、作用領(lǐng)域等方面各不相同,具有一定的代表性.所選項(xiàng)目的類數(shù)都超過(guò)了500個(gè),變更歷史超過(guò)5年,提交次數(shù)大于1000次,參與開(kāi)發(fā)者數(shù)量都超過(guò)20人,可提供相應(yīng)代碼異味的實(shí)例以供研究.表5總結(jié)了所選項(xiàng)目的基本信息與統(tǒng)計(jì)數(shù)據(jù).

    表5 實(shí)驗(yàn)所涉項(xiàng)目

    4.2 代碼異味檢測(cè)方法

    數(shù)據(jù)集中包含從實(shí)驗(yàn)項(xiàng)目中篩選出的含4種代碼異味的代碼實(shí)例,其中DéCOR[2]用來(lái)檢測(cè)項(xiàng)目存在的Blob Class、Complex Class和Spaghetti Code異味,HIST[21]用來(lái)檢測(cè)Shotgun Surgery異味.這兩種工具已被代碼異味研究學(xué)者廣泛使用,能準(zhǔn)確地識(shí)別出代碼中的代碼異味.使用這兩種工具進(jìn)行檢測(cè)從而避免了重新構(gòu)造檢測(cè)工具而帶來(lái)的結(jié)果有效性威脅.從備選實(shí)驗(yàn)項(xiàng)目中提取的含4種異味的數(shù)據(jù)集,均經(jīng)過(guò)了以上兩種方法的檢驗(yàn),并證實(shí)了各自所含的代碼異味的存在.用于實(shí)驗(yàn)的數(shù)據(jù)集中異味強(qiáng)度分布情況如表6所示.

    表6 數(shù)據(jù)集代碼異味強(qiáng)度分布

    4.3 相關(guān)性分析

    從實(shí)驗(yàn)項(xiàng)目中選取代碼度量指標(biāo),分別驗(yàn)證其是否與代碼異味嚴(yán)重程度存在相關(guān)關(guān)系.用SPSS統(tǒng)計(jì)軟件進(jìn)行實(shí)驗(yàn).這里引入Spearman相關(guān)系數(shù).

    (1)

    其中ρ代表Spearman相關(guān)系數(shù),它是衡量?jī)蓚€(gè)變量的依賴性的非參數(shù)指標(biāo),表明了x(獨(dú)立變量)與y(依賴變量)的相關(guān)方向,這里x表示所考慮的各項(xiàng)代碼度量指標(biāo),y表示代碼異味嚴(yán)重性.Spearman相關(guān)系數(shù)取值范圍為-1~1,0代表變量間無(wú)相關(guān)性,即該代碼度量指標(biāo)和代碼異味嚴(yán)重性不存在相關(guān)關(guān)系,Spearman相關(guān)系數(shù)絕對(duì)值越接近1代表相關(guān)性越強(qiáng),即該代碼度量指標(biāo)和代碼異味嚴(yán)重性存在程度較強(qiáng)的相關(guān)關(guān)系,負(fù)值代表負(fù)相關(guān),正值代表正相關(guān).

    由表7的統(tǒng)計(jì)結(jié)果表明,絕大多數(shù)考慮的度量指標(biāo)和異味嚴(yán)重程度均有較強(qiáng)的相關(guān)性,Criti.為基于開(kāi)發(fā)者感知的代碼異味強(qiáng)度值,Sig意為顯著性,在這里Sig代表判斷異味嚴(yán)重程度和所考慮的代碼度量指標(biāo)之間具有相關(guān)關(guān)系的犯錯(cuò)幾率,一般地在統(tǒng)計(jì)學(xué)中,若Sig<0.05則說(shuō)明所考慮變量間存在顯著相關(guān)關(guān)系.(回答Q1)

    表7 Criti.與代碼度量指標(biāo)的相關(guān)性分析

    值得注意的是,由表7可觀察到涉及表示代碼變更的指標(biāo)(如NC、NF)均與開(kāi)發(fā)者感知的代碼異味嚴(yán)重性數(shù)值有著較強(qiáng)的相關(guān)性,且對(duì)代碼修改的越頻繁,代碼異味嚴(yán)重程度也隨之增加,呈明顯正相關(guān)關(guān)系.(回答Q1)

    另外,MPC的Sig值為0.804,即判斷MPC與Criti.相關(guān)的犯錯(cuò)概率高達(dá)80.4%,且Spearman相關(guān)系數(shù)接近0,說(shuō)明MPC與Criti.無(wú)明顯相關(guān)關(guān)系,故根據(jù)CFS的特征過(guò)濾方法,應(yīng)將其刪去.本文所構(gòu)建的異味強(qiáng)度預(yù)測(cè)模型具有一定通用性,若待測(cè)數(shù)據(jù)集中未提供Criticality值,通過(guò)本文CFS分析已篩選出與異味強(qiáng)度高度相關(guān)的代碼度量指標(biāo),且高相關(guān)性的代碼度量指標(biāo)的選擇一般不受不同代碼數(shù)據(jù)集的影響,故只需采集待測(cè)數(shù)據(jù)集中相應(yīng)代碼度量指標(biāo)代入模型即可進(jìn)行代碼異味強(qiáng)度的預(yù)測(cè).

    4.4 實(shí)驗(yàn)?zāi)P?/h3>

    4.4.1 RF模型構(gòu)建

    在Pecorelli等人[15]的代碼異味嚴(yán)重性預(yù)測(cè)實(shí)現(xiàn)上,其方法是在比較了多種經(jīng)典機(jī)器學(xué)習(xí)算法包括隨機(jī)森林、邏輯回歸、空間向量機(jī)、樸素貝葉斯和多層感知器后,選擇了效果最優(yōu)的隨機(jī)森林作為最后的預(yù)測(cè)模型.

    隨機(jī)森林是一種基于集成學(xué)習(xí)的監(jiān)督式機(jī)器學(xué)習(xí)算法[22],用隨機(jī)方式建立一個(gè)森林模型,該森林結(jié)合了多個(gè)相同類型的算法,由許多決策樹(shù)組成.決策樹(shù)之間相互獨(dú)立無(wú)關(guān)聯(lián),輸入新樣本時(shí),該樣本的取值為所有決策樹(shù)共同決策得出.

    隨機(jī)森林隨機(jī)性主要體現(xiàn)在了兩方面,樣本抽樣隨機(jī)性和特征抽樣隨機(jī)性.在訓(xùn)練集中隨機(jī)地抽取一定數(shù)量的樣本,作為樹(shù)的根節(jié)點(diǎn)樣本建立每棵子樹(shù).這兩點(diǎn)隨機(jī)性使得隨機(jī)森林不容易陷入過(guò)擬合.

    由于隨機(jī)森林引入了兩個(gè)隨機(jī)性,也使得其具有了良好的抗噪能力.基于樹(shù)模型的樹(shù)狀結(jié)構(gòu)與其他線性模型的區(qū)別,數(shù)值縮放不影響分裂點(diǎn)位置,因而無(wú)需對(duì)數(shù)據(jù)集進(jìn)行標(biāo)準(zhǔn)化處理.

    4.4.2 LightGBM模型構(gòu)建

    LightGBM是基于GBDT算法的一個(gè)具體實(shí)現(xiàn)框架,GBDT(Gradient Boosting Decision Tree)為了使模型的效果達(dá)到最優(yōu)化,利用弱分類器(決策樹(shù))進(jìn)行迭代訓(xùn)練,GBDT廣泛應(yīng)用于多分類任務(wù)和點(diǎn)擊率預(yù)估問(wèn)題(CTR)的解決[23].

    LightGBM采用基于Histogram的決策樹(shù)算法,特點(diǎn)是引入了單邊梯度采樣(GOSS)與互斥特征捆綁(EFB)[18].GOSS的使用能有效降低小梯度數(shù)據(jù)在數(shù)據(jù)實(shí)例中所占比例,因此在計(jì)算信息增益時(shí)只利用剩余的高梯度數(shù)據(jù)即可,大大節(jié)省了在時(shí)間和空間上的消耗.EFB可將許多互斥的特征進(jìn)行捆綁,從而有效減少了特征維度.

    另外,傳統(tǒng)的決策樹(shù)模型生長(zhǎng)采用Depth-wise策略,即是按層進(jìn)行的[24].而LightGBM決策樹(shù)采取Leaf-wise生長(zhǎng)策略,即是按葉進(jìn)行的.每次分裂時(shí)從目前所有葉子之中尋找分裂增益最大的葉子進(jìn)行分裂,如此循環(huán).LightGBM采用這種分裂方式的優(yōu)點(diǎn)是使誤差得到了有效的降低,有利于精度的提高,同時(shí)為了防止Leaf-wise生長(zhǎng)策略帶來(lái)的過(guò)擬合問(wèn)題,LightGBM在參數(shù)設(shè)置中引入了max_depth最大深度限制,有效地解決了該問(wèn)題.

    LightGBM算法模型需要對(duì)參數(shù)進(jìn)行調(diào)整已達(dá)到更好的訓(xùn)練與測(cè)試效果,LightGBM在所考慮的4種代碼異味數(shù)據(jù)集上表現(xiàn)出良好性能的關(guān)鍵優(yōu)化參數(shù)及含義如表8所示.

    表8 LightGBM模型參數(shù)表

    4.5 實(shí)驗(yàn)結(jié)果

    根據(jù)Pecorelli等人[15]的RF模型與本文模型在4種代碼異味數(shù)據(jù)集上的預(yù)測(cè)結(jié)果,分別構(gòu)建混淆矩陣進(jìn)行對(duì)比,如表9所示.

    表9 本文模型與RF模型的混淆矩陣對(duì)比

    從表9中可看出,運(yùn)用本文模型對(duì)4種代碼異味強(qiáng)度進(jìn)行預(yù)測(cè),在BC、CC、SC、SS所有4種異味上預(yù)測(cè)效果均優(yōu)于RF模型,在預(yù)測(cè)Non-severe、Medium、Severe 3個(gè)異味級(jí)別中被錯(cuò)誤預(yù)測(cè)的數(shù)量明顯減少.采用本文模型預(yù)測(cè)效果可以在RF模型的基礎(chǔ)之上再獲得較大提升.(回答Q2)

    4.6 模型評(píng)價(jià)

    本文選取6個(gè)評(píng)價(jià)指標(biāo)對(duì)實(shí)驗(yàn)進(jìn)行評(píng)估,其中,基于實(shí)例的評(píng)價(jià)指標(biāo)共5個(gè),基于模型效率的評(píng)價(jià)指標(biāo)1個(gè).

    4.6.1 基于實(shí)例的評(píng)價(jià)指標(biāo)

    基于實(shí)例的評(píng)價(jià)指標(biāo)是對(duì)模型在每種代碼異味數(shù)據(jù)集上進(jìn)行預(yù)測(cè)的結(jié)果進(jìn)行評(píng)估,以驗(yàn)證模型區(qū)分正負(fù)樣本的能力,相關(guān)指標(biāo)如下:

    1)精確率.

    真正正確占預(yù)測(cè)為正確的比例.計(jì)算公式如下:

    (2)

    其中,TP表示實(shí)際為正例且被分類器判定為正例的樣本數(shù);FP表示實(shí)際為負(fù)例且被分類器判定為正例的樣本數(shù);FN表示實(shí)際為正例但被分類器判定為負(fù)例的樣本數(shù);TN表示實(shí)際為負(fù)例且被分類器判定為負(fù)例的樣本數(shù).

    2)召回率.

    真正正確占所有實(shí)際為正的比例.計(jì)算公式如下:

    (3)

    3)F1值.

    F-Measure計(jì)算公式如下.

    (4)

    這里β取為1,即為F1值.

    (5)

    4)MCC值(馬修斯相關(guān)系數(shù)).

    MCC的本質(zhì)描述了預(yù)測(cè)結(jié)果與實(shí)際結(jié)果間的相關(guān)系數(shù).計(jì)算公式如下:

    (6)

    MCC取值范圍為[-1,1],MCC值為1表示預(yù)測(cè)結(jié)果與實(shí)際結(jié)果完全一致,-1表示完全不一致.

    5)AUC值.

    ROC曲線下方的面積大小,其取值范圍為[0,1],該值越大的分類器,表示分類的正確率越高.

    以上基于實(shí)例的評(píng)價(jià)指標(biāo)原是基于二分類問(wèn)題所討論的,但都根據(jù)本文所研究的多分類問(wèn)題進(jìn)行了重新調(diào)整,均利用基于Python的Scikit-Learn進(jìn)行自動(dòng)化計(jì)算.精確率高表示模型要盡量在更有把握的情況下才會(huì)將樣本預(yù)測(cè)為正樣本,意味著精確率越高,模型對(duì)負(fù)樣本區(qū)分能力越強(qiáng).召回率體現(xiàn)模型對(duì)于正樣本的區(qū)分能力,召回率越高則模型對(duì)正樣本的區(qū)分能力越強(qiáng).因此,對(duì)同一個(gè)模型來(lái)說(shuō),高精確率和高召回率通常不能同時(shí)達(dá)到,具有較高的精確率的模型往往具有較低的召回率.選取精確率和召回率作為評(píng)價(jià)指標(biāo)具有不同的參考意義.

    另外,本文選取相應(yīng)算法模型的程序運(yùn)行時(shí)間作為基于模型效率的評(píng)價(jià)指標(biāo),即計(jì)算模型從開(kāi)始訓(xùn)練到預(yù)測(cè)完畢的時(shí)間,以衡量模型運(yùn)行效率的高低.

    將RF模型與本文模型在4種異味數(shù)據(jù)集上分別進(jìn)行實(shí)驗(yàn),將5種基于實(shí)例的評(píng)價(jià)指標(biāo)進(jìn)行匯總?cè)绫?0所示.

    表10 本文模型與RF模型的評(píng)價(jià)指標(biāo)對(duì)比

    由表10可知,Pecorelli等人[15]所使用的RF模型的F1值在70.4%到89.4%之間,而采用本文的代碼異味強(qiáng)度預(yù)測(cè)模型,其精確率、召回率、F1值、MCC和AUC在所有4種代碼異味數(shù)據(jù)集上均較RF模型有了較大提升,其中預(yù)測(cè)精確率最高達(dá)90.2%,相比RF模型最多提升了3.9%;召回率最高達(dá)90.1%,最多提升了4.0%;F1值最高達(dá)90.0%,最多提升了3.7%;MCC值最高達(dá)83.8%,最多提升了6.6%;AUC值最高達(dá)94.2%,最多提升了3.8%.實(shí)驗(yàn)證明,采用基于LightGBM融合CFS的代碼異味強(qiáng)度預(yù)測(cè)模型較RF模型優(yōu)化效果明顯.(回答Q2)

    4.6.2 基于模型效率的評(píng)價(jià)指標(biāo)

    為了比較兩種模型運(yùn)行效率的差異,運(yùn)用本文基于LightGBM融合CFS的代碼異味強(qiáng)度預(yù)測(cè)模型與RF模型對(duì)4種代碼異味數(shù)據(jù)集進(jìn)行異味強(qiáng)度預(yù)測(cè)并統(tǒng)計(jì)模型從開(kāi)始訓(xùn)練至預(yù)測(cè)完畢的時(shí)間,作為衡量模型運(yùn)行效率的指標(biāo).每個(gè)模型在每種異味數(shù)據(jù)集上分別運(yùn)行3次,記錄每次所需時(shí)間如表11所示,表中數(shù)值單位均為毫秒(MS).

    表11 本文模型與RF模型運(yùn)行時(shí)間對(duì)比

    取兩種模型分別在4種異味數(shù)據(jù)集上進(jìn)行3次異味強(qiáng)度預(yù)測(cè)的運(yùn)行時(shí)間平均值作為最終運(yùn)行時(shí)間,得出兩種模型的平均耗時(shí)對(duì)比圖如圖4所示.

    圖4 RF模型與本文模型平均耗時(shí)對(duì)比圖

    如圖4所示,本文所使用的基于LightGBM算法融合CFS模型在4種代碼異味數(shù)據(jù)集上,運(yùn)行耗時(shí)均遠(yuǎn)低于RF模型,運(yùn)行時(shí)間縮短76.1%.相較于原模型,采用本文模型可使運(yùn)行效率得到極大提升.(回答Q3)

    5 總結(jié)與期望

    本文提出了一種基于LightGBM融合CFS的開(kāi)發(fā)者感知代碼異味強(qiáng)度預(yù)測(cè)模型,與文獻(xiàn)[15]采用的RF預(yù)測(cè)模型相比,性能在考慮的全部6個(gè)評(píng)價(jià)指標(biāo)上均得到了較大提升.在提高了異味預(yù)測(cè)精度的同時(shí)加快了預(yù)測(cè)速度,降低了運(yùn)行成本.說(shuō)明本文基于LightGBM融合CFS的開(kāi)發(fā)者感知代碼異味強(qiáng)度預(yù)測(cè)模型能較好地幫助開(kāi)發(fā)者確定代碼中存在異味的優(yōu)先級(jí),以便于優(yōu)先解決異味嚴(yán)重程度高的代碼,有助于降低軟件開(kāi)發(fā)與維護(hù)成本.

    后續(xù)的相關(guān)工作有兩個(gè)方向:1)本文所選項(xiàng)目均基于Java語(yǔ)言,后續(xù)可以擴(kuò)展到研究其他編程語(yǔ)言中的異味問(wèn)題;2)本文只聚焦4種常見(jiàn)的代碼異味,且均屬類級(jí)別,可以擴(kuò)展到其他種類的代碼異味或研究粒度更高的方法級(jí)別代碼異味問(wèn)題.

    猜你喜歡
    異味開(kāi)發(fā)者度量
    有趣的度量
    模糊度量空間的強(qiáng)嵌入
    迷向表示分為6個(gè)不可約直和的旗流形上不變愛(ài)因斯坦度量
    基于4G技術(shù)的VOCs及異味檢測(cè)系統(tǒng)
    用這些告別異味吧!夏天就要清清爽爽過(guò)!
    PIC-408系列采用育種技術(shù)控制公豬異味
    16%游戲開(kāi)發(fā)者看好VR
    CHIP新電腦(2016年3期)2016-03-10 13:06:42
    地質(zhì)異常的奇異性度量與隱伏源致礦異常識(shí)別
    iOS開(kāi)發(fā)者調(diào)查
    電腦迷(2015年8期)2015-05-30 12:27:10
    iOS開(kāi)發(fā)者調(diào)查
    電腦迷(2015年4期)2015-05-30 05:24:09
    欧美bdsm另类| 成人午夜高清在线视频| 在线观看一区二区三区| 国产精品福利在线免费观看| 天天躁夜夜躁狠狠久久av| 熟女电影av网| 边亲边吃奶的免费视频| 亚洲真实伦在线观看| 中文欧美无线码| 国产黄色免费在线视频| 2022亚洲国产成人精品| 欧美xxⅹ黑人| 亚洲欧美精品专区久久| 哪个播放器可以免费观看大片| 精华霜和精华液先用哪个| 美女大奶头视频| 亚洲av成人精品一二三区| 精品午夜福利在线看| 一级毛片久久久久久久久女| 最近中文字幕高清免费大全6| 最后的刺客免费高清国语| 大香蕉97超碰在线| 午夜福利视频1000在线观看| 偷拍熟女少妇极品色| 国产视频首页在线观看| 最近中文字幕高清免费大全6| 一级a做视频免费观看| 国产精品精品国产色婷婷| 乱人视频在线观看| 啦啦啦中文免费视频观看日本| 日韩成人av中文字幕在线观看| 激情 狠狠 欧美| 一个人免费在线观看电影| 好男人视频免费观看在线| 一本久久精品| 久久久久精品性色| 熟女人妻精品中文字幕| 国产视频内射| 亚洲精品中文字幕在线视频 | 午夜老司机福利剧场| 欧美成人一区二区免费高清观看| 午夜精品在线福利| 国产乱来视频区| 水蜜桃什么品种好| 久久久久性生活片| 内地一区二区视频在线| 青春草视频在线免费观看| 国产午夜精品论理片| 天天一区二区日本电影三级| 全区人妻精品视频| 男女啪啪激烈高潮av片| 亚洲精品成人久久久久久| 亚洲国产精品专区欧美| 国产高清国产精品国产三级 | 2021天堂中文幕一二区在线观| 亚洲av成人精品一二三区| 国产黄a三级三级三级人| 亚洲av成人精品一二三区| 亚州av有码| 国产人妻一区二区三区在| 日本黄色片子视频| 欧美丝袜亚洲另类| 午夜福利成人在线免费观看| 精品久久久久久久人妻蜜臀av| av在线观看视频网站免费| 日韩一区二区视频免费看| 三级男女做爰猛烈吃奶摸视频| 精品人妻偷拍中文字幕| 男女下面进入的视频免费午夜| 日本色播在线视频| 日日摸夜夜添夜夜添av毛片| 免费大片黄手机在线观看| 国产精品国产三级专区第一集| 中文精品一卡2卡3卡4更新| 乱人视频在线观看| 免费观看的影片在线观看| 女人被狂操c到高潮| 日本三级黄在线观看| 亚洲精品一二三| 身体一侧抽搐| 男女啪啪激烈高潮av片| 亚洲18禁久久av| 女人十人毛片免费观看3o分钟| 少妇人妻精品综合一区二区| 亚洲天堂国产精品一区在线| www.av在线官网国产| 美女脱内裤让男人舔精品视频| 你懂的网址亚洲精品在线观看| 亚洲激情五月婷婷啪啪| 99热网站在线观看| 国产一区亚洲一区在线观看| 男女边吃奶边做爰视频| 国产av码专区亚洲av| 欧美最新免费一区二区三区| 国产爱豆传媒在线观看| 麻豆成人av视频| 精品久久久噜噜| 中文字幕亚洲精品专区| 亚洲av福利一区| 日韩强制内射视频| 日本爱情动作片www.在线观看| 午夜福利视频1000在线观看| 国产精品蜜桃在线观看| 国产色婷婷99| 久久久久久久久久成人| 日本-黄色视频高清免费观看| 婷婷色麻豆天堂久久| 亚洲综合色惰| 日本av手机在线免费观看| 高清欧美精品videossex| 777米奇影视久久| 777米奇影视久久| 91久久精品国产一区二区成人| 午夜爱爱视频在线播放| 极品少妇高潮喷水抽搐| 国产成人精品福利久久| 日日啪夜夜撸| 中国国产av一级| 99热全是精品| 亚洲三级黄色毛片| 欧美最新免费一区二区三区| 日本色播在线视频| 久久久久久久午夜电影| 精品欧美国产一区二区三| 尤物成人国产欧美一区二区三区| 欧美不卡视频在线免费观看| 大话2 男鬼变身卡| 日本午夜av视频| 中文精品一卡2卡3卡4更新| 亚洲欧美清纯卡通| 久久久久网色| 亚洲精品第二区| 亚洲在线观看片| 亚洲成人av在线免费| 亚洲欧美成人综合另类久久久| 偷拍熟女少妇极品色| 欧美xxxx性猛交bbbb| 国产探花在线观看一区二区| 联通29元200g的流量卡| 免费看日本二区| 午夜精品一区二区三区免费看| 伦理电影大哥的女人| 男人舔女人下体高潮全视频| 卡戴珊不雅视频在线播放| 美女高潮的动态| 小蜜桃在线观看免费完整版高清| 精品酒店卫生间| 边亲边吃奶的免费视频| 婷婷色综合大香蕉| 久久久国产一区二区| 欧美高清成人免费视频www| 国产淫语在线视频| .国产精品久久| 国产不卡一卡二| 日本黄大片高清| 精品不卡国产一区二区三区| 日韩一本色道免费dvd| 国产精品久久久久久精品电影| 精品一区在线观看国产| 18禁裸乳无遮挡免费网站照片| 午夜福利成人在线免费观看| 国产午夜精品一二区理论片| 全区人妻精品视频| eeuss影院久久| 久久久精品94久久精品| 老司机影院成人| 亚洲国产成人一精品久久久| 亚洲性久久影院| 一级毛片黄色毛片免费观看视频| 美女大奶头视频| 最近视频中文字幕2019在线8| 亚洲高清免费不卡视频| 99热全是精品| 美女被艹到高潮喷水动态| 夫妻性生交免费视频一级片| 日日啪夜夜撸| av在线天堂中文字幕| 青春草国产在线视频| 内地一区二区视频在线| 免费看光身美女| 国产精品无大码| 中国国产av一级| av女优亚洲男人天堂| 免费人成在线观看视频色| 欧美三级亚洲精品| 最近最新中文字幕免费大全7| 久久精品久久精品一区二区三区| 少妇人妻精品综合一区二区| 日韩视频在线欧美| 日本黄大片高清| 一级毛片 在线播放| 18禁裸乳无遮挡免费网站照片| 久久精品国产亚洲av天美| 九草在线视频观看| 午夜福利在线在线| 少妇的逼好多水| 一本一本综合久久| 99热这里只有精品一区| 熟妇人妻久久中文字幕3abv| 蜜臀久久99精品久久宅男| 97超视频在线观看视频| 亚洲四区av| 又黄又爽又刺激的免费视频.| 日韩国内少妇激情av| 免费看a级黄色片| 亚洲国产欧美在线一区| 在线观看av片永久免费下载| 欧美成人精品欧美一级黄| 久久久久久久久中文| 久久久午夜欧美精品| 美女xxoo啪啪120秒动态图| 人妻系列 视频| 亚洲在久久综合| 国内揄拍国产精品人妻在线| 国产精品久久视频播放| 国产精品麻豆人妻色哟哟久久 | 久久精品综合一区二区三区| 99热6这里只有精品| 免费av观看视频| 亚洲精品日韩在线中文字幕| 国产亚洲最大av| 国产精品一二三区在线看| 亚洲无线观看免费| 欧美日韩在线观看h| 99九九线精品视频在线观看视频| 一级黄片播放器| 亚洲国产av新网站| 白带黄色成豆腐渣| 久久久久精品久久久久真实原创| 亚洲综合精品二区| 国产欧美日韩精品一区二区| 日韩精品青青久久久久久| 国产高清国产精品国产三级 | 亚洲国产精品sss在线观看| 午夜亚洲福利在线播放| 午夜福利成人在线免费观看| 三级经典国产精品| 精品久久久久久电影网| 婷婷色综合www| 欧美97在线视频| 午夜福利在线在线| 啦啦啦中文免费视频观看日本| 色尼玛亚洲综合影院| 国产av码专区亚洲av| 亚洲熟妇中文字幕五十中出| 最近2019中文字幕mv第一页| 亚洲性久久影院| 最新中文字幕久久久久| 久久99热这里只频精品6学生| av卡一久久| av线在线观看网站| 国产黄片美女视频| 色综合亚洲欧美另类图片| 国产精品美女特级片免费视频播放器| 一级a做视频免费观看| 国产片特级美女逼逼视频| 国产91av在线免费观看| 网址你懂的国产日韩在线| 最新中文字幕久久久久| 久久久色成人| 在线播放无遮挡| 3wmmmm亚洲av在线观看| 国产精品人妻久久久影院| 日本一二三区视频观看| 日韩一区二区视频免费看| 2022亚洲国产成人精品| 一夜夜www| 高清在线视频一区二区三区| 精品国产露脸久久av麻豆 | 亚洲av中文字字幕乱码综合| 国产精品综合久久久久久久免费| 五月玫瑰六月丁香| 成人av在线播放网站| 成人欧美大片| 久久99精品国语久久久| 亚洲av一区综合| 18禁动态无遮挡网站| 国产精品一区二区在线观看99 | 国产亚洲精品久久久com| 日本一本二区三区精品| 一区二区三区高清视频在线| 国国产精品蜜臀av免费| a级毛色黄片| 国产毛片a区久久久久| 最新中文字幕久久久久| 亚洲高清免费不卡视频| 极品少妇高潮喷水抽搐| 国产一级毛片七仙女欲春2| 高清av免费在线| 非洲黑人性xxxx精品又粗又长| 欧美人与善性xxx| 99久久精品热视频| 久久久久网色| 高清视频免费观看一区二区 | 日本三级黄在线观看| 国产免费一级a男人的天堂| 夫妻午夜视频| 人妻少妇偷人精品九色| 欧美+日韩+精品| 国产一区亚洲一区在线观看| 国产成人aa在线观看| 久久久久国产网址| 亚洲精品乱久久久久久| 韩国av在线不卡| 国产精品1区2区在线观看.| 97在线视频观看| 欧美日韩亚洲高清精品| 亚洲成人av在线免费| 淫秽高清视频在线观看| 国产精品久久久久久久久免| 九九在线视频观看精品| 激情五月婷婷亚洲| 别揉我奶头 嗯啊视频| 22中文网久久字幕| 一个人免费在线观看电影| 久久久久久久亚洲中文字幕| 中文欧美无线码| 国产精品久久久久久av不卡| 国产在视频线在精品| 亚洲第一区二区三区不卡| 乱人视频在线观看| 丝瓜视频免费看黄片| 久久久亚洲精品成人影院| 男女视频在线观看网站免费| 日韩视频在线欧美| 91aial.com中文字幕在线观看| 国产精品久久视频播放| 麻豆乱淫一区二区| 看黄色毛片网站| 男女下面进入的视频免费午夜| 2021少妇久久久久久久久久久| 国产色婷婷99| 免费av不卡在线播放| 日韩三级伦理在线观看| 亚洲精品国产av成人精品| 最近最新中文字幕大全电影3| 久久久久久九九精品二区国产| 听说在线观看完整版免费高清| 日本黄色片子视频| 三级经典国产精品| 午夜激情久久久久久久| a级毛色黄片| 精品熟女少妇av免费看| 国产综合精华液| 真实男女啪啪啪动态图| 男女边摸边吃奶| 免费看美女性在线毛片视频| 亚洲av不卡在线观看| 在线天堂最新版资源| 99久久中文字幕三级久久日本| a级毛色黄片| 午夜福利在线观看免费完整高清在| 777米奇影视久久| 日韩 亚洲 欧美在线| 人妻制服诱惑在线中文字幕| av又黄又爽大尺度在线免费看| 国产精品久久久久久久久免| 成人毛片a级毛片在线播放| a级毛片免费高清观看在线播放| 嘟嘟电影网在线观看| av.在线天堂| 国国产精品蜜臀av免费| 国产91av在线免费观看| 成人毛片60女人毛片免费| 两个人视频免费观看高清| 国产精品久久久久久久久免| 身体一侧抽搐| 一二三四中文在线观看免费高清| 亚洲三级黄色毛片| 精品久久久久久久久亚洲| 亚洲欧美中文字幕日韩二区| 国产白丝娇喘喷水9色精品| 麻豆国产97在线/欧美| 亚洲精品国产av蜜桃| freevideosex欧美| 99久久精品国产国产毛片| 亚洲性久久影院| 精品午夜福利在线看| 亚洲国产成人一精品久久久| 亚洲欧美一区二区三区黑人 | 日本与韩国留学比较| 久久6这里有精品| 秋霞伦理黄片| 在线观看一区二区三区| 国产精品美女特级片免费视频播放器| 国产精品.久久久| 国产一区二区亚洲精品在线观看| 国产91av在线免费观看| 91午夜精品亚洲一区二区三区| 精品久久久久久久末码| 亚洲精品一二三| 免费不卡的大黄色大毛片视频在线观看 | 国产精品久久久久久精品电影小说 | 五月玫瑰六月丁香| 国产91av在线免费观看| 亚洲精品视频女| 好男人在线观看高清免费视频| 久久久久久久久久久免费av| 激情五月婷婷亚洲| 亚洲在线观看片| 亚洲欧美成人综合另类久久久| 一级av片app| 午夜福利高清视频| 能在线免费看毛片的网站| 国产成人一区二区在线| 中文字幕人妻熟人妻熟丝袜美| 蜜臀久久99精品久久宅男| 一级毛片我不卡| 国内精品一区二区在线观看| 美女xxoo啪啪120秒动态图| 免费黄频网站在线观看国产| 精品久久久久久久久亚洲| 亚洲人与动物交配视频| 久久久久久久久久人人人人人人| 精品久久久久久久久av| av黄色大香蕉| 美女主播在线视频| 99热全是精品| 身体一侧抽搐| av国产久精品久网站免费入址| 久久精品国产亚洲av涩爱| a级毛片免费高清观看在线播放| 老女人水多毛片| 人人妻人人澡欧美一区二区| 亚洲国产精品成人久久小说| 在线天堂最新版资源| 69av精品久久久久久| 国产成人一区二区在线| 国产亚洲91精品色在线| 亚洲精品国产av蜜桃| 2021天堂中文幕一二区在线观| 亚洲精品日本国产第一区| 久久久久久久久久人人人人人人| 一级毛片久久久久久久久女| 99久久精品一区二区三区| 国产成人91sexporn| 啦啦啦啦在线视频资源| ponron亚洲| videossex国产| 内射极品少妇av片p| 色综合站精品国产| 国产成人a区在线观看| 亚洲综合色惰| 精品久久久久久成人av| 汤姆久久久久久久影院中文字幕 | 在线观看人妻少妇| 男人舔女人下体高潮全视频| 婷婷色av中文字幕| 国产精品福利在线免费观看| 亚洲欧美中文字幕日韩二区| 免费观看在线日韩| 国产成人a∨麻豆精品| 亚洲人成网站在线观看播放| 日韩大片免费观看网站| 中文字幕免费在线视频6| 国产极品天堂在线| 五月天丁香电影| 亚洲欧美一区二区三区黑人 | 青青草视频在线视频观看| 日韩电影二区| 国产精品久久久久久精品电影| 亚洲人成网站在线播| 亚洲乱码一区二区免费版| 久久99精品国语久久久| av又黄又爽大尺度在线免费看| 亚洲图色成人| 永久免费av网站大全| 国产黄片视频在线免费观看| 91狼人影院| or卡值多少钱| 少妇的逼水好多| 国产精品日韩av在线免费观看| 亚洲国产精品国产精品| 3wmmmm亚洲av在线观看| 男人狂女人下面高潮的视频| 亚洲精品,欧美精品| 秋霞在线观看毛片| 永久免费av网站大全| 久久久久九九精品影院| 人体艺术视频欧美日本| 日本av手机在线免费观看| 精品少妇黑人巨大在线播放| av一本久久久久| 日本一本二区三区精品| 搡女人真爽免费视频火全软件| 晚上一个人看的免费电影| 欧美xxⅹ黑人| 一区二区三区免费毛片| 黄色一级大片看看| 青青草视频在线视频观看| 91精品一卡2卡3卡4卡| 97在线视频观看| kizo精华| 2018国产大陆天天弄谢| 又黄又爽又刺激的免费视频.| 草草在线视频免费看| 嘟嘟电影网在线观看| 国产黄频视频在线观看| 青春草国产在线视频| 男人舔奶头视频| 99热6这里只有精品| 久久久午夜欧美精品| 一本一本综合久久| 麻豆久久精品国产亚洲av| 在现免费观看毛片| 亚洲精品aⅴ在线观看| 人妻少妇偷人精品九色| ponron亚洲| 熟女人妻精品中文字幕| 国内少妇人妻偷人精品xxx网站| 国产老妇伦熟女老妇高清| 三级男女做爰猛烈吃奶摸视频| 国产免费视频播放在线视频 | 99九九线精品视频在线观看视频| 国产在线男女| 国产一区二区亚洲精品在线观看| 联通29元200g的流量卡| 国产男人的电影天堂91| 国产色爽女视频免费观看| 精品一区二区免费观看| 中文字幕人妻熟人妻熟丝袜美| 菩萨蛮人人尽说江南好唐韦庄| 亚洲人成网站在线播| 久久精品久久久久久噜噜老黄| 欧美极品一区二区三区四区| 国内揄拍国产精品人妻在线| 成年av动漫网址| 精品国产三级普通话版| 亚洲人成网站在线播| 国内揄拍国产精品人妻在线| 亚洲不卡免费看| 亚洲欧洲国产日韩| 少妇猛男粗大的猛烈进出视频 | 你懂的网址亚洲精品在线观看| 美女cb高潮喷水在线观看| 成年女人看的毛片在线观看| 毛片女人毛片| 身体一侧抽搐| 国产淫片久久久久久久久| 久久精品人妻少妇| 麻豆乱淫一区二区| 中文欧美无线码| 亚洲精品国产av蜜桃| 亚洲欧美成人综合另类久久久| 高清毛片免费看| 搡女人真爽免费视频火全软件| 久久久久久久久久久丰满| www.色视频.com| 亚洲在线自拍视频| 又粗又硬又长又爽又黄的视频| 免费人成在线观看视频色| 国产亚洲午夜精品一区二区久久 | 免费大片黄手机在线观看| 免费观看无遮挡的男女| 亚洲成人av在线免费| 亚洲欧美清纯卡通| 三级国产精品欧美在线观看| 亚洲国产精品成人久久小说| 国产永久视频网站| 日韩一区二区三区影片| 久久国产乱子免费精品| 久久久久久伊人网av| 久久久a久久爽久久v久久| 亚州av有码| 成人一区二区视频在线观看| 激情五月婷婷亚洲| av在线亚洲专区| 国产黄片视频在线免费观看| 国产毛片a区久久久久| 好男人视频免费观看在线| 寂寞人妻少妇视频99o| 乱系列少妇在线播放| 久久99精品国语久久久| 女的被弄到高潮叫床怎么办| av国产免费在线观看| 亚洲美女搞黄在线观看| 七月丁香在线播放| 黄色欧美视频在线观看| 91久久精品国产一区二区三区| 日日摸夜夜添夜夜添av毛片| 日本免费a在线| 一个人看视频在线观看www免费| 在线观看免费高清a一片| 三级经典国产精品| 春色校园在线视频观看| 91午夜精品亚洲一区二区三区| 韩国av在线不卡| 黄片无遮挡物在线观看| 男人狂女人下面高潮的视频| 哪个播放器可以免费观看大片| 尤物成人国产欧美一区二区三区| 中文精品一卡2卡3卡4更新| 国产亚洲精品av在线| 少妇猛男粗大的猛烈进出视频 | 久久99蜜桃精品久久| 嘟嘟电影网在线观看| 色吧在线观看| 人人妻人人看人人澡| 免费观看性生交大片5| 老司机影院毛片| 精品一区二区三区视频在线| 久久99蜜桃精品久久| 国产乱人偷精品视频| 男女边吃奶边做爰视频| 国内精品一区二区在线观看| 2021少妇久久久久久久久久久| 日产精品乱码卡一卡2卡三| 亚洲av电影不卡..在线观看| 亚洲一级一片aⅴ在线观看| 午夜视频国产福利| 日日摸夜夜添夜夜爱| 国产成人精品久久久久久| 亚洲精品成人av观看孕妇| 日韩中字成人| 国产成人a区在线观看|