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

    Bagging異構(gòu)集成的代碼異味檢測與重構(gòu)優(yōu)先級劃分

    2024-03-03 11:21:26吳海濤蔡詠琦高建華
    關(guān)鍵詞:實(shí)驗(yàn)檢測模型

    吳海濤,蔡詠琦,高建華

    上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 200234

    代碼異味[1]是代碼的不良設(shè)計(jì)和實(shí)現(xiàn)的癥狀,會阻礙開發(fā)人員理解代碼并增加代碼的更改次數(shù)以及維護(hù)成本[2]。Fowler[1]對22 種代碼異味進(jìn)行了定義,這些代碼異味可能源自不良設(shè)計(jì)模式[3],但更多來自開發(fā)人員的編碼過程。由于代碼異味的存在,重構(gòu)操作變得至關(guān)重要。通過重構(gòu),開發(fā)人員可以在不改變系統(tǒng)功能的情況下提升軟件內(nèi)部結(jié)構(gòu)質(zhì)量、提高軟件可讀性和可理解性、定位軟件缺陷并促進(jìn)軟件開發(fā)過程。

    過去的研究[4-7]已經(jīng)提出多種代碼異味檢測技術(shù),其中大部分是基于規(guī)則或啟發(fā)式的方法。這些方法使用一組基于代碼度量標(biāo)準(zhǔn)或閾值的預(yù)定義規(guī)則,但通常存在閾值校準(zhǔn)問題,導(dǎo)致發(fā)生誤報(bào)或遺漏[8]。機(jī)器學(xué)習(xí)作為發(fā)展中的技術(shù),是解決上述問題的一種方法。機(jī)器學(xué)習(xí)能夠自動組合代碼度量,并且無需指定任何閾值。盡管大部分機(jī)器學(xué)習(xí)算法在代碼異味檢測方面取得了較高的性能[9],但單一算法仍然存在適應(yīng)性限制。

    在模型選擇方面,沒有一種單一模型能夠在所有異味上表現(xiàn)良好[10],因?yàn)榇a異味的識別是具有主觀性的[11],不同的異味類型可能存在不同的最佳模型。因此,集成學(xué)習(xí)被應(yīng)用于代碼異味檢測。然而,以往的研究更多關(guān)注同構(gòu)集成,忽視了異構(gòu)集成。因此,Alazba等人[12]使用Stacking方法,將14個(gè)異質(zhì)基分類器組合成更為強(qiáng)大的Stacking集成模型,展現(xiàn)出更為出色的檢測性能。

    在模型輸出方面,由于開發(fā)人員的經(jīng)驗(yàn)和認(rèn)知存在差異,對代碼異味的判斷也會有所不同。因此,代碼異味的檢測是非常主觀的。然而,過去的研究[4-12]只為開發(fā)人員提供布爾決策,沒有參考開發(fā)人員的主觀認(rèn)知并提供代碼異味存在的概率。Boutaib 等人[11]引入了可能性分布的概念,旨在模擬開發(fā)人員的主觀認(rèn)知,提高代碼異味識別的準(zhǔn)確率。

    在異味重構(gòu)方面,現(xiàn)有的大多數(shù)異味檢測方法僅識別出異味實(shí)例,缺乏后續(xù)的重構(gòu)操作。Boutaib等人[11]提出將可能性分布應(yīng)用于代碼重構(gòu)的想法,為開發(fā)人員提供重構(gòu)優(yōu)先級劃分。然而,他們并未對這一想法進(jìn)行相應(yīng)的研究來驗(yàn)證其有效性。

    為了探究上述問題,本文在Alazba 等人與Boutaib等人研究的基礎(chǔ)上,提出一種Bagging 異構(gòu)集成模型(bagging heterogeneous ensemble model,BHE)。該模型集成多個(gè)基分類器,綜合考慮不同分類器的預(yù)測能力,通過F1 集成策略結(jié)合多個(gè)基分類器的預(yù)測結(jié)果,得到類、方法存在代碼異味的概率。隨后在重構(gòu)中引入可能性分布,將異味概率通過可能性變換公式[13]轉(zhuǎn)化為可能性分布后,作為重構(gòu)優(yōu)先級的指導(dǎo)意見提供給開發(fā)人員。

    本文的主要貢獻(xiàn)如下:

    (1)采用F1加權(quán)集成策略的Bagging異構(gòu)集成模型相較于6個(gè)基分類器,在代碼異味檢測的性能上有顯著提升。

    (2)通過Bagging異構(gòu)集成模型,證實(shí)了最佳分類器因代碼異味類型的不同而存在差異。

    (3)將Bagging 異構(gòu)集成模型輸出的異味概率通過可能性分布公式進(jìn)行轉(zhuǎn)化后,得到的重構(gòu)優(yōu)先級與6名受訪者的排序具有高度一致性,能夠?yàn)殚_發(fā)人員提供可靠的重構(gòu)順序,節(jié)省開發(fā)人員的工作量。

    1 相關(guān)術(shù)語

    1.1 代碼異味

    代碼異味是不良的設(shè)計(jì)和代碼實(shí)現(xiàn)的癥狀,會對軟件維護(hù)帶來一定影響,通常利用代碼重構(gòu)解決。本文主要研究3 種代碼異味,其描述與影響如表1。代碼異味的選擇具有一定標(biāo)準(zhǔn),田迎晨等人[14]和Azeem等人[10]指出工業(yè)界更關(guān)注質(zhì)量、成本和效率之間的平衡,同時(shí)表1中的代碼異味被工業(yè)界關(guān)注且廣泛認(rèn)可。通過研究工業(yè)界所關(guān)注的對象,為開發(fā)人員提供重構(gòu)優(yōu)先級建議,更貼近開發(fā)生產(chǎn)中的實(shí)際需要。

    表1 代碼異味描述Table 1 Description of code smell

    1.2 代碼度量

    源代碼的結(jié)構(gòu)數(shù)據(jù)可以用McCabe 圈復(fù)雜度[15]或Chidamber等人[16]研究中的結(jié)構(gòu)度量進(jìn)行統(tǒng)計(jì)。代碼的結(jié)構(gòu)度量在許多研究中都被證實(shí)適合通過機(jī)器學(xué)習(xí)進(jìn)行研究[17-18]。Das等人[19]發(fā)現(xiàn),基于代碼度量的模型在識別代碼異味時(shí),其準(zhǔn)確率可以達(dá)到90%。實(shí)驗(yàn)中,選擇了以Chidamber等人[16]研究為基礎(chǔ)開發(fā)的代碼度量挖掘工具CK[20],并以其提供的代碼度量指標(biāo)作為數(shù)據(jù)。該CK工具在Chidamber等人的基礎(chǔ)上進(jìn)行了擴(kuò)展,其中類級代碼度量47個(gè),方法級代碼度量28個(gè),如表2所示。

    表2 代碼度量及其相關(guān)信息Table 2 Code metrics and related information

    1.3 代碼重構(gòu)

    代碼重構(gòu)是在不改變軟件系統(tǒng)外部行為的前提下,改善代碼內(nèi)部結(jié)構(gòu),即通過調(diào)整程序代碼改善軟件的質(zhì)量、性能,使程序的設(shè)計(jì)模式和架構(gòu)更合理,提高軟件的擴(kuò)展性和維護(hù)性。

    Tufano等人[2]指出超過50%的代碼異味在項(xiàng)目開發(fā)的1 000天后仍然“活躍”,并認(rèn)為如何開始重構(gòu),即如何確定重構(gòu)順序,嚴(yán)重困擾著開發(fā)人員。因此,即使機(jī)器學(xué)習(xí)能夠識別出大量的代碼異味實(shí)例,但對于開發(fā)人員來說,確定重構(gòu)優(yōu)先級才能真正幫助開發(fā)人員進(jìn)行代碼質(zhì)量維護(hù)。

    1.4 可能性分布

    可能性分布是一種主觀的不確定性,與概率分布的隨機(jī)性不同,后者反映事件發(fā)生的規(guī)律,具有客觀性,而前者代表模糊性,即開發(fā)人員由于不明確哪個(gè)實(shí)例需要優(yōu)先重構(gòu),從而產(chǎn)生主觀上的不確定性,這種主觀不確定性能夠用可能性分布進(jìn)行表示。概率分布能夠和可能性分布進(jìn)行轉(zhuǎn)化,變換公式如式(1)??赡苄苑植嫉挠行栽贐outaib 等人[21]的工作中已得到證實(shí),在檢測代碼異味中取得良好的效果。

    其中,π表示可能性分布,ω表示狀態(tài)空間,在本文中即Smelly、Non-Smelly 兩種狀態(tài)空間,p表示概率分布。π(ωk)=1 表示ωk的實(shí)現(xiàn)是完全可能的,而π(ωk)=0 表示ωk是拒絕狀態(tài)。將p轉(zhuǎn)換為π之前應(yīng)將p按降序排序,即p(ω1)≥p(ω2)≥…≥p(ωn),其中p的總和為1??赡苄苑植贾稻哂幸韵滦问街唬篬X,Y]或[Y,X],其中X在[0,1]之間,Y等于1。

    在可能性分布中,X定義了不可能性,即對于某個(gè)存在代碼異味的類、方法,X表示Non-Smelly的可能性分布,X越小,該類、方法越傾向于不是Non-Smelly,因此該實(shí)例的重構(gòu)優(yōu)先級越高。由于可能性分布的存在,且可能性分布的和≥1,開發(fā)人員可在已知實(shí)例存在或不存在代碼異味的情況下,通過可能性分布大小判斷該實(shí)例是否急迫需要進(jìn)行重構(gòu)。

    2 Bagging異構(gòu)集成模型的構(gòu)建

    本文提出的Bagging 異構(gòu)集成模型構(gòu)建過程如圖1 所示,主要分為3 個(gè)步驟:(1)尋找合適的基分類器;(2)通過網(wǎng)格搜索尋找基分類器的最優(yōu)超參數(shù);(3)根據(jù)F1值對基分類器分配在預(yù)測中所持有的權(quán)重。

    圖1 Bagging異構(gòu)集成模型構(gòu)建流程Fig.1 Building flowchart of Bagging heterogeneous ensemble mode

    2.1 基分類器選擇

    Bagging算法[22]是并行式集成學(xué)習(xí)中的最具代表性的算法之一,其通常對訓(xùn)練樣本采用Bootstrap 抽樣策略,并行地訓(xùn)練多個(gè)獨(dú)立的基分類器,通過結(jié)合多個(gè)分類器降低泛化誤差。然而在Bagging 算法中,大多都采用同構(gòu)分類器訓(xùn)練,因此在基分類器的構(gòu)成上存在一定的改進(jìn)空間。

    本文使用6種有監(jiān)督機(jī)器學(xué)習(xí)分類器作為Bagging異構(gòu)集成模型的基分類器,即RandomForest(RF)、SVM、DecisionTree(DT)、Adaboost(AST)、LogisticRegression(LR)、KNN。選擇過程遵循2個(gè)標(biāo)準(zhǔn):

    (1)選擇的分類器應(yīng)是公認(rèn)的分類技術(shù),例如SVM、DT。

    (2)分類器應(yīng)涵蓋不同的分類簇,例如基于規(guī)則、基于回歸和基于投票的。

    對于每一種代碼異味數(shù)據(jù)集,將總數(shù)據(jù)集分為80%的訓(xùn)練集和20%的測試集。在訓(xùn)練集上,分別在6種模型上進(jìn)行訓(xùn)練。這6種模型之間具有一定差異,能通過使用不同學(xué)習(xí)策略,從不同角度和空間學(xué)習(xí)特征,實(shí)現(xiàn)模型間的互補(bǔ),從而提升Bagging 模型的整體性能。在測試集上,通過F1來評估各模型的性能。

    2.2 基分類器訓(xùn)練及超參數(shù)搜索

    為了能夠最大程度地觀察各個(gè)基分類器在不同代碼異味檢測上的性能,并提高Bagging 異構(gòu)集成模型的檢測能力,同時(shí)為重構(gòu)優(yōu)先級劃分提供可靠基礎(chǔ),本文在訓(xùn)練過程中對所有6種基分類器進(jìn)行網(wǎng)格搜索,以得到最優(yōu)參數(shù)從而提高自身的預(yù)測能力,各個(gè)基分類器所選超參數(shù)如表3。

    表3 分類器超參數(shù)Table 3 Hyper parameters of classifiers

    選擇表3中的超參數(shù)主要有2個(gè)原因:

    (1)所有超參數(shù)對于各自的分類器具有較高的重要性。

    (2)適當(dāng)控制超參數(shù)數(shù)量,減少網(wǎng)格搜索的交叉驗(yàn)證時(shí)間。

    在訓(xùn)練過程中采用10折交叉驗(yàn)證對基分類器進(jìn)行網(wǎng)格搜索,以得到模型的最優(yōu)參數(shù)。該策略允許所有觀察樣本用于訓(xùn)練和測試,且已在機(jī)器學(xué)習(xí)相關(guān)領(lǐng)域中被廣泛使用[23]。該策略將數(shù)據(jù)隨機(jī)劃分成10份,其中9份作為訓(xùn)練集,剩余1 份作為測試集,交叉驗(yàn)證后重復(fù)10次,允許10 個(gè)子集中的每一個(gè)恰好成為一次測試集[24]。由于實(shí)驗(yàn)中的代碼異味數(shù)據(jù)集處于不平衡狀態(tài),因此在實(shí)驗(yàn)中的每一折都應(yīng)用分層抽樣,以保證代碼異味的分布與原始訓(xùn)練集相同[7]。

    2.3 Bagging集成策略

    Bagging 算法將基分類器訓(xùn)練完成后,通常將它們的結(jié)果以簡單投票或模型平均的方法進(jìn)行結(jié)合。然而在集成階段僅僅以簡單的多數(shù)投票或整體平均進(jìn)行綜合并不合理,沒有考慮不同代碼異味具有不同的最適分類器,因此在集成策略上仍然存在改進(jìn)空間。

    本文提出的Bagging異構(gòu)集成模型需要將6個(gè)異構(gòu)基分類器的預(yù)測結(jié)果進(jìn)行加權(quán)融合,因此在獲得基分類器的最優(yōu)超參數(shù)并完成訓(xùn)練后,對基分類器在測試集上的F1 進(jìn)行降序排序并賦予相應(yīng)的權(quán)重,權(quán)重之和為1,如公式(2):

    每個(gè)基分類器乘上各自的權(quán)重后相加,即得到Bagging異構(gòu)集成模型,模型架構(gòu)如圖2,其輸出為某個(gè)類、方法存在代碼異味的概率。

    圖2 Bagging異構(gòu)集成模型架構(gòu)Fig.2 Architecture of Bagging heterogeneous ensemble model

    通過設(shè)定概率的閾值,能夠輸出某個(gè)類、方法存在代碼異味的標(biāo)簽。實(shí)驗(yàn)中選擇0.5 作為概率閾值,異味標(biāo)簽的判斷方法如公式(3):

    一方面,選擇加權(quán)是因?yàn)閷?shí)驗(yàn)中不同分類器的性能存在差異,通過加權(quán)能夠強(qiáng)化對應(yīng)于代碼異味的最適分類器對結(jié)果的影響,其性能由基分類器在測試集上的F1來表示。另一方面,選擇F1作為賦予權(quán)重的依據(jù),是由于F1 是Precision 和Recall 的加權(quán)調(diào)和平均,能夠有效地對極端值進(jìn)行懲罰,不偏向Precision和Recall的任何一方,使得模型在任何情況下對數(shù)據(jù)不平衡率都不敏感。

    3 實(shí)驗(yàn)設(shè)計(jì)

    3.1 實(shí)驗(yàn)系統(tǒng)

    實(shí)驗(yàn)研究包含6個(gè)軟件系統(tǒng)的32個(gè)版本,分析的系統(tǒng)包括:

    (1)Apache 基金會的5 個(gè)系統(tǒng):Xerces、Hadoop、Hbase、Hive、Manifoldcf。

    (2)Eclipse基金會的1個(gè)系統(tǒng):Eclipse。

    表4報(bào)告了實(shí)驗(yàn)中研究的系統(tǒng)特征,即系統(tǒng)、版本、系統(tǒng)版本數(shù)、類的數(shù)量、方法的數(shù)量。實(shí)驗(yàn)將通過6個(gè)在軟件開發(fā)領(lǐng)域應(yīng)用廣泛且一直較為活躍的開源系統(tǒng)來驗(yàn)證。

    表4 軟件系統(tǒng)描述Table 4 Description of software system

    選擇這6個(gè)系統(tǒng)的原因是:

    (1)本次實(shí)驗(yàn)挖掘的代碼異味及統(tǒng)計(jì)代碼度量的靜態(tài)工具只適用于由Java語言編寫的系統(tǒng),所選系統(tǒng)都基于Java程序語言開發(fā)的。

    (2)上述6 個(gè)系統(tǒng)中有一定的代碼異味實(shí)例數(shù),具備進(jìn)行研究的條件。

    3.2 實(shí)驗(yàn)流程

    Bagging 異構(gòu)集成模型的實(shí)驗(yàn)流程如圖3 所示,主要分為4個(gè)步驟,分別是獲取數(shù)據(jù)集、Bagging異構(gòu)集成模型的構(gòu)建、模型檢測性能評估以及可能性分布下的重構(gòu)優(yōu)先級一致性檢驗(yàn)。

    3.2.1 數(shù)據(jù)集的獲取及數(shù)據(jù)預(yù)處理

    實(shí)驗(yàn)采用由Palomba等人[25]人工識別的代碼異味實(shí)例數(shù)據(jù)集,文獻(xiàn)[25]的數(shù)據(jù)集只有代碼異味標(biāo)簽,因此實(shí)驗(yàn)中采用CK工具獲取6個(gè)軟件系統(tǒng)的32個(gè)版本的代碼度量數(shù)據(jù),再與文獻(xiàn)[25]中的異味實(shí)例一一對應(yīng)并進(jìn)行歸一化后形成實(shí)驗(yàn)所需的數(shù)據(jù)集。其中,類級代碼異味Complex Class、Spaghetti Code 數(shù)據(jù)集由1 個(gè)標(biāo)簽、47個(gè)特征組成,方法級代碼異味Long Method數(shù)據(jù)集由1個(gè)標(biāo)簽、28個(gè)特征組成,數(shù)據(jù)集格式如圖4。

    實(shí)驗(yàn)中每種代碼異味實(shí)例較少,僅1%左右,如表5所示。但根據(jù)先前的研究表明[7,26],將不平衡算法應(yīng)用于代碼異味檢測相關(guān)的數(shù)據(jù)會損害模型的性能。因此實(shí)驗(yàn)中不應(yīng)用任何不平衡算法對少數(shù)類進(jìn)行平衡。

    3.2.2 Bagging異構(gòu)集成模型

    在確定了實(shí)驗(yàn)包含的軟件系統(tǒng)、3 種代碼異味以及相關(guān)的數(shù)據(jù)集后,首先選擇6種有監(jiān)督機(jī)器學(xué)習(xí)分類器RF、SVM、DT、AST、LR 與KNN 作為Bagging 異構(gòu)集成模型的基分類器。

    隨后對3種代碼異味數(shù)據(jù)集依次進(jìn)行訓(xùn)練,通過網(wǎng)格搜索得到6 種基分類器的最佳超參數(shù)。為了減輕因?qū)嶒?yàn)數(shù)據(jù)集不平衡給實(shí)驗(yàn)結(jié)果帶來的影響,實(shí)驗(yàn)在基分類器訓(xùn)練過程中進(jìn)行分層抽樣訓(xùn)練,以保證代碼異味的分布與原始數(shù)據(jù)集相同,并采用10折交叉驗(yàn)證策略[23]。

    最后將6種基分類器通過F1集成策略賦予權(quán)重后,組合為Bagging異構(gòu)集成模型,并給出類、方法存在代碼異味的概率,為重構(gòu)優(yōu)先級提供依據(jù)。

    3.2.3 模型檢測性能評估

    本次實(shí)驗(yàn)通過計(jì)算經(jīng)典的性能指標(biāo),即通過Precision、Recall、F1 和AUC[27]以及四分位數(shù)來驗(yàn)證6 種基分類器在檢測3種代碼異味上的穩(wěn)定性,并評估實(shí)驗(yàn)中構(gòu)建的Bagging異構(gòu)集成模型的分類性能。

    3.2.4 重構(gòu)優(yōu)先級與一致性檢驗(yàn)

    本文提出的Bagging異構(gòu)集成模型在輸出異味概率后,仍然可能擁有額外的價(jià)值。通過可能性變換公式,將異味概率轉(zhuǎn)化為可能性后,能夠作為重構(gòu)優(yōu)先級提供給開發(fā)人員。

    在重構(gòu)優(yōu)先級劃分的有效性評估上,采用Cohen’s Kappa[28]對Bagging 異構(gòu)集成模型轉(zhuǎn)化后的重構(gòu)優(yōu)先級與6 名受訪者得出的重構(gòu)優(yōu)先級進(jìn)行一致性檢驗(yàn)。Kappa 一致性是一種衡量分類精度的指標(biāo),Kappa 系數(shù)越大表明一致性越高。一般認(rèn)為0~0.20為極低一致性,0.21~0.40 為一般一致性,0.41~0.60 為中等的一致性,0.61~0.80為高度一致性,0.81~1為幾乎完全一致。顯著性p值表示出現(xiàn)極端樣本的概率,一般認(rèn)為p值<0.05時(shí)具有統(tǒng)計(jì)學(xué)差異,并拒絕原假設(shè)。

    在具有先后順序的一致性檢驗(yàn)中,即對于本文給出的重構(gòu)優(yōu)先級,優(yōu)先級差距越大,懲罰力度也應(yīng)越大,因此選擇使用平方加權(quán)Kappa(quadratic weighted Kappa)[29]。

    4 實(shí)驗(yàn)結(jié)果與分析

    為了驗(yàn)證Bagging異構(gòu)集成模型檢測實(shí)驗(yàn)中提到的3 種代碼異味的有效性,本文就以下3 個(gè)問題展開實(shí)驗(yàn)與結(jié)果分析:

    RQ1:在不同代碼異味檢測中,表現(xiàn)最好的基分類器是哪個(gè)?

    RQ2:在代碼異味檢測中,Bagging異構(gòu)集成模型在多大程度上提高基分類器的檢測性能?

    RQ3:將Bagging 異構(gòu)集成模型輸出的異味概率轉(zhuǎn)化為可能性分布是否具有潛在的附加價(jià)值?即提供的重構(gòu)優(yōu)先級建議是否有效?

    4.1 評價(jià)指標(biāo)

    本次實(shí)驗(yàn)通過計(jì)算傳統(tǒng)的性能指標(biāo),包括Precision(P)、Recall(R)、F1 和AUC[27]來驗(yàn)證Bagging 異構(gòu)集成模型在檢測Complex Class、Long Method、Spaghetti Code上的有效性,其公式如(4)~(6):

    其中,TP表示真陽性,F(xiàn)P表示假陽性,TN表示真陰性,F(xiàn)N表示假陰性,Precision 表示所有預(yù)測值為陽性的樣本中被正確預(yù)測的比例,Recall表示在所有實(shí)際值為陽性的樣本中被正確預(yù)測為陽性的比例。

    AUC[27]是接受者操作員特征(ROC)曲線下方面積的百分比。AUC的取值范圍為[0,1],其中0表示最差分類器,1 表示最優(yōu)分類器。AUC 值為0.5 的分類器類似于隨機(jī)猜測分類器。

    4.2 RQ1:基分類器檢測性能

    為了回答RQ1,本節(jié)給出6 種基分類器在3 種代碼異味上的性能,并通過分析6種基分類器在不同代碼異味檢測上的穩(wěn)定性來驗(yàn)證不同代碼異味是否存在不同的最適分類器。

    基分類器對類級和方法級代碼異味的檢測性能如表6 所示。在類級代碼異味中,所有分類器在Complex Class 上表現(xiàn)出高性能而在Spaghetti Code 上則有所下滑。其中,LR的檢測性能最差,F(xiàn)1僅為47.76%和24.24%,而RF與KNN分別是檢測Complex Class、Spaghetti Code中性能最高的分類器,F(xiàn)1 達(dá)到80.29%和63.64%。與類級代碼異味相比,所有分類器在Long Method的檢測上都能取得較好的性能,但LR 的表現(xiàn)仍非常一般。上述分析表明,針對不同的代碼異味,其最佳分類器可能因代碼異味類型而異。

    表6 基分類器性能Table 6 Performance of base classifiers 單位:%

    由于最適分類器的數(shù)量可能不止一個(gè),需繼續(xù)研究分類器的穩(wěn)定性。表7 總結(jié)了各代碼異味類型的最佳和最差分類器。若分類器的F1 在前25%(Q3),則認(rèn)為該分類器是此異味類型檢測中性能最好的分類器之一;反之若低于后25%(Q1),則是性能最差的分類器。表7中,“+”表示該分類器是檢測該異味類型的最佳分類器之一,而“-”則相反。此外,N/A表示空白項(xiàng),不表示最佳或最差以及任何數(shù)字。

    表7 基于F1值的各代碼異味中最佳/差分類器Table 7 Best and worst classifiers for each code smell in terms of F1

    通過表7中數(shù)據(jù)可以觀察到RF、SVM、KNN分別是檢測Complex Class、Long Method、Spaghetti Code 的最適分類器,其中RF 的性能最為穩(wěn)定,而LR 則始終是最差的分類器。由于選擇的分類器數(shù)量有限,不能排除存在性能更好或更差的分類器,就上述結(jié)論而言,導(dǎo)致RF 性能最為穩(wěn)定而LR 性能最差的原因可能有以下四點(diǎn),從分類器原理角度解釋:(1)RF作為Bagging中最具代表性的機(jī)器學(xué)習(xí)算法,引入?yún)?shù)、樣本等的隨機(jī),能避免單棵決策樹的過擬合。(2)RF的結(jié)果由許多棵不同的簡單決策樹投票構(gòu)成,具有強(qiáng)泛化能力。從代碼異味角度分析:(3)代碼異味的產(chǎn)生存在諸多原因,表現(xiàn)出復(fù)雜的特征(尤其是類級代碼異味),LR 不能很好地處理較大的特征空間,易欠擬合。(4)代碼異味數(shù)據(jù)集不一定是線性可分的,對LR的性能影響巨大。

    此外,即使分類器在檢測某個(gè)代碼異味時(shí)表現(xiàn)良好,但不能保證對其他代碼異味的檢測仍然保持性能穩(wěn)定。例如,SVM是檢測Long Method的最佳分類器,但對Complex Class的性能卻排在倒數(shù)。

    總結(jié)RQ1,分類器的性能因代碼異味類型而異。在所有分類器中,RF、SVM、KNN 都存在各自適合檢測的代碼異味,其中RF 的性能最為穩(wěn)定。另一方面,LR 始終是最差的分類器。

    4.3 RQ2:Bagging異構(gòu)集成模型的性能

    為了回答RQ2,本文將在每一種代碼異味實(shí)驗(yàn)中分為7組,第一組為Bagging異構(gòu)集成模型的預(yù)測性能,后6 組為基分類器與Bagging 異構(gòu)集成模型性能的差值。利用從6個(gè)系統(tǒng)的32個(gè)版本中獲取的相關(guān)數(shù)據(jù)集,對本次實(shí)驗(yàn)構(gòu)建的Bagging 異構(gòu)集成模型進(jìn)行驗(yàn)證,性能結(jié)果如表8 所示。其中BHE 表示Bagging 異構(gòu)集成模型(下同)。

    表8 模型性能對比Table 8 Comparison of model performance

    對于Complex Class 和Spaghetti Code,表8 所示結(jié)果表明Bagging異構(gòu)集成模型的性能在F1與AUC上相較于其他6 種基分類器有明顯優(yōu)勢,分別提升1.11~40.51個(gè)百分點(diǎn)和0.76~28.37個(gè)百分點(diǎn)。Bagging異構(gòu)集成模型優(yōu)于基分類器的原因如下:(1)從模型優(yōu)化出發(fā),集成多種模型可以減少單一模型陷入局部最優(yōu)點(diǎn)而導(dǎo)致模型泛化能力不佳的風(fēng)險(xiǎn);(2)從集成策略出發(fā),Bagging異構(gòu)集成模型通過加權(quán)結(jié)合多種分類器,在充分發(fā)揮最適分類器的同時(shí)降低性能較差的分類器對結(jié)果的影響。

    對于Long Method,Bagging 異構(gòu)集成模型雖然沒有在全部指標(biāo)上取得最好的得分,但與性能最好的基分類器SVM 差距非常小。同時(shí)Bagging 異構(gòu)集成模型在Precision 上提高1.44~7.81 個(gè)百分點(diǎn),說明Bagging 異構(gòu)集成模型的性能與最優(yōu)基分類器相差不大,同樣具有良好的檢測能力。

    總結(jié)RQ2,本文提出的Bagging 異構(gòu)集成模型是通過使用6 種有監(jiān)督機(jī)器學(xué)習(xí)模型,采用F1 集成策略的概率模型,在Complex Class、Long Method、Spaghetti Code上都具有良好的檢測能力。

    4.4 RQ3:重構(gòu)優(yōu)先級劃分的有效性

    為了回答RQ3,并進(jìn)一步探究Bagging 異構(gòu)集成模型中采用的可能性分布是否可以作為有效的重構(gòu)優(yōu)先級提供給開發(fā)人員,本文利用可能性分布轉(zhuǎn)化公式[13],將模型輸出的概率分布轉(zhuǎn)化為可能性分布。為驗(yàn)證可能性分布作為重構(gòu)優(yōu)先級的有效性,本文共邀請39 位受訪者,以探究轉(zhuǎn)化后的重構(gòu)優(yōu)先級與實(shí)際應(yīng)用中的一致程度。最后收到其中6 位的回復(fù):2 位從事后端開發(fā)(Dev1、Dev2),1位從事硬件開發(fā)(Dev3),3位是軟件工程方向研究生(Dev4、Dev5、Dev6)。為了確保受訪者的響應(yīng)率,必須控制每位受訪者所需執(zhí)行的任務(wù)數(shù)量,因此在每種代碼異味中選擇5 個(gè)已知存在異味的實(shí)例作為對象,并讓受訪者為每個(gè)實(shí)例分配一個(gè)重構(gòu)優(yōu)先級,從1(最優(yōu)先)到5(最滯后)進(jìn)行排序。雖然受訪者的數(shù)量很少(占回復(fù)率的15.4%),但也符合關(guān)于最低回復(fù)率的調(diào)查研究[30]。

    由Bagging異構(gòu)集成模型轉(zhuǎn)化得到的概率分布與可能性分布如表9所示。為了更直觀地判斷Bagging異構(gòu)集成模型提供的重構(gòu)優(yōu)先級是否有效,實(shí)驗(yàn)采用平方加權(quán)Kappa進(jìn)行一致性檢驗(yàn),結(jié)果如表10所示。

    表9 三種代碼異味的概率分布與可能性分布Table 9 Probability and possibility distributions of three code smells

    由于每一種代碼異味的異味實(shí)例過少,因此將15個(gè)異味實(shí)例作為整體進(jìn)行分析。表10 結(jié)果表明,Bagging異構(gòu)集成與Dev1~Dev6 的p值都小于0.05,拒絕原假設(shè),即兩者具有一致性。此外,Bagging異構(gòu)集成模型轉(zhuǎn)化得到的重構(gòu)優(yōu)先級與Dev1~Dev6 具有高度一致性,Kappa系數(shù)最高可達(dá)0.900。

    表9、表10 中,對于優(yōu)先級較高的排名,Bagging 異構(gòu)集成模型轉(zhuǎn)化得到的重構(gòu)優(yōu)先級與Dev1~Dev6 的判斷幾乎一致,然而有兩項(xiàng)異味實(shí)例的重構(gòu)優(yōu)先級存在較大分歧。對于Complex Class,Eclipse-3.5.2 的Problem-Reporter類,Dev1、Dev3、Dev4的判斷與Bagging異構(gòu)集成模型存在差距。對于Spaghetti Code,Xerces-1.4.1 的RegexParser類,Dev1仍然持不同意見。Dev1認(rèn)為ProblemReporter與RegexParser在業(yè)務(wù)實(shí)現(xiàn)中必須使用大量if-else與switch-case語句,導(dǎo)致代碼冗長,不可避免地產(chǎn)生代碼異味。即使需要添加新功能,其代碼增量也較少,同時(shí)也極少修改原代碼,重構(gòu)所需付出的成本和效率不成正比,因此重構(gòu)優(yōu)先級較低。上述案例很好地說明了代碼異味是代碼的一種癥狀,任何基于機(jī)器學(xué)習(xí)的代碼異味檢測與重構(gòu)算法都應(yīng)當(dāng)指出開發(fā)人員所關(guān)注的設(shè)計(jì)[14,31]與重構(gòu)問題,因此研究者應(yīng)將研究成果真正受用于開發(fā)者。

    總結(jié)RQ3,本文給出的重構(gòu)優(yōu)先級與Dev1~Dev6給出的重構(gòu)優(yōu)先級整體具有高度一致性,Kappa系數(shù)最低也達(dá)到0.700,最高為0.900。該結(jié)果表明,將Bagging異構(gòu)集成模型的概率輸出轉(zhuǎn)化為可能性分布,在代碼異味重構(gòu)優(yōu)先級上具有較高有效性。

    5 結(jié)束語

    本文提出Bagging 異構(gòu)集成模型,在6 個(gè)項(xiàng)目的32個(gè)版本上進(jìn)行驗(yàn)證實(shí)驗(yàn)并對比了該模型與基分類器的性能,以探究Bagging 異構(gòu)集成模型的有效性。RQ1、RQ2 結(jié)果顯示,最佳分類器因不同代碼異味類型而異,同時(shí)與6 種基分類器相比,Bagging 異構(gòu)集成模型的F1提升了0.45~14.67個(gè)百分點(diǎn),AUC提升了0.76~21.98個(gè)百分點(diǎn),表明Bagging 異構(gòu)集成模型在檢測Complex Class、Long Method、Spaghetti Code上較基分類器有明顯提升。在RQ3 中,Bagging 異構(gòu)集成與Dev1~Dev6 的Kappa 系數(shù)最高達(dá)到0.900,表明將Bagging異構(gòu)集成模型的概率輸出轉(zhuǎn)化為可能性分布并作為重構(gòu)優(yōu)先級具有較高有效性。

    未來的工作包括:(1)設(shè)置模型動態(tài)概率閾值以獲得更合理的結(jié)果。(2)擴(kuò)展檢測的代碼異味種類,以探究Bagging 異構(gòu)集成模型在其他代碼異味上的適用性。(3)增加過程度量,為重構(gòu)優(yōu)先級提供可靠依據(jù)。

    猜你喜歡
    實(shí)驗(yàn)檢測模型
    一半模型
    記一次有趣的實(shí)驗(yàn)
    “不等式”檢測題
    “一元一次不等式”檢測題
    “一元一次不等式組”檢測題
    重要模型『一線三等角』
    重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
    做個(gè)怪怪長實(shí)驗(yàn)
    3D打印中的模型分割與打包
    NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
    99热这里只有精品一区| 精品国产乱码久久久久久小说| 亚洲av福利一区| 黄色毛片三级朝国网站 | 亚洲av二区三区四区| 亚洲精品乱码久久久久久按摩| 七月丁香在线播放| 午夜福利影视在线免费观看| 少妇精品久久久久久久| 高清午夜精品一区二区三区| 成人国产av品久久久| 插阴视频在线观看视频| 日本91视频免费播放| 伊人久久精品亚洲午夜| 亚洲精品,欧美精品| 精品午夜福利在线看| 最后的刺客免费高清国语| 国产无遮挡羞羞视频在线观看| av视频免费观看在线观看| 欧美+日韩+精品| 国产黄色免费在线视频| 18禁在线播放成人免费| 欧美3d第一页| 99re6热这里在线精品视频| 国产极品天堂在线| 人人妻人人添人人爽欧美一区卜| 水蜜桃什么品种好| 日日摸夜夜添夜夜添av毛片| 免费观看a级毛片全部| 99九九线精品视频在线观看视频| 国产中年淑女户外野战色| 大又大粗又爽又黄少妇毛片口| 欧美日韩一区二区视频在线观看视频在线| 黑人高潮一二区| 久久午夜福利片| 精品99又大又爽又粗少妇毛片| 国产在线视频一区二区| 搡女人真爽免费视频火全软件| 国产黄片视频在线免费观看| 老熟女久久久| 夫妻性生交免费视频一级片| 极品人妻少妇av视频| 一二三四中文在线观看免费高清| 美女视频免费永久观看网站| 成人亚洲精品一区在线观看| 99久久精品热视频| 久久国内精品自在自线图片| 久久精品熟女亚洲av麻豆精品| 午夜福利在线观看免费完整高清在| 成人国产av品久久久| 亚洲情色 制服丝袜| 国产中年淑女户外野战色| 人妻 亚洲 视频| 夜夜看夜夜爽夜夜摸| 久久久久久伊人网av| 少妇猛男粗大的猛烈进出视频| 久久久久久久大尺度免费视频| 久久久久久久久久成人| 日韩不卡一区二区三区视频在线| 一本久久精品| 国产欧美日韩精品一区二区| 免费高清在线观看视频在线观看| 国产高清有码在线观看视频| 国产精品蜜桃在线观看| .国产精品久久| 日韩制服骚丝袜av| 在线 av 中文字幕| 久久婷婷青草| 街头女战士在线观看网站| 在线观看国产h片| 三级国产精品片| 亚洲国产精品999| 久久99精品国语久久久| 黄色毛片三级朝国网站 | 午夜激情久久久久久久| 亚洲人与动物交配视频| 久久精品国产亚洲av涩爱| 五月伊人婷婷丁香| 精品国产国语对白av| 日日啪夜夜爽| 亚洲av欧美aⅴ国产| 国产精品三级大全| 性色av一级| 在线播放无遮挡| 欧美精品一区二区免费开放| 亚洲高清免费不卡视频| 精品久久久噜噜| 成人毛片60女人毛片免费| 国产亚洲91精品色在线| 亚洲国产精品成人久久小说| 国产欧美日韩精品一区二区| 亚洲av中文av极速乱| 在线观看国产h片| 免费看av在线观看网站| 黄色配什么色好看| 成人国产av品久久久| 久久久久久人妻| 亚洲经典国产精华液单| 免费久久久久久久精品成人欧美视频 | 国产精品女同一区二区软件| 欧美3d第一页| 波野结衣二区三区在线| 丰满人妻一区二区三区视频av| 免费观看的影片在线观看| 国产日韩欧美在线精品| 国产精品福利在线免费观看| 大片免费播放器 马上看| 乱码一卡2卡4卡精品| 亚洲欧美一区二区三区黑人 | 在线播放无遮挡| 午夜av观看不卡| 亚洲欧美日韩卡通动漫| 亚洲av成人精品一区久久| 纵有疾风起免费观看全集完整版| 国产综合精华液| 一级av片app| h日本视频在线播放| 女人精品久久久久毛片| 最近2019中文字幕mv第一页| 久久久久国产网址| 色吧在线观看| 韩国av在线不卡| 一个人看视频在线观看www免费| 精品久久久久久久久亚洲| 大片免费播放器 马上看| 国产高清三级在线| 国产亚洲5aaaaa淫片| 色视频在线一区二区三区| 自线自在国产av| 在线天堂最新版资源| 一本—道久久a久久精品蜜桃钙片| 一本一本综合久久| 99久久精品一区二区三区| 这个男人来自地球电影免费观看 | 秋霞在线观看毛片| 欧美最新免费一区二区三区| 97在线视频观看| 超碰97精品在线观看| 三级经典国产精品| 国产亚洲午夜精品一区二区久久| 久久久久久久国产电影| 成人毛片60女人毛片免费| 亚洲欧洲精品一区二区精品久久久 | av一本久久久久| 亚洲av综合色区一区| 黄色配什么色好看| 99热国产这里只有精品6| 亚洲婷婷狠狠爱综合网| 中文字幕久久专区| 日日啪夜夜撸| 亚洲国产最新在线播放| 亚洲欧美成人精品一区二区| 亚洲国产精品专区欧美| 一级黄片播放器| 久久鲁丝午夜福利片| www.色视频.com| 在线观看免费高清a一片| 少妇精品久久久久久久| 国产精品偷伦视频观看了| 在线观看免费高清a一片| 国产精品麻豆人妻色哟哟久久| 国内少妇人妻偷人精品xxx网站| 97在线视频观看| 亚洲国产欧美日韩在线播放 | 亚洲,一卡二卡三卡| av在线app专区| 伊人亚洲综合成人网| 人人妻人人添人人爽欧美一区卜| 久久久久久久亚洲中文字幕| 亚洲精品久久久久久婷婷小说| 国产av国产精品国产| 99热这里只有是精品50| 久久99蜜桃精品久久| 嫩草影院入口| 中文资源天堂在线| 一本—道久久a久久精品蜜桃钙片| 久久久久国产精品人妻一区二区| www.av在线官网国产| 久久久久久伊人网av| 在现免费观看毛片| 亚洲精品乱码久久久v下载方式| 国产欧美亚洲国产| 国产亚洲91精品色在线| 熟妇人妻不卡中文字幕| 亚洲一区二区三区欧美精品| 一级毛片我不卡| 国产精品人妻久久久久久| 26uuu在线亚洲综合色| 在现免费观看毛片| 十八禁网站网址无遮挡 | 午夜免费观看性视频| 久久国产乱子免费精品| 水蜜桃什么品种好| 欧美区成人在线视频| 日韩强制内射视频| 国产欧美日韩一区二区三区在线 | 在线天堂最新版资源| 91久久精品国产一区二区三区| 晚上一个人看的免费电影| 尾随美女入室| 人人妻人人澡人人看| 久久午夜福利片| 亚洲国产成人一精品久久久| 大陆偷拍与自拍| 2018国产大陆天天弄谢| 国产精品久久久久久久久免| 日韩av在线免费看完整版不卡| 国产av国产精品国产| 久久国产精品男人的天堂亚洲 | 高清黄色对白视频在线免费看 | 国产精品久久久久久久电影| 国产高清有码在线观看视频| 亚洲丝袜综合中文字幕| 亚洲欧美成人综合另类久久久| 曰老女人黄片| 国产一区二区三区综合在线观看 | 蜜臀久久99精品久久宅男| 少妇猛男粗大的猛烈进出视频| 内地一区二区视频在线| 亚洲精品乱码久久久久久按摩| 男男h啪啪无遮挡| 在线观看免费视频网站a站| 少妇丰满av| 精品人妻熟女av久视频| 高清午夜精品一区二区三区| 中文字幕av电影在线播放| 久久狼人影院| 美女国产视频在线观看| 久热久热在线精品观看| 久久免费观看电影| 我要看黄色一级片免费的| 中国美白少妇内射xxxbb| 日本wwww免费看| 国产黄色视频一区二区在线观看| 黑丝袜美女国产一区| 亚洲精品国产色婷婷电影| 久久精品国产鲁丝片午夜精品| 伊人亚洲综合成人网| 国产成人免费无遮挡视频| 久久精品熟女亚洲av麻豆精品| 只有这里有精品99| 老司机影院成人| 免费大片黄手机在线观看| 日本猛色少妇xxxxx猛交久久| 99热这里只有精品一区| 国产真实伦视频高清在线观看| 在线 av 中文字幕| 插逼视频在线观看| 一级二级三级毛片免费看| 亚洲国产毛片av蜜桃av| 搡女人真爽免费视频火全软件| 国产中年淑女户外野战色| 欧美区成人在线视频| 午夜免费鲁丝| 日韩成人伦理影院| 夫妻午夜视频| 男人添女人高潮全过程视频| 亚洲av男天堂| 久久久久久久国产电影| 日本与韩国留学比较| 男人和女人高潮做爰伦理| 黄色配什么色好看| 色视频在线一区二区三区| 一级毛片aaaaaa免费看小| 日韩不卡一区二区三区视频在线| 久热久热在线精品观看| 蜜臀久久99精品久久宅男| 国产亚洲精品久久久com| 国产成人精品福利久久| 一边亲一边摸免费视频| 水蜜桃什么品种好| 黄色配什么色好看| 久久久久视频综合| 十八禁高潮呻吟视频 | 国产乱人偷精品视频| 中文欧美无线码| 亚洲精品日本国产第一区| 久久久久久久久久久免费av| 最近中文字幕高清免费大全6| 久久久精品免费免费高清| 亚洲国产精品专区欧美| 自线自在国产av| av播播在线观看一区| 久久久久精品性色| 亚洲欧美精品自产自拍| 一本大道久久a久久精品| 欧美日本中文国产一区发布| 成人漫画全彩无遮挡| 夜夜爽夜夜爽视频| 亚洲伊人久久精品综合| 三上悠亚av全集在线观看 | 99热这里只有精品一区| 美女主播在线视频| 久久6这里有精品| 午夜免费男女啪啪视频观看| 亚洲欧洲日产国产| 日韩视频在线欧美| 久久久久视频综合| 又黄又爽又刺激的免费视频.| 成人国产麻豆网| 久久久久国产精品人妻一区二区| 久久久久久久久久久久大奶| a 毛片基地| 国产精品久久久久久久电影| 插阴视频在线观看视频| 美女脱内裤让男人舔精品视频| 黄色毛片三级朝国网站 | 午夜91福利影院| 久久精品国产亚洲av涩爱| 激情五月婷婷亚洲| 久久久精品免费免费高清| 国产精品人妻久久久影院| 高清毛片免费看| 国产熟女午夜一区二区三区 | 欧美老熟妇乱子伦牲交| 亚洲精品国产成人久久av| 一级爰片在线观看| 亚洲av男天堂| av在线app专区| 免费播放大片免费观看视频在线观看| 午夜精品国产一区二区电影| 少妇丰满av| 亚洲精品456在线播放app| 日日啪夜夜撸| 青春草国产在线视频| 22中文网久久字幕| 亚洲欧美中文字幕日韩二区| 亚洲第一区二区三区不卡| 王馨瑶露胸无遮挡在线观看| 亚洲国产日韩一区二区| 久久6这里有精品| 99国产精品免费福利视频| 久久久精品94久久精品| 国产成人午夜福利电影在线观看| 久久ye,这里只有精品| 久久精品熟女亚洲av麻豆精品| 97超视频在线观看视频| tube8黄色片| 日本wwww免费看| 中文字幕免费在线视频6| av播播在线观看一区| 久久人人爽人人片av| 人妻夜夜爽99麻豆av| 春色校园在线视频观看| 制服丝袜香蕉在线| 成年人午夜在线观看视频| 全区人妻精品视频| 免费观看的影片在线观看| 九九在线视频观看精品| 精品卡一卡二卡四卡免费| 久久久久国产网址| 美女福利国产在线| 久久国产精品大桥未久av | av.在线天堂| 色视频在线一区二区三区| 人妻一区二区av| 99九九线精品视频在线观看视频| 欧美老熟妇乱子伦牲交| 黑人猛操日本美女一级片| 国产淫语在线视频| 丰满乱子伦码专区| 国产精品国产av在线观看| 精品久久国产蜜桃| 久久精品国产亚洲av天美| 午夜激情福利司机影院| 国产欧美日韩一区二区三区在线 | 寂寞人妻少妇视频99o| 亚洲av电影在线观看一区二区三区| 久久久久久久久久久丰满| av.在线天堂| 97在线视频观看| 国产精品久久久久久精品古装| 欧美区成人在线视频| 亚洲精品国产成人久久av| 日日啪夜夜爽| 亚洲av国产av综合av卡| 亚洲精品国产av成人精品| 国产又色又爽无遮挡免| 爱豆传媒免费全集在线观看| 99热这里只有精品一区| 国产女主播在线喷水免费视频网站| 久久久久久久精品精品| 黄色欧美视频在线观看| 亚洲天堂av无毛| 女性被躁到高潮视频| 五月开心婷婷网| 一边亲一边摸免费视频| 午夜精品国产一区二区电影| 在线观看av片永久免费下载| 国产免费视频播放在线视频| 少妇的逼水好多| 草草在线视频免费看| 久久久久国产精品人妻一区二区| 精品国产一区二区三区久久久樱花| 人人妻人人添人人爽欧美一区卜| 伊人久久精品亚洲午夜| 久久97久久精品| 伦理电影大哥的女人| 免费观看无遮挡的男女| 黑丝袜美女国产一区| 精品国产国语对白av| 国产有黄有色有爽视频| 在现免费观看毛片| 亚洲精品亚洲一区二区| 国产精品久久久久久精品古装| 日本av免费视频播放| 国产精品伦人一区二区| 最黄视频免费看| 免费黄网站久久成人精品| 看非洲黑人一级黄片| 熟妇人妻不卡中文字幕| 亚洲av男天堂| 免费人成在线观看视频色| 国产精品免费大片| 亚洲无线观看免费| 久久97久久精品| 人人妻人人澡人人爽人人夜夜| 久久午夜福利片| av.在线天堂| 亚洲四区av| 国产成人精品无人区| 曰老女人黄片| 日本与韩国留学比较| 婷婷色av中文字幕| 少妇人妻 视频| 久久精品国产a三级三级三级| av免费在线看不卡| 成人综合一区亚洲| 亚洲av电影在线观看一区二区三区| 国产伦理片在线播放av一区| 国产免费视频播放在线视频| 人体艺术视频欧美日本| 亚洲国产色片| 婷婷色麻豆天堂久久| 成人二区视频| 人人妻人人澡人人看| 老女人水多毛片| 在线观看三级黄色| 91精品一卡2卡3卡4卡| 欧美少妇被猛烈插入视频| 国产毛片在线视频| 国产成人免费无遮挡视频| 精品国产一区二区三区久久久樱花| 一本大道久久a久久精品| 日韩欧美 国产精品| 精品人妻熟女av久视频| 成人黄色视频免费在线看| 亚洲人成网站在线播| 99热网站在线观看| 日韩电影二区| 欧美日韩视频高清一区二区三区二| 99国产精品免费福利视频| 亚洲成人手机| 国产女主播在线喷水免费视频网站| 久久人人爽人人片av| 日本午夜av视频| 亚洲不卡免费看| 爱豆传媒免费全集在线观看| 嫩草影院新地址| 不卡视频在线观看欧美| 国产免费一区二区三区四区乱码| 我的老师免费观看完整版| 国产黄色视频一区二区在线观看| 欧美精品一区二区免费开放| 伊人久久国产一区二区| 亚洲av福利一区| 亚洲欧美成人精品一区二区| 久久6这里有精品| 你懂的网址亚洲精品在线观看| 久久午夜综合久久蜜桃| 精品少妇黑人巨大在线播放| 18禁在线无遮挡免费观看视频| 免费观看在线日韩| 久久人人爽人人片av| 91午夜精品亚洲一区二区三区| 性色av一级| 国内揄拍国产精品人妻在线| 青春草视频在线免费观看| 狂野欧美激情性xxxx在线观看| 亚洲欧美日韩东京热| av国产久精品久网站免费入址| 国产女主播在线喷水免费视频网站| 秋霞在线观看毛片| 成人黄色视频免费在线看| 日日啪夜夜爽| 精品久久国产蜜桃| 国产欧美亚洲国产| 免费观看的影片在线观看| 国产黄色免费在线视频| 午夜精品国产一区二区电影| 国产亚洲91精品色在线| 亚洲无线观看免费| 能在线免费看毛片的网站| 永久免费av网站大全| 韩国高清视频一区二区三区| 精品国产一区二区久久| 精品视频人人做人人爽| 嫩草影院新地址| 美女脱内裤让男人舔精品视频| 日韩 亚洲 欧美在线| 国产午夜精品久久久久久一区二区三区| 99热这里只有精品一区| 欧美精品国产亚洲| 伊人久久精品亚洲午夜| 春色校园在线视频观看| 国产精品偷伦视频观看了| 精品亚洲乱码少妇综合久久| 一级a做视频免费观看| 国产一区二区三区综合在线观看 | 我要看日韩黄色一级片| 岛国毛片在线播放| 老司机亚洲免费影院| 亚洲美女黄色视频免费看| 国产深夜福利视频在线观看| 欧美国产精品一级二级三级 | 2021少妇久久久久久久久久久| 亚洲精品乱码久久久久久按摩| 狠狠精品人妻久久久久久综合| 国产亚洲91精品色在线| 国产精品99久久久久久久久| 免费观看的影片在线观看| 久久久午夜欧美精品| 99久久人妻综合| 2018国产大陆天天弄谢| 岛国毛片在线播放| a 毛片基地| 日本午夜av视频| 国产免费又黄又爽又色| 久久综合国产亚洲精品| 国产av码专区亚洲av| 精品人妻熟女av久视频| 日韩不卡一区二区三区视频在线| 美女中出高潮动态图| 国产高清有码在线观看视频| 国产女主播在线喷水免费视频网站| 免费看av在线观看网站| 亚洲自偷自拍三级| 亚洲性久久影院| 中文字幕精品免费在线观看视频 | 亚洲国产精品一区二区三区在线| 久久精品久久久久久久性| 又大又黄又爽视频免费| 亚洲精品中文字幕在线视频 | 国产 一区精品| 秋霞在线观看毛片| 婷婷色麻豆天堂久久| 51国产日韩欧美| 亚洲av中文av极速乱| 久久人人爽人人片av| 男女边摸边吃奶| 久久久久国产精品人妻一区二区| 91午夜精品亚洲一区二区三区| 亚洲欧美中文字幕日韩二区| 亚洲中文av在线| 人人澡人人妻人| 久久鲁丝午夜福利片| 高清不卡的av网站| 成人亚洲欧美一区二区av| 最近手机中文字幕大全| 寂寞人妻少妇视频99o| 成年人午夜在线观看视频| 亚洲精品乱码久久久久久按摩| 久久人人爽人人片av| 国产精品无大码| 免费黄网站久久成人精品| 菩萨蛮人人尽说江南好唐韦庄| 国产亚洲av片在线观看秒播厂| 亚洲精品色激情综合| 99久久精品一区二区三区| 欧美少妇被猛烈插入视频| 久久久久久久久久久免费av| 99热6这里只有精品| 草草在线视频免费看| 91精品一卡2卡3卡4卡| 中文字幕精品免费在线观看视频 | 伊人亚洲综合成人网| 亚洲人成网站在线播| 国产亚洲欧美精品永久| 三级经典国产精品| 午夜激情福利司机影院| 一级毛片 在线播放| 欧美人与善性xxx| 日韩免费高清中文字幕av| 国产真实伦视频高清在线观看| 成人美女网站在线观看视频| 啦啦啦中文免费视频观看日本| 国产永久视频网站| 久久精品国产a三级三级三级| 国产日韩一区二区三区精品不卡 | 婷婷色麻豆天堂久久| 新久久久久国产一级毛片| 午夜免费鲁丝| 国产女主播在线喷水免费视频网站| 高清毛片免费看| 成人影院久久| 国产免费福利视频在线观看| 精品99又大又爽又粗少妇毛片| 97在线视频观看| 国产熟女欧美一区二区| 国产精品久久久久久精品古装| 精品久久久久久久久av| 大陆偷拍与自拍| 妹子高潮喷水视频| 日本猛色少妇xxxxx猛交久久| 久久久久久久久久人人人人人人| 少妇熟女欧美另类| 777米奇影视久久| 大香蕉久久网| a级毛色黄片| 2018国产大陆天天弄谢| 成人亚洲精品一区在线观看| 在线观看www视频免费| 欧美精品国产亚洲| 老司机影院毛片| 91精品国产九色|