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

    基于決策樹推薦克隆重構(gòu)的方法

    2018-08-27 10:59:12折蓉蓉張麗萍
    計算機應(yīng)用 2018年7期
    關(guān)鍵詞:決策樹實例分類器

    折蓉蓉,張麗萍,侯 敏,閆 盛

    (內(nèi)蒙古師范大學 計算機與信息工程學院,呼和浩特 010022)(*通信作者電子郵箱cieczlp@imnu.edu.cn)

    0 引言

    近年來軟件開發(fā)環(huán)境、操作系統(tǒng)及軟件相關(guān)領(lǐng)域的不斷發(fā)展,導(dǎo)致軟件復(fù)用的規(guī)模越來越大,軟件開發(fā)的成果被越來越多的人們直接復(fù)用。為了提高軟件的開發(fā)效率,開發(fā)人員會復(fù)用大量的代碼,被復(fù)用的代碼稱為克隆代碼[1],據(jù)統(tǒng)計一個軟件系統(tǒng)中的克隆代碼達到9%~17%,有的甚至達到50%以上[2]。

    克隆代碼的大量使用導(dǎo)致了軟件復(fù)雜性的增加,僅僅檢測出克隆代碼并不能降低軟件維護成本?,F(xiàn)有研究表明,重構(gòu)與軟件的質(zhì)量(如可維護性和穩(wěn)定性)有著密切的聯(lián)系,經(jīng)過重構(gòu)的克隆代碼往往比未經(jīng)過重構(gòu)的克隆代碼具有更高的質(zhì)量,所以重構(gòu)對于軟件的進化具有積極的意義。

    重構(gòu)軟件系統(tǒng)中克隆所有代碼是不切實際的,也不是所有克隆代碼都需要重構(gòu),雖然預(yù)測克隆重構(gòu)代碼的方法相繼提出,然而國內(nèi)外針對機器學習預(yù)測出需要重構(gòu)的克隆代碼的方法極少,因此本文將重構(gòu)作為一個機器學習問題,預(yù)測需要重構(gòu)的克隆代碼,以降低軟件的復(fù)雜性和維護成本。

    1 相關(guān)工作

    1.1 克隆代碼定義及分類

    當前,人們廣泛采用的克隆代碼的概念是將具有相似語法及語義特征的代碼段稱為克隆代碼[3]?;趯Υa質(zhì)量造成重要影響的是克隆代碼的大量使用,近年來代碼分析領(lǐng)域中比較活躍的分支為克隆代碼的相關(guān)研究??寺〈a的類型從不同的角度進行劃分,當前進行分類的角度主要分為兩種。一種角度是根據(jù)代碼相似度,將其分成Type- 1、Type- 2、Type- 3及Type- 4四類[4](定義如表1);另一種角度是根據(jù)檢測粒度,將其分成文件克隆、類克隆、函數(shù)克隆、塊克隆以及語句克隆等五種類型[5]。

    表1 克隆類型的定義

    1.2 克隆檢測

    克隆檢測是指查找源代碼中的克隆代碼,并以克隆對(Clone Pair)或克隆群(Clone Group)的形式反饋。其中,克隆對是指相互之間存在克隆關(guān)系的代碼段;克隆群是一些克隆代碼段的集合,其中任意兩個代碼段都是克隆對。目前,克隆檢測領(lǐng)域的研究已較為成熟,許多檢測方法及技術(shù)被提出,主要包括:基于文本的克隆檢測方法[6]、基于Token的克隆檢測方法[7]、基于抽象語法樹(Abstract Syntax Tree, AST)的檢測方法[8]、程序依賴圖(Program Dependence Graph, PDG)[9]、基于低級語言[10]的檢測方法、基于Metrics[11]的檢測方法等。

    本團隊在克隆檢測方面也進行了大量研究:史慶慶等[12]使用優(yōu)化后綴數(shù)組的方法進行克隆代碼檢測,并實現(xiàn)了一款檢測軟件源代碼中克隆群的工具——FCD(Function Clone Detector)。FCD能夠把軟件系統(tǒng)中的Type- 1和Type- 2函數(shù)克隆高效地檢測出來;張久杰等[13]實現(xiàn)了基于Token編輯距離的檢測方法,能有效檢測Type- 3克隆代碼,解決了克隆檢測中Type- 3類型克隆檢測的難題,解決了以往對克隆代碼分析的研究對象大多局限于Type- 1和Type- 2類型的問題,并為后續(xù)研究克隆代碼的演化、克隆代碼性能分析提供更加全面、準確的數(shù)據(jù)來源。

    1.3 克隆重構(gòu)

    重構(gòu)的概念由Opdyke[14]提出,重構(gòu)就是通過改變程序代碼的內(nèi)部結(jié)構(gòu)而不改變程序代碼的外部行為來提高代碼的質(zhì)量,尤其是代碼的可擴展性與可維護性。多年來軟件重構(gòu)作為提高代碼質(zhì)量的有效途徑,已成為軟件工程領(lǐng)域的熱點問題。出現(xiàn)了許多針對不同類型的克隆代碼的重構(gòu)方法和技術(shù),主要包括:Bakota[15]采用進化分析方法提取可重構(gòu)的克隆代碼;Rahman等[16]用度量提取可重構(gòu)的克隆代碼。Fowler[17]提出兩種重構(gòu)方法:提煉函數(shù)(Extract Method)和函數(shù)上移(Pull Up Method),這兩種方法是重構(gòu)克隆代碼常用的技術(shù),通常重構(gòu)克隆代碼需要結(jié)合使用這兩種方法,首先執(zhí)行“提煉函數(shù)”,然后執(zhí)行“函數(shù)上移”。克隆代碼重構(gòu)可以提高代碼的可維護性。

    以Apache Ant中的一小段代碼為例來理解克隆重構(gòu)。Apache Ant的r436724中的克隆代碼重構(gòu)細節(jié)如圖1所示,開發(fā)人員在維護日志提交內(nèi)容中有如下表述:“重構(gòu)DirectoryScanner來減少重復(fù)的代碼,測試全部通過”。源代碼的更改確認了重構(gòu)DirectoryScanner中的克隆兄弟姐妹:分散在兩個方法中的克隆兄弟姐妹被提取到一個名為processIncluded的新方法中,并且這兩個方法調(diào)用新的方法來保存程序的外部行為。這就是重構(gòu)克隆代碼的一個實例。

    圖1 克隆重構(gòu)實例

    1.4 決策樹

    決策樹又稱判定樹,是一種運用于分類的樹形結(jié)構(gòu),構(gòu)造決策樹采用的是一種自上而下的遞歸方法。將一組帶有類別標記的訓(xùn)練數(shù)據(jù)作為決策樹的輸入,一棵二叉樹或者多叉樹作為輸出,以下兩步主要是決策樹的分類過程。

    第1步 構(gòu)建決策樹模型,此過程就是進行機器學習的過程。從數(shù)據(jù)中獲取知識,使用訓(xùn)練集建立模型同時優(yōu)化。

    第2步 進行分類,使用生成的決策樹對輸入數(shù)據(jù)進行分類。對輸入的記錄,從根節(jié)點依次測試記錄的屬性值,直到到達某個葉節(jié)點,從而找到該記錄所在的類。

    尤為關(guān)鍵的是構(gòu)造一棵決策樹,構(gòu)造決策樹的過程分為三步:1)特征選擇;2)生成決策樹;3)剪枝。

    具體原理如下:

    InfoGain(D,A)=H(D)-H(D|A)

    (1)

    (2)

    (3)

    其中:D代表整個訓(xùn)練樣本;訓(xùn)練樣本有k類;A代表特征,A將訓(xùn)練樣本分為n類;Pi為數(shù)據(jù)集中第i個類別占樣本總數(shù)的比例,Pji為j個剪枝數(shù)目中第i個類別所占比例。

    決策樹相對于其他分類器而言有如下優(yōu)點。

    1)速度快:不僅計算量小,而且分類規(guī)則轉(zhuǎn)化較容易。

    2)準確性高:挖掘出的內(nèi)容不僅可以清晰地反映出哪些字段比較重要,而且分類規(guī)則精準性較高、便于理解。

    2 基于決策樹推薦克隆重構(gòu)的方法

    本文提出的基于分類器推薦克隆代碼重構(gòu)的方法共分為5個步驟,如圖2所示。

    圖2 整體工作流程

    2.1 克隆檢測

    如果不知道哪些代碼片段是克隆代碼、克隆代碼所在的位置,也無法識別重構(gòu)代碼,解決克隆代碼引起的問題,克隆代碼檢測是研究克隆重構(gòu)的基礎(chǔ),因此本研究使用目前比較成熟的克隆檢測工具——NiCad進行克隆檢測。NiCad檢測工具是由加拿大皇后大學Roy等[6]開發(fā)的克隆檢測工具,當前最新版本為NiCad 4.0,適用于C、Java、Python等主流開發(fā)語言,能夠檢測Type- 1、Type- 2、Type- 3的克隆代碼。由于它能有效檢測Type- 3克隆代碼,解決了以往對克隆代碼分析的研究對象大多局限于Type- 1和Type- 2類型的難題,并為后續(xù)研究克隆代碼的重構(gòu)、克隆代碼性能分析提供更加全面、準確的數(shù)據(jù)來源。

    本研究使用subversion從版本管理器中獲取某次提交之后的結(jié)果作為一個版本的源碼,然后使用NiCad進行克隆檢測,該工具可以檢測Java語言的Type- 1、Type- 2與Type- 3函數(shù)克隆,并具有很高的精度值和召回率。檢測結(jié)果以克隆對、克隆群和克隆函數(shù)的形式反饋出來,本研究只用克隆函數(shù)、克隆群形式的檢測結(jié)果,檢測結(jié)果存儲到XML文件中。下面以Tomcat軟件為例,介紹克隆檢測結(jié)果。圖3呈現(xiàn)了以克隆函數(shù)形式反饋出來的部分內(nèi)容檢測結(jié)果,它顯示的是一個代碼片段的文件,提供每一個代碼片段的文件路徑、起始行號、結(jié)束行號、片段源碼等信息。圖4呈現(xiàn)了以克隆群形式反饋出來的部分檢測結(jié)果,它是克隆群文件,克隆群包含的克隆片段、檢測出來的克隆群信息都包含在里面。

    2.2 識別重構(gòu)的克隆代碼

    近年來隨著克隆代碼檢測技術(shù)日益成熟,克隆代碼的重構(gòu)也逐漸成為了熱門,在對軟件系統(tǒng)中克隆代碼重構(gòu)之前,識別出需要重構(gòu)的集合是非常重要的。本文識別克隆代碼重構(gòu)實例具體過程分為如下3個步驟。

    圖3 部分檢測結(jié)果(克隆函數(shù))

    圖4 部分檢測結(jié)果(克隆群)

    步驟1 通過相鄰版本間定義重構(gòu)實例??寺≈貥?gòu)簡單來說就是代碼的更改,即定義克隆類C為由兩個或更多個克隆片段組成的集合。一個克隆類C至少有兩個克隆片段被合并,并且保留原始代碼段的外部行為,超過兩個克隆片段的克隆類C,則C被認為是克隆重構(gòu),如果任何兩個克隆片段被重構(gòu),則為重構(gòu)實例。

    步驟2 生成重構(gòu)候選集。本實驗選擇了5個著名的開源系統(tǒng),Tomcat、ArgoUML、PostgreSQL、Lucene、Apache Ant,收集了這些系統(tǒng)的所有公開版本,要在所選目標系統(tǒng)中識別克隆重構(gòu)實例,用Demeyer等[18]開發(fā)的度量工具Moose Metrics從源代碼中提取類、方法、屬性、計算必要的度量來生產(chǎn)重構(gòu)候選集。

    步驟3 優(yōu)化重構(gòu)候選集。生成重構(gòu)候選集之后,依據(jù)以下3個條件對重構(gòu)候選集進一步篩選和優(yōu)化:

    1)相鄰版本間克隆類的兩個兄妹消失;

    2)對于克隆代碼片段內(nèi)的方法,源代碼行數(shù)減少,并且至少一種方法被添加進此方法中;

    3)一個原始克隆代碼中新的源類被創(chuàng)建并作為父類。

    選擇這3個條件是因為它們包含了所有與克隆重構(gòu)有關(guān)的重構(gòu)模式。通過使用這種基于度量值的方法,手動檢查克隆克隆重構(gòu)候選者,據(jù)Demeyer等[18]使用發(fā)現(xiàn),這種方法可以檢測到適用于克隆重構(gòu)的所有Fowler重構(gòu)模式,包括“Extract Method”“Extract Superclass”“Pull-Up Method”“Replace Method with Method Object”“Template Method”等方法。

    若滿足其中任意一個條件則一個克隆類C被當作候選,重構(gòu)實例如表2所示。

    表2 識別克隆重構(gòu)實例

    為了構(gòu)成完整的分類器訓(xùn)練數(shù)據(jù)集合,還需要收集非克隆重構(gòu)實例。非克隆重構(gòu)實例的收集則比較簡單,只需觀察從克隆開始版本到本研究中的最后一個版本,選擇沒有任何重構(gòu)的克隆代碼(包括重命名標識符),則為非克隆重構(gòu)實例。

    2.3 特征提取

    特征提取是機器學習和模式識別領(lǐng)域常用的數(shù)據(jù)預(yù)處理方式,是訓(xùn)練機器學習模型的必要步驟,Wang[19]提出了使用克隆代碼的危害性可能與克隆代碼段的特征以及克隆內(nèi)容的特征有關(guān),并在兩個大型工業(yè)軟件上進行了評估。Steidl等[20]用克隆代碼段、克隆關(guān)系的特征來自動識別克隆代碼的bugfixes,并進行了驗證。本團隊王歡等[21]針對克隆代碼有害性特征數(shù)量多且不容易提取、質(zhì)量粗糙的情況,提出了一種有害性特征選取的組合模型?;谝陨涎芯康贸鯰ype- 3的克隆、克隆代碼的圈復(fù)雜度、克隆代碼段的行數(shù)、分支語句的比例等特征與克隆代碼的有害性和重構(gòu)相關(guān),因此本文從克隆關(guān)系、克隆代碼段及克隆內(nèi)容這3個維度中提取特征,詳細特征信息如表3所示。

    特征的提取是建立在克隆代碼檢測和重構(gòu)標注的基礎(chǔ)上,通過分析克隆檢測結(jié)果可以為本文研究基礎(chǔ)性的克隆代碼數(shù)據(jù),包括克隆代碼的數(shù)量、位置等數(shù)據(jù)??寺∪菏遣皇荰ype- 3的克隆、克隆代碼段的Token大小這兩個特征直接從NiCad克隆檢測結(jié)果中提取,對于其他特征本文使用代碼工具SourceMonitor提取。SourceMonitor是一款可對多種語言(C++、C、C#、VB.net、Java、Visual、Basic和HTML)編寫的代碼進行度量的工具,并且針對不同的語言,輸出不同的代碼度量值。將克隆代碼作為輸入,SourceMonitor便會輸出相應(yīng)克隆代碼的靜態(tài)特征值。圖5是SourceMonitor對部分克隆代碼進行度量的結(jié)果。代碼行數(shù)是從SourceMonitor工具的標簽獲取,圈復(fù)雜度是從SourceMonitor工具的標簽獲取,注釋比例從SourceMonitor工具的<%Comments>標簽獲取,其他特征都是從SourceMonitor工具中的標簽獲??;但是對于特征11(一個克隆代碼段是否包含完整的控制塊)需要手動提取。

    2.4 訓(xùn)練決策樹分類器

    決策樹方法在分類、預(yù)測等領(lǐng)域有著廣泛的應(yīng)用,C4.5是比較成熟的決策樹算法,C4.5算法是決策樹分類問題中必不可少的挖掘工具。之所以選擇C4.5是因為它產(chǎn)生的預(yù)測準確性不低于其他的分類方法。哈爾濱工業(yè)大學袁悅[22]使用機器多種學習的方法來預(yù)測克隆代碼的一致性維護需求模型,經(jīng)實驗發(fā)現(xiàn)決策樹的預(yù)測模型最佳,Wang等[23]用決策樹預(yù)測克隆代碼的質(zhì)量且取得良好的效果。受此啟發(fā)本研究選用決策樹來預(yù)測需要重構(gòu)的克隆代碼。

    表3 特征選擇

    構(gòu)造一棵決策樹的步驟如下。

    1)數(shù)據(jù)預(yù)處理:將屬性變量處理形成決策樹的訓(xùn)練集,這里只需處理連續(xù)型的屬性變量,若沒有連續(xù)型的屬性變量則忽略。

    2)計算屬性的信息增益率。

    3)生成決策樹:每一個根節(jié)點屬性的取值對應(yīng)一個子集,對樣本子集遞歸執(zhí)行步驟2),直到分類屬性上取值都相同時生成決策樹。

    4)對新數(shù)據(jù)集進行分類:根據(jù)構(gòu)造的決策樹,提取分類規(guī)則且進行分類。

    算法描述如下。

    輸入:訓(xùn)練樣本samples,候選屬性的集合attributelist。

    輸出:一棵決策樹。

    創(chuàng)建節(jié)點N

    ifsamples都在同一個類Cthen

    returnN作為葉節(jié)點,以類C標記

    ifattribute_list為空then

    returnN作為葉節(jié)點,標記為samples中最普通的類

    選擇attribute_list中具有最高信息增益的屬性best_attribute

    標記節(jié)點N為best_attribute

    for eachbest_attribute中的未知值ai

    由節(jié)點N長出一個條件為best_attribute=ai的分枝

    設(shè)si是samples中best_attribute=ai的樣本的集合

    ifsi為空then

    加入一個樹葉,標記為samples中最普通的類

    else 加上一個由Generate_decision_tree返回的節(jié)點

    圖5 部分克隆代碼度量結(jié)果

    訓(xùn)練分類器,需要一個包含克隆重構(gòu)實例和非克隆重構(gòu)實例的樣本數(shù)據(jù)庫,然而未經(jīng)重構(gòu)的克隆實例通常比重構(gòu)實例多出幾倍,訓(xùn)練所有克隆實例將會在構(gòu)造分類器時引入對未克隆重構(gòu)的偏奇。為了解決這個問題,使用隨機欠采樣來減小未重構(gòu)克隆的大小。隨機欠采樣簡單來說就是從原始數(shù)據(jù)集中刪除數(shù)據(jù),從而提供相同比例的數(shù)據(jù)。具體來說,本文隨機選擇一組Dmaj中的多數(shù)類實例,并從D中刪除這些樣本,計算過程如下:

    |D|=|Dmin|+|Dmaj|-|E|

    (4)

    其中:D是數(shù)據(jù)集;Dmin表示少數(shù)類數(shù)據(jù)的集合,在本實驗中就是克隆重構(gòu)實例;Dmaj表示多數(shù)類數(shù)據(jù)的集合,在本實驗中就是非克隆重構(gòu)實例;E表示D上采樣過程中產(chǎn)生的任何集合。

    2.5 評估分類結(jié)果

    在對未知數(shù)據(jù)樣本進行預(yù)測時,部分被正確分類,部分被錯誤分類,因此,為了評價克隆代碼重構(gòu)預(yù)測模型,本研究選用常用的召回率、精度值、F值來評價分類器的性能,對應(yīng)的混合矩陣如表4所示。表4中:正確的正例(True Positive, TP)用TP來表示;錯誤的反例(False Negative, FN)用FN來表示;錯誤的正例(False Positive, FP)用FP來表示;正確的反例(True Negative, TN)用TN來表示。

    表4 混合矩陣

    精度值(Precision)的定義如式(5)所示、召回率(Recall)的定義如式(6)所示、F值的定義如式(7)所示:

    Precision=TP/(TP+FP)

    (5)

    Recall=TP/(TP+FN)

    (6)

    F=(2*Precision*Recall)/(Precision+Recall)

    (7)

    其中:精度值是分類問題中常用的指標,它反映分類器對數(shù)據(jù)集的整體分類性能;召回率度量分類器正確預(yù)測克隆重構(gòu)的比例。

    3 實驗結(jié)果與分析

    3.1 實驗?zāi)繕塑浖?/h3>

    本實驗選取5款開源軟件分別是:Tomcat 7.0、Apache Ant、ArgoUML、Lucene、PostgreSQL,基本信息如表5所示。本研究之所以選擇這些系統(tǒng)不僅僅是這些系統(tǒng)比較龐大,而且這幾個系統(tǒng)已經(jīng)通過趙玉武等[24]在克隆代碼Bugs的研究中進行了實驗。

    表5 實驗軟件基本信息

    3.2 實驗結(jié)果

    由于位于決策樹根部附近的特征不能代表其預(yù)測能力,因此選擇不同的特征子集,并使用每個子集來訓(xùn)練一個新的分類器。本實驗選擇三個子集的特征。這三個子集分別是克隆關(guān)系、克隆內(nèi)容以及克隆代碼段。

    實驗結(jié)果如表6所示(使用子集對克隆重構(gòu)組、非重構(gòu)組進行分類訓(xùn)練的性能),從表6中可以得出如下結(jié)論。

    1)在5個目標系統(tǒng)中,沒有一個特征子集的性能始終優(yōu)于其他子集。

    2)和所有特征訓(xùn)練的分類器相比,克隆代碼片段的特征可以產(chǎn)生最接近的結(jié)果。如重構(gòu)組ArgoUML目標系統(tǒng)中所有特征訓(xùn)練分類器的精度值為0.813、召回率為0.785,與此最相近的是受過克隆上下文訓(xùn)練分類器的精度值為0.798、召回率為0.779。其他目標系統(tǒng)也是如此。

    3)與克隆上下文相關(guān)的特征產(chǎn)生的結(jié)果略低于受過所有特征訓(xùn)練的分類器。如重構(gòu)組ArgoUML目標系統(tǒng)中所有特征訓(xùn)練分類器的精度值為0.813、召回率為0.785。受過克隆上下文訓(xùn)練分類器的精度值為0.751、召回率為0.732,略低于所有特征訓(xùn)練的分類器。其他目標系統(tǒng)也是如此。

    4)通過學習克隆關(guān)系的特征,例如特征3(克隆類是否是一個Type- 3克隆),或者特征4(克隆片段是否在同一個文件中,或者是兄妹姐妹),分類器的性能獲得一小部分的改進。如重構(gòu)組ArgoUML目標系統(tǒng)中所有特征訓(xùn)練分類器的精度值為0.813、召回率為0.785,受過克隆關(guān)系訓(xùn)練分類器的精度值為0.635、召回率為0.801,略低于所有特征訓(xùn)練的分類器。其他目標系統(tǒng)也是如此。

    基于以上結(jié)論,得出克隆代碼段的特性獨立于克隆關(guān)系及克隆內(nèi)容,產(chǎn)生的結(jié)果可用于推薦重構(gòu)的克隆代碼。

    表6 使用子集對不同組進行分類訓(xùn)練的性能對比

    本實驗選取K折交叉驗證來評估驗證,此方法的基本思想是將輸入數(shù)據(jù)集劃分為訓(xùn)練集和測試集,因為測試集和訓(xùn)練集中測試集對分類器是不可見的,所以進行交叉驗證的對象是訓(xùn)練集輸出的結(jié)果。

    第1步 將數(shù)據(jù)集D劃分為k個大小相似的互斥子集,即D=D1∩D2∩D3∩…∩Dk,每個子集之間沒有交集。

    第2步 然后每次用k-1個子集的并集作為訓(xùn)練集,余下的那個作為測試集,這樣得到k組訓(xùn)練/測試集。

    第3步 可以進行k次訓(xùn)練和測試,最終返回的是這k個結(jié)果的均值。

    第4步 可以隨機使用不同的劃分次數(shù)。

    本實驗選取K=10,即K折交叉驗證來評估分類器預(yù)測模型,通過利用大量數(shù)據(jù)集以及使用不同技術(shù)進行大量實驗發(fā)現(xiàn)10折獲得的誤差最小,因此本實驗將數(shù)據(jù)集分為10份。驗證結(jié)果如表7所示,分別顯示了重構(gòu)組和非重構(gòu)組的精度值、召回度、F度量。

    表7 對不同組的測試結(jié)果對比

    從表7的重構(gòu)組對比可以得出,重構(gòu)組10倍交叉驗證的精度值從78.3%提高到了87.9%,提高了9.6個百分點;召回率從74.7%提高到了91.3%,提高了16.6個百分點;F值從76.5%提高到了89.6%,提高了13.1個百分點。從表7的非重構(gòu)組對比中可以得出,非重構(gòu)組10倍交叉驗證的精度值從77.3%提高到了90.3%,提高了13個百分點;召回率從81.2%提高到了87.1%,提高了5.9個百分點;F值從78.9%提高到了88.9%,提高了10個百分點:因此得出本文所構(gòu)造的分類器比隨機選擇執(zhí)行來的效果更佳。

    3.3 同類實驗對比分析

    當前國內(nèi)外使用機器學習的方法預(yù)測出需要重構(gòu)的克隆代碼方法較少,本團隊的劉冬瑞等[25]也曾使用機器學習方法預(yù)測需重構(gòu)的克隆代碼,然而其度量值的選取是根據(jù)ISO軟件質(zhì)量標準選取的,不能很好地體現(xiàn)需重構(gòu)克隆代碼的特征,而本研究度量值的選取是從重構(gòu)實例中提取的,相對而言,可信度更好,可行性更強。使用機器學習方法預(yù)測出需要重構(gòu)的克隆代碼具有代表性的是文獻[26]所提出的方法,鑒于文獻[26]直接從公司收集的克隆代碼,而本研究使用NiCad來檢測克隆代碼,同時本研究與文獻[26]提取的特征也不完全一致,因此僅對推薦克隆重構(gòu)做對比實驗。其中本文研究與文獻[26]所使用的項目均為Java項目,實驗平臺同為操作系統(tǒng):Ubuntu14.04 64位、8 GB內(nèi)存、2核CPU。版本信息如表8所示。

    表8 推薦克隆重構(gòu)對比實驗軟件信息

    通過對比實驗,結(jié)果如表9所示。

    表9 推薦克隆重構(gòu)同類實驗結(jié)果對比

    從推薦克隆重構(gòu)結(jié)果中分析軟件ArgoUML的精度值、召回率和F值,與文獻[26]的方法相比,本文方法的精度值提高了10個百分點、召回率提高了10個百分點、F值提高了9.8個百分點。從推薦克隆重構(gòu)結(jié)果中分析軟件Apache Ant的精度值、召回率和F值,與文獻[26]的方法相比,本文方法的精度值提高了10個百分點、召回率提高了6個百分點、F值提高了3.3個百分點。從推薦克隆重構(gòu)結(jié)果中分析軟件Lucene的精度值、召回率和F值,與文獻[26]的方法相比,本文方法的精度值提高了4.5個百分點、召回率提高了9.6個百分點、F值提高了2.4個百分點。綜上本文推薦克隆代碼重構(gòu)方法的召回率、精度值、F值均高于文獻[26]方法。

    4 結(jié)語

    針對克隆代碼的大量使用會導(dǎo)致長期軟件維護問題甚至引入錯誤的問題,本文提出了一種基于決策樹的分類器來推薦克隆進行重構(gòu)的方法,通過Nicad檢測出源代碼中的克隆代碼,使用基于度量值的方法將重構(gòu)實例標注出來,同時使用SourceMonitor提取出特征并構(gòu)建樣本數(shù)據(jù)集。最后對600多個克隆實例使用10折交叉來驗證,發(fā)現(xiàn)本文提出的基于決策樹的分類器來推薦克隆重構(gòu)方法的精確度、召回率及F值都能達到80%以上,驗證了本文方法的有效性。本研究可以為克隆重構(gòu)提供更好的資源分配,從而改進克隆管理。

    本文的研究內(nèi)容與實驗仍然存在一些不足之處,例如目前只能推薦用Java開發(fā)項目的克隆重構(gòu)、推薦克隆重構(gòu)精度有待提高,在后續(xù)研究中將繼續(xù)改進,嘗試使用深度學習、半監(jiān)督學習來推薦克隆重構(gòu)。

    猜你喜歡
    決策樹實例分類器
    一種針對不均衡數(shù)據(jù)集的SVM決策樹算法
    決策樹和隨機森林方法在管理決策中的應(yīng)用
    電子制作(2018年16期)2018-09-26 03:27:06
    BP-GA光照分類器在車道線識別中的應(yīng)用
    電子測試(2018年1期)2018-04-18 11:52:35
    加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
    結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
    基于決策樹的出租車乘客出行目的識別
    基于肺癌CT的決策樹模型在肺癌診斷中的應(yīng)用
    完形填空Ⅱ
    完形填空Ⅰ
    基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
    少妇裸体淫交视频免费看高清 | 1024视频免费在线观看| 可以在线观看的亚洲视频| 性欧美人与动物交配| 亚洲在线自拍视频| 黄色成人免费大全| 99国产极品粉嫩在线观看| 精品乱码久久久久久99久播| 麻豆av在线久日| 国产成人欧美在线观看| 一本综合久久免费| 国产亚洲精品第一综合不卡| 老汉色av国产亚洲站长工具| 免费搜索国产男女视频| 免费在线观看亚洲国产| 真人做人爱边吃奶动态| 国产视频一区二区在线看| 国产成人系列免费观看| 日韩欧美免费精品| 欧美色视频一区免费| 多毛熟女@视频| 中文字幕精品免费在线观看视频| 涩涩av久久男人的天堂| 久久久国产精品麻豆| 亚洲人成电影观看| 午夜久久久久精精品| 国产精品国产高清国产av| 人人妻,人人澡人人爽秒播| 亚洲激情在线av| 国产高清有码在线观看视频 | 欧美日本中文国产一区发布| 成人手机av| 欧美日韩亚洲国产一区二区在线观看| 亚洲国产精品合色在线| 国产真人三级小视频在线观看| 一个人免费在线观看的高清视频| 热99re8久久精品国产| 亚洲情色 制服丝袜| 午夜激情av网站| 色在线成人网| 日本免费a在线| 黄色片一级片一级黄色片| xxx96com| 国产99白浆流出| 亚洲精品久久成人aⅴ小说| 极品教师在线免费播放| 亚洲一区高清亚洲精品| 欧美绝顶高潮抽搐喷水| 村上凉子中文字幕在线| 免费看美女性在线毛片视频| 女人被狂操c到高潮| 亚洲av成人一区二区三| 涩涩av久久男人的天堂| 精品免费久久久久久久清纯| 老司机福利观看| 热re99久久国产66热| 免费在线观看影片大全网站| 国产黄a三级三级三级人| 十八禁人妻一区二区| 欧美中文综合在线视频| 女同久久另类99精品国产91| 国产精品免费一区二区三区在线| 久久性视频一级片| 啦啦啦观看免费观看视频高清 | 免费在线观看黄色视频的| 两个人看的免费小视频| 999精品在线视频| 1024香蕉在线观看| 久久九九热精品免费| 久久久久精品国产欧美久久久| 成年版毛片免费区| 丰满的人妻完整版| 午夜福利视频1000在线观看 | 欧美激情极品国产一区二区三区| 黄色片一级片一级黄色片| 国产激情欧美一区二区| 自线自在国产av| 欧美日本中文国产一区发布| 国产精品秋霞免费鲁丝片| 免费在线观看日本一区| 18禁观看日本| 俄罗斯特黄特色一大片| 中出人妻视频一区二区| 激情在线观看视频在线高清| 日韩欧美一区二区三区在线观看| 在线观看免费日韩欧美大片| 精品国内亚洲2022精品成人| 91字幕亚洲| 亚洲精品美女久久久久99蜜臀| 嫁个100分男人电影在线观看| bbb黄色大片| 欧美丝袜亚洲另类 | 91成人精品电影| av在线播放免费不卡| 久久精品aⅴ一区二区三区四区| 一进一出好大好爽视频| 亚洲精品国产精品久久久不卡| 一夜夜www| 久久久久久久精品吃奶| a在线观看视频网站| 欧美成狂野欧美在线观看| 老司机午夜十八禁免费视频| a在线观看视频网站| 一区二区三区精品91| 大码成人一级视频| 中文字幕久久专区| 国产av一区在线观看免费| 9色porny在线观看| 亚洲一区二区三区不卡视频| 亚洲va日本ⅴa欧美va伊人久久| 手机成人av网站| 在线观看舔阴道视频| 在线观看免费视频日本深夜| 91成人精品电影| 琪琪午夜伦伦电影理论片6080| 两个人视频免费观看高清| 亚洲精品久久国产高清桃花| 亚洲一卡2卡3卡4卡5卡精品中文| 黄色片一级片一级黄色片| 色综合欧美亚洲国产小说| 亚洲国产精品久久男人天堂| 国产aⅴ精品一区二区三区波| 香蕉久久夜色| av免费在线观看网站| 乱人伦中国视频| 啦啦啦免费观看视频1| 91精品三级在线观看| 中文字幕另类日韩欧美亚洲嫩草| 18美女黄网站色大片免费观看| 国产精品美女特级片免费视频播放器 | 91成年电影在线观看| 精品无人区乱码1区二区| 精品卡一卡二卡四卡免费| 国产野战对白在线观看| 亚洲人成77777在线视频| 精品一区二区三区四区五区乱码| 国产伦一二天堂av在线观看| 色综合亚洲欧美另类图片| 禁无遮挡网站| 国产熟女xx| 精品久久久久久,| 久久精品国产亚洲av高清一级| 老司机福利观看| 黄色成人免费大全| 久久香蕉国产精品| 精品久久蜜臀av无| 日韩中文字幕欧美一区二区| 叶爱在线成人免费视频播放| 成人三级做爰电影| 精品国产亚洲在线| 大陆偷拍与自拍| 可以免费在线观看a视频的电影网站| 777久久人妻少妇嫩草av网站| 免费在线观看完整版高清| 国产熟女午夜一区二区三区| 国产精品乱码一区二三区的特点 | 人妻丰满熟妇av一区二区三区| 伊人久久大香线蕉亚洲五| 欧美激情高清一区二区三区| 最近最新中文字幕大全电影3 | 亚洲伊人色综图| 精品免费久久久久久久清纯| 午夜久久久久精精品| 欧美一区二区精品小视频在线| 日韩视频一区二区在线观看| 亚洲精品国产一区二区精华液| 黑人巨大精品欧美一区二区mp4| 黄色视频不卡| www.精华液| 不卡一级毛片| 满18在线观看网站| 国内精品久久久久精免费| 午夜免费成人在线视频| 桃红色精品国产亚洲av| 国产亚洲精品一区二区www| 一a级毛片在线观看| 亚洲成av人片免费观看| 亚洲自偷自拍图片 自拍| 国产免费av片在线观看野外av| 久久久国产成人免费| 成人永久免费在线观看视频| www.999成人在线观看| 很黄的视频免费| 美女国产高潮福利片在线看| 视频区欧美日本亚洲| 欧美一级毛片孕妇| 国语自产精品视频在线第100页| 在线观看免费视频网站a站| 国产一区二区激情短视频| 身体一侧抽搐| 午夜福利一区二区在线看| 久久久精品欧美日韩精品| 久久精品成人免费网站| 老司机福利观看| 成人精品一区二区免费| 亚洲一区二区三区色噜噜| 久久久水蜜桃国产精品网| 国产高清有码在线观看视频 | 久久中文看片网| 91成年电影在线观看| www国产在线视频色| 国产乱人伦免费视频| 女人被躁到高潮嗷嗷叫费观| 成在线人永久免费视频| 色尼玛亚洲综合影院| 无限看片的www在线观看| 韩国精品一区二区三区| 男人的好看免费观看在线视频 | 男女下面插进去视频免费观看| 人人妻人人澡人人看| 少妇熟女aⅴ在线视频| 亚洲美女黄片视频| 在线观看免费日韩欧美大片| 免费在线观看日本一区| 精品久久久久久久毛片微露脸| 成年女人毛片免费观看观看9| 国产视频一区二区在线看| 日韩欧美一区视频在线观看| 久久香蕉激情| 国产精品1区2区在线观看.| 男女下面进入的视频免费午夜 | www.999成人在线观看| 一区二区三区精品91| 亚洲天堂国产精品一区在线| www.自偷自拍.com| 亚洲精品中文字幕一二三四区| 欧美成人一区二区免费高清观看 | 99久久99久久久精品蜜桃| 757午夜福利合集在线观看| 人人妻人人爽人人添夜夜欢视频| 99精品久久久久人妻精品| 搞女人的毛片| 一进一出好大好爽视频| 日本vs欧美在线观看视频| 国产亚洲精品综合一区在线观看 | 欧美乱码精品一区二区三区| 国产av在哪里看| 免费高清视频大片| 欧美黄色淫秽网站| 欧美日韩精品网址| 国产精品自产拍在线观看55亚洲| 多毛熟女@视频| 老司机深夜福利视频在线观看| 欧美老熟妇乱子伦牲交| 操出白浆在线播放| 亚洲成人免费电影在线观看| 欧美日本中文国产一区发布| 午夜久久久久精精品| 久久精品91蜜桃| 日本精品一区二区三区蜜桃| 女人精品久久久久毛片| 欧美日韩瑟瑟在线播放| or卡值多少钱| 免费久久久久久久精品成人欧美视频| 无遮挡黄片免费观看| 久久中文字幕人妻熟女| 久久青草综合色| 少妇粗大呻吟视频| 中亚洲国语对白在线视频| 午夜久久久在线观看| 天天一区二区日本电影三级 | 两人在一起打扑克的视频| 变态另类成人亚洲欧美熟女 | 无限看片的www在线观看| 人人妻人人爽人人添夜夜欢视频| 免费在线观看亚洲国产| 国产精品综合久久久久久久免费 | 亚洲国产中文字幕在线视频| 成人国产综合亚洲| 久久久久久大精品| 国产熟女午夜一区二区三区| 精品国产乱子伦一区二区三区| 久久狼人影院| 嫁个100分男人电影在线观看| 日韩国内少妇激情av| 日本欧美视频一区| 免费在线观看黄色视频的| 一本大道久久a久久精品| 亚洲久久久国产精品| 99在线视频只有这里精品首页| 岛国在线观看网站| 欧美黄色片欧美黄色片| 中文字幕最新亚洲高清| 天天躁夜夜躁狠狠躁躁| 一边摸一边抽搐一进一小说| 69精品国产乱码久久久| 欧美性长视频在线观看| 成人亚洲精品一区在线观看| 狂野欧美激情性xxxx| 12—13女人毛片做爰片一| 亚洲熟女毛片儿| 国产亚洲精品久久久久5区| 久99久视频精品免费| 日韩精品中文字幕看吧| 色综合亚洲欧美另类图片| 国产成人一区二区三区免费视频网站| xxx96com| 精品一品国产午夜福利视频| 大型av网站在线播放| 国产片内射在线| 在线观看www视频免费| 99国产综合亚洲精品| 操美女的视频在线观看| 色哟哟哟哟哟哟| or卡值多少钱| 麻豆一二三区av精品| 欧美av亚洲av综合av国产av| 禁无遮挡网站| 欧美精品啪啪一区二区三区| 女性生殖器流出的白浆| 高清在线国产一区| 麻豆久久精品国产亚洲av| 日韩大码丰满熟妇| 波多野结衣巨乳人妻| 99热只有精品国产| 国产亚洲欧美98| 悠悠久久av| 亚洲性夜色夜夜综合| 十分钟在线观看高清视频www| 久久久久久人人人人人| 久久久久久久精品吃奶| www日本在线高清视频| 日韩欧美一区二区三区在线观看| 精品欧美一区二区三区在线| 老司机在亚洲福利影院| 国产精品,欧美在线| 亚洲人成电影免费在线| 国产成+人综合+亚洲专区| 女生性感内裤真人,穿戴方法视频| 性欧美人与动物交配| 亚洲全国av大片| 亚洲av第一区精品v没综合| 国产亚洲精品av在线| 国产又色又爽无遮挡免费看| 欧美丝袜亚洲另类 | 丰满的人妻完整版| 精品国产一区二区久久| 又黄又粗又硬又大视频| 亚洲精品美女久久久久99蜜臀| 国内精品久久久久久久电影| 日本黄色视频三级网站网址| 一边摸一边抽搐一进一小说| 在线观看舔阴道视频| 久久久国产精品麻豆| 国产激情久久老熟女| 亚洲国产精品sss在线观看| 视频在线观看一区二区三区| 国产麻豆69| 成人av一区二区三区在线看| 日韩有码中文字幕| 亚洲成人久久性| 高清黄色对白视频在线免费看| 成人永久免费在线观看视频| 国产91精品成人一区二区三区| 色尼玛亚洲综合影院| 亚洲专区中文字幕在线| 麻豆国产av国片精品| 99精品在免费线老司机午夜| 在线免费观看的www视频| 亚洲人成电影观看| 久久影院123| 日韩免费av在线播放| 国产精品一区二区三区四区久久 | 19禁男女啪啪无遮挡网站| 日本 欧美在线| 首页视频小说图片口味搜索| 激情视频va一区二区三区| 久久中文看片网| av片东京热男人的天堂| 国产亚洲精品一区二区www| 亚洲全国av大片| 人成视频在线观看免费观看| 一卡2卡三卡四卡精品乱码亚洲| 身体一侧抽搐| АⅤ资源中文在线天堂| 一个人观看的视频www高清免费观看 | 国语自产精品视频在线第100页| 12—13女人毛片做爰片一| 男女床上黄色一级片免费看| 亚洲av电影不卡..在线观看| av免费在线观看网站| 欧美在线黄色| 亚洲人成电影免费在线| 777久久人妻少妇嫩草av网站| 亚洲精品国产精品久久久不卡| 成熟少妇高潮喷水视频| 日本免费一区二区三区高清不卡 | 色综合婷婷激情| 日本精品一区二区三区蜜桃| 欧美最黄视频在线播放免费| 欧美日韩中文字幕国产精品一区二区三区 | 多毛熟女@视频| 久久婷婷成人综合色麻豆| 亚洲av第一区精品v没综合| 超碰成人久久| 国产亚洲精品久久久久5区| 欧美大码av| 欧美激情 高清一区二区三区| 99香蕉大伊视频| 18禁观看日本| aaaaa片日本免费| 亚洲三区欧美一区| 桃红色精品国产亚洲av| 九色国产91popny在线| 日韩成人在线观看一区二区三区| 成年女人毛片免费观看观看9| 国产一级毛片七仙女欲春2 | 国产熟女午夜一区二区三区| 国产欧美日韩一区二区三区在线| bbb黄色大片| 国产精品99久久99久久久不卡| 日本 欧美在线| 亚洲精品一卡2卡三卡4卡5卡| 天天添夜夜摸| 国产精品亚洲美女久久久| 黄色女人牲交| 亚洲天堂国产精品一区在线| 免费高清视频大片| 国产精品永久免费网站| 国产精品免费一区二区三区在线| 国产日韩一区二区三区精品不卡| 欧美在线黄色| 级片在线观看| 国产野战对白在线观看| 校园春色视频在线观看| 久久婷婷人人爽人人干人人爱 | av天堂在线播放| 最新在线观看一区二区三区| 亚洲三区欧美一区| 香蕉国产在线看| 妹子高潮喷水视频| 亚洲一码二码三码区别大吗| 亚洲午夜精品一区,二区,三区| a级毛片在线看网站| 50天的宝宝边吃奶边哭怎么回事| 国产欧美日韩一区二区三| 免费高清视频大片| 免费观看人在逋| 九色国产91popny在线| 亚洲精品美女久久久久99蜜臀| 成人三级做爰电影| 久久婷婷人人爽人人干人人爱 | 久久久国产欧美日韩av| 精品久久蜜臀av无| 国产精品影院久久| 精品欧美一区二区三区在线| 91字幕亚洲| 很黄的视频免费| 国产精品免费视频内射| 真人一进一出gif抽搐免费| 搞女人的毛片| 久久天躁狠狠躁夜夜2o2o| 亚洲人成网站在线播放欧美日韩| 搡老妇女老女人老熟妇| 午夜激情av网站| 中文字幕另类日韩欧美亚洲嫩草| 美女国产高潮福利片在线看| 久久久久久大精品| 搞女人的毛片| 亚洲精品中文字幕一二三四区| 91在线观看av| 日日干狠狠操夜夜爽| 波多野结衣巨乳人妻| 免费观看人在逋| 欧美久久黑人一区二区| 女生性感内裤真人,穿戴方法视频| 看黄色毛片网站| 亚洲av成人av| 午夜福利影视在线免费观看| 国产欧美日韩精品亚洲av| 国产1区2区3区精品| 大陆偷拍与自拍| 中文字幕久久专区| 中文字幕人妻丝袜一区二区| 午夜成年电影在线免费观看| 国产蜜桃级精品一区二区三区| 欧美丝袜亚洲另类 | 午夜两性在线视频| 一区在线观看完整版| 伊人久久大香线蕉亚洲五| 国产精品亚洲av一区麻豆| 啦啦啦免费观看视频1| 国产精品永久免费网站| 国产不卡一卡二| xxx96com| 侵犯人妻中文字幕一二三四区| 欧美日韩乱码在线| 久久香蕉精品热| 欧美老熟妇乱子伦牲交| 国产国语露脸激情在线看| 亚洲熟女毛片儿| 亚洲精品国产精品久久久不卡| av天堂久久9| 免费少妇av软件| www.熟女人妻精品国产| 亚洲av成人不卡在线观看播放网| 亚洲一卡2卡3卡4卡5卡精品中文| 精品久久久久久,| 成年人黄色毛片网站| 婷婷精品国产亚洲av在线| 丝袜人妻中文字幕| 美女国产高潮福利片在线看| 后天国语完整版免费观看| 亚洲最大成人中文| 高清毛片免费观看视频网站| 999精品在线视频| 亚洲国产欧美一区二区综合| 午夜视频精品福利| 人成视频在线观看免费观看| 在线观看www视频免费| 一级作爱视频免费观看| 丝袜在线中文字幕| 亚洲第一欧美日韩一区二区三区| 99国产极品粉嫩在线观看| 亚洲男人的天堂狠狠| 国产私拍福利视频在线观看| 欧美中文综合在线视频| 亚洲精品粉嫩美女一区| 国产精品久久电影中文字幕| 19禁男女啪啪无遮挡网站| 国产亚洲欧美98| 国产欧美日韩一区二区三| 久久午夜综合久久蜜桃| 久久婷婷人人爽人人干人人爱 | 国产99白浆流出| 大香蕉久久成人网| 波多野结衣高清无吗| 国产国语露脸激情在线看| 男人舔女人下体高潮全视频| 性欧美人与动物交配| 久久中文看片网| 大码成人一级视频| 一二三四社区在线视频社区8| 亚洲国产日韩欧美精品在线观看 | 国产精品一区二区精品视频观看| 麻豆av在线久日| 免费无遮挡裸体视频| 国产色视频综合| 亚洲欧美日韩另类电影网站| 一级作爱视频免费观看| 美女大奶头视频| 桃色一区二区三区在线观看| 亚洲精品久久成人aⅴ小说| 久久久久国产一级毛片高清牌| 久热这里只有精品99| 亚洲 欧美一区二区三区| 亚洲久久久国产精品| 搞女人的毛片| 少妇裸体淫交视频免费看高清 | 黄色视频不卡| 精品国产乱子伦一区二区三区| 久久人妻熟女aⅴ| 香蕉久久夜色| 两性夫妻黄色片| 日韩中文字幕欧美一区二区| 亚洲人成伊人成综合网2020| 亚洲激情在线av| 高清在线国产一区| 女性生殖器流出的白浆| 亚洲午夜精品一区,二区,三区| av超薄肉色丝袜交足视频| 国产欧美日韩一区二区三区在线| 午夜免费激情av| 免费在线观看影片大全网站| 国产亚洲欧美精品永久| 久久精品91蜜桃| 极品人妻少妇av视频| 国产午夜福利久久久久久| 别揉我奶头~嗯~啊~动态视频| av在线播放免费不卡| 午夜精品在线福利| 日韩 欧美 亚洲 中文字幕| 国内精品久久久久精免费| 欧美黄色片欧美黄色片| 欧美性长视频在线观看| 18禁美女被吸乳视频| 99久久久亚洲精品蜜臀av| 自拍欧美九色日韩亚洲蝌蚪91| 搡老岳熟女国产| 人妻丰满熟妇av一区二区三区| 亚洲av熟女| 搞女人的毛片| 99香蕉大伊视频| 久久精品亚洲精品国产色婷小说| 制服诱惑二区| 97人妻精品一区二区三区麻豆 | 亚洲国产精品sss在线观看| 亚洲av电影不卡..在线观看| 国产精品久久久久久亚洲av鲁大| 亚洲免费av在线视频| 国产一级毛片七仙女欲春2 | 在线观看免费视频网站a站| 热99re8久久精品国产| 真人做人爱边吃奶动态| 一进一出好大好爽视频| 一级毛片女人18水好多| 亚洲熟妇熟女久久| 成人18禁高潮啪啪吃奶动态图| 19禁男女啪啪无遮挡网站| 老司机福利观看| 精品乱码久久久久久99久播| 一进一出抽搐动态| 午夜福利18| 国产av一区在线观看免费| 神马国产精品三级电影在线观看 | 中国美女看黄片| 国产精品亚洲美女久久久| 成在线人永久免费视频| 搞女人的毛片| 18禁裸乳无遮挡免费网站照片 | 国产成+人综合+亚洲专区| 午夜福利免费观看在线| 亚洲一区二区三区不卡视频| 亚洲欧美一区二区三区黑人| 精品国产亚洲在线|