• <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局部放電模式識別
    国产探花在线观看一区二区| 欧美午夜高清在线| 又黄又粗又硬又大视频| 麻豆一二三区av精品| xxx96com| 观看免费一级毛片| 99久国产av精品| 一卡2卡三卡四卡精品乱码亚洲| 三级毛片av免费| 亚洲人与动物交配视频| 久久午夜亚洲精品久久| 丝袜人妻中文字幕| 这个男人来自地球电影免费观看| 久久中文看片网| 国产伦精品一区二区三区视频9 | 久久久久久大精品| 观看美女的网站| 男女下面进入的视频免费午夜| 在线视频色国产色| 99久久久亚洲精品蜜臀av| 夜夜看夜夜爽夜夜摸| 国产亚洲精品久久久久久毛片| 又紧又爽又黄一区二区| 国产1区2区3区精品| 一级毛片女人18水好多| 观看免费一级毛片| 一卡2卡三卡四卡精品乱码亚洲| 首页视频小说图片口味搜索| 国产麻豆成人av免费视频| 黄色片一级片一级黄色片| 可以在线观看的亚洲视频| 精品熟女少妇八av免费久了| 后天国语完整版免费观看| tocl精华| 香蕉国产在线看| 国产精华一区二区三区| 日日干狠狠操夜夜爽| 久久久久久久精品吃奶| 国产精品自产拍在线观看55亚洲| 香蕉丝袜av| 嫩草影院精品99| 国产精品自产拍在线观看55亚洲| 精品久久久久久久毛片微露脸| 精品久久久久久久毛片微露脸| 色综合站精品国产| 琪琪午夜伦伦电影理论片6080| 欧美一区二区国产精品久久精品| 最近视频中文字幕2019在线8| 91av网站免费观看| 精品国产乱码久久久久久男人| 免费搜索国产男女视频| 好男人在线观看高清免费视频| 麻豆av在线久日| 欧美成人一区二区免费高清观看 | 99国产精品99久久久久| 日日摸夜夜添夜夜添小说| 亚洲av片天天在线观看| 亚洲无线观看免费| 亚洲无线观看免费| 亚洲午夜精品一区,二区,三区| 老熟妇乱子伦视频在线观看| 亚洲熟女毛片儿| 亚洲专区中文字幕在线| 三级男女做爰猛烈吃奶摸视频| 国产精品99久久99久久久不卡| 亚洲成人免费电影在线观看| 国内精品美女久久久久久| 最好的美女福利视频网| 欧美av亚洲av综合av国产av| 男人舔女人下体高潮全视频| 美女高潮喷水抽搐中文字幕| 亚洲精品粉嫩美女一区| 九九热线精品视视频播放| 免费观看人在逋| 欧美xxxx黑人xx丫x性爽| 久久九九热精品免费| 国产真实乱freesex| e午夜精品久久久久久久| 亚洲男人的天堂狠狠| 久久伊人香网站| 精品久久久久久久久久免费视频| 美女被艹到高潮喷水动态| 国产亚洲精品一区二区www| 国产精品国产高清国产av| 黑人巨大精品欧美一区二区mp4| 免费在线观看影片大全网站| 男人舔女人的私密视频| 成人三级黄色视频| 男人舔女人下体高潮全视频| 亚洲18禁久久av| 中文字幕熟女人妻在线| 一个人观看的视频www高清免费观看 | 国产高清视频在线播放一区| 1000部很黄的大片| 亚洲av成人不卡在线观看播放网| 美女午夜性视频免费| 国产精品一及| 久久精品影院6| 黄色视频,在线免费观看| 亚洲欧美日韩卡通动漫| 午夜福利在线观看吧| 国产淫片久久久久久久久 | 搞女人的毛片| 国产精品亚洲美女久久久| 亚洲专区国产一区二区| 国产极品精品免费视频能看的| av在线蜜桃| 99国产极品粉嫩在线观看| 国产一区在线观看成人免费| www.999成人在线观看| av在线天堂中文字幕| 叶爱在线成人免费视频播放| cao死你这个sao货| 久久久久久久久久黄片| 欧美日本亚洲视频在线播放| 91av网一区二区| 18禁国产床啪视频网站| 麻豆国产97在线/欧美| 久久中文字幕人妻熟女| 日本 欧美在线| 精品熟女少妇八av免费久了| e午夜精品久久久久久久| 国产成人啪精品午夜网站| 久久久久久久久免费视频了| 亚洲国产日韩欧美精品在线观看 | www日本在线高清视频| 国产亚洲精品久久久久久毛片| 伊人久久大香线蕉亚洲五| 村上凉子中文字幕在线| 国产精品免费一区二区三区在线| 亚洲精品美女久久av网站| 最近视频中文字幕2019在线8| 观看美女的网站| 在线观看午夜福利视频| 欧美日韩福利视频一区二区| 欧美一级毛片孕妇| av黄色大香蕉| 亚洲 欧美一区二区三区| 久久久久免费精品人妻一区二区| 国语自产精品视频在线第100页| 12—13女人毛片做爰片一| 亚洲国产精品sss在线观看| 亚洲美女视频黄频| 亚洲精品美女久久av网站| 国产成人精品无人区| 美女cb高潮喷水在线观看 | 波多野结衣高清无吗| 国产精品久久久人人做人人爽| 19禁男女啪啪无遮挡网站| 欧美黑人巨大hd| 青草久久国产| 国产精品 欧美亚洲| 亚洲男人的天堂狠狠| 观看免费一级毛片| 在线国产一区二区在线| av福利片在线观看| 成人av一区二区三区在线看| 无遮挡黄片免费观看| 色吧在线观看| 久久久久久国产a免费观看| 日本 欧美在线| 夜夜夜夜夜久久久久| 欧洲精品卡2卡3卡4卡5卡区| netflix在线观看网站| 亚洲欧美精品综合一区二区三区| 男人舔女人的私密视频| 99久久精品热视频| 天天添夜夜摸| 免费人成视频x8x8入口观看| 禁无遮挡网站| 欧美丝袜亚洲另类 | 熟女少妇亚洲综合色aaa.| 亚洲人成网站高清观看| 国产成+人综合+亚洲专区| 成年女人看的毛片在线观看| 亚洲精品一区av在线观看| 婷婷六月久久综合丁香| 色综合站精品国产| 99久久无色码亚洲精品果冻| 欧美日韩福利视频一区二区| 国产久久久一区二区三区| 天堂av国产一区二区熟女人妻| 欧美不卡视频在线免费观看| 日本免费一区二区三区高清不卡| 国产主播在线观看一区二区| 日韩欧美三级三区| 18禁美女被吸乳视频| 别揉我奶头~嗯~啊~动态视频| 欧美另类亚洲清纯唯美| 波多野结衣巨乳人妻| 白带黄色成豆腐渣| 成人国产一区最新在线观看| 国产不卡一卡二| 亚洲无线在线观看| 欧美xxxx黑人xx丫x性爽| 欧美一级毛片孕妇| 人妻丰满熟妇av一区二区三区| 黄色日韩在线| 国产av在哪里看| 国产精品免费一区二区三区在线| 性色av乱码一区二区三区2| 国产精品美女特级片免费视频播放器 | 亚洲在线观看片| 国产成+人综合+亚洲专区| 男人舔女人的私密视频| 国产伦精品一区二区三区视频9 | 午夜福利在线在线| 丰满人妻一区二区三区视频av | 少妇丰满av| 国产精品av久久久久免费| 精品欧美国产一区二区三| 欧美成人免费av一区二区三区| 精品国内亚洲2022精品成人| 一二三四在线观看免费中文在| 国产成人系列免费观看| 天天添夜夜摸| 国产淫片久久久久久久久 | 免费看美女性在线毛片视频| 午夜亚洲福利在线播放| 成人性生交大片免费视频hd| 欧美大码av| 搞女人的毛片| 亚洲av成人不卡在线观看播放网| 黄片小视频在线播放| 69av精品久久久久久| 99热6这里只有精品| 日本一本二区三区精品| 欧美精品啪啪一区二区三区| 久久欧美精品欧美久久欧美| 亚洲18禁久久av| 久久天躁狠狠躁夜夜2o2o| 久久久国产成人精品二区| 看黄色毛片网站| 亚洲一区二区三区色噜噜| 在线永久观看黄色视频| 一夜夜www| 午夜激情欧美在线| 日本一本二区三区精品| 熟女电影av网| 国产真人三级小视频在线观看| 免费看美女性在线毛片视频| 狂野欧美白嫩少妇大欣赏| 91老司机精品| 亚洲av五月六月丁香网| 亚洲成人精品中文字幕电影| 亚洲熟妇熟女久久| 黄片大片在线免费观看| 亚洲成a人片在线一区二区| 美女被艹到高潮喷水动态| 国产一区二区三区视频了| 国内揄拍国产精品人妻在线| 国产精品自产拍在线观看55亚洲| 欧美日韩福利视频一区二区| 国产 一区 欧美 日韩| 在线观看免费视频日本深夜| 一a级毛片在线观看| 国内毛片毛片毛片毛片毛片| 热99re8久久精品国产| 免费在线观看日本一区| 九九在线视频观看精品| 巨乳人妻的诱惑在线观看| 一夜夜www| 亚洲五月婷婷丁香| 久久草成人影院| 小蜜桃在线观看免费完整版高清| 动漫黄色视频在线观看| 欧美在线黄色| 91在线精品国自产拍蜜月 | 熟女人妻精品中文字幕| 脱女人内裤的视频| 三级国产精品欧美在线观看 | 婷婷丁香在线五月| 好看av亚洲va欧美ⅴa在| av中文乱码字幕在线| 久久久久久久午夜电影| 成人av在线播放网站| 怎么达到女性高潮| 国内精品美女久久久久久| 亚洲精品国产精品久久久不卡| 日本一二三区视频观看| 国产人伦9x9x在线观看| 久久香蕉精品热| 国产精品香港三级国产av潘金莲| 观看美女的网站| 国产单亲对白刺激| 成人高潮视频无遮挡免费网站| 男女午夜视频在线观看| 偷拍熟女少妇极品色| 色视频www国产| 亚洲国产欧美网| 亚洲专区中文字幕在线| 视频区欧美日本亚洲| 欧美色欧美亚洲另类二区| 一本综合久久免费| 日韩欧美精品v在线| 91在线精品国自产拍蜜月 | 久久久国产成人精品二区| 亚洲无线观看免费| 少妇人妻一区二区三区视频| 久久中文字幕一级| 欧美中文日本在线观看视频| 小蜜桃在线观看免费完整版高清| 欧美+亚洲+日韩+国产| 琪琪午夜伦伦电影理论片6080| 亚洲人成电影免费在线| 99精品在免费线老司机午夜| 两个人的视频大全免费| 日韩三级视频一区二区三区| 热99re8久久精品国产| 国产熟女xx| 亚洲成人精品中文字幕电影| 亚洲av熟女| 久久伊人香网站| 国产亚洲精品久久久久久毛片| 在线免费观看的www视频| 性色avwww在线观看| 久久久久久久久免费视频了| 99久久久亚洲精品蜜臀av| a级毛片a级免费在线| 国内精品久久久久久久电影| 日韩欧美在线乱码| 男女午夜视频在线观看| av视频在线观看入口| 级片在线观看| 12—13女人毛片做爰片一| www.999成人在线观看| 别揉我奶头~嗯~啊~动态视频| 成人一区二区视频在线观看| 亚洲av成人不卡在线观看播放网| 亚洲国产欧美人成| xxxwww97欧美| 国产亚洲精品av在线| 巨乳人妻的诱惑在线观看| a级毛片在线看网站| 观看免费一级毛片| 身体一侧抽搐| 久久精品影院6| 国产日本99.免费观看| 国产成+人综合+亚洲专区| 欧美在线黄色| 麻豆av在线久日| 99热这里只有是精品50| 精品人妻1区二区| av视频在线观看入口| 免费看光身美女| 性欧美人与动物交配| www.999成人在线观看| 全区人妻精品视频| 午夜成年电影在线免费观看| 毛片女人毛片| 在线免费观看不下载黄p国产 | 丁香六月欧美| 久久久久亚洲av毛片大全| 我要搜黄色片| 日本三级黄在线观看| 亚洲人成网站在线播放欧美日韩| 亚洲精品色激情综合| 久99久视频精品免费| 国产伦在线观看视频一区| 热99在线观看视频| 美女cb高潮喷水在线观看 | 久久99热这里只有精品18| 禁无遮挡网站| 午夜精品一区二区三区免费看| 欧美+亚洲+日韩+国产| 国产一区二区三区在线臀色熟女| 婷婷丁香在线五月| 又紧又爽又黄一区二区| 一二三四社区在线视频社区8| 狂野欧美白嫩少妇大欣赏| 亚洲国产日韩欧美精品在线观看 | 美女大奶头视频| 久久中文字幕一级| 美女扒开内裤让男人捅视频| 亚洲精品在线美女| 精品久久久久久久毛片微露脸| 一卡2卡三卡四卡精品乱码亚洲| 熟女电影av网| 偷拍熟女少妇极品色| 校园春色视频在线观看| av天堂中文字幕网| 色综合亚洲欧美另类图片| 久9热在线精品视频| 少妇的逼水好多| 国产主播在线观看一区二区| 国产麻豆成人av免费视频| 久久精品亚洲精品国产色婷小说| 一级a爱片免费观看的视频| 国产成人精品久久二区二区91| 观看免费一级毛片| 老汉色∧v一级毛片| 久久中文字幕人妻熟女| 亚洲av电影不卡..在线观看| 日本黄色视频三级网站网址| 久久香蕉国产精品| 国内精品久久久久久久电影| 天天一区二区日本电影三级| 久久久久久久久久黄片| 亚洲欧美激情综合另类| 亚洲自偷自拍图片 自拍| 亚洲美女视频黄频| 国模一区二区三区四区视频 | 免费av毛片视频| 亚洲成av人片免费观看| 欧美最黄视频在线播放免费| 欧美av亚洲av综合av国产av| 国产成人影院久久av| 在线观看舔阴道视频| 国产精品香港三级国产av潘金莲| 中国美女看黄片| 成人精品一区二区免费| 中文字幕人成人乱码亚洲影| 国产精华一区二区三区| 国产成人精品久久二区二区免费| 在线永久观看黄色视频| bbb黄色大片| 成人国产综合亚洲| www.999成人在线观看| 99久久综合精品五月天人人| 中文亚洲av片在线观看爽| 极品教师在线免费播放| 午夜久久久久精精品| 久久国产乱子伦精品免费另类| 久久久色成人| 国产成+人综合+亚洲专区| 香蕉av资源在线| 中文字幕精品亚洲无线码一区| 变态另类成人亚洲欧美熟女| 欧美日韩中文字幕国产精品一区二区三区| 91麻豆av在线| 亚洲精品在线美女| 午夜亚洲福利在线播放| 国产精品电影一区二区三区| 国产又色又爽无遮挡免费看| 国产伦精品一区二区三区四那| 免费看光身美女| 老汉色av国产亚洲站长工具| 国产精品久久电影中文字幕| 大型黄色视频在线免费观看| 亚洲五月天丁香| 人人妻人人看人人澡| 国产精品一及| 国产成人欧美在线观看| 日本黄大片高清| 免费人成视频x8x8入口观看| 久久久久久久久中文| 久久精品国产亚洲av香蕉五月| 99热6这里只有精品| 国产精品久久久久久久电影 | 搡老妇女老女人老熟妇| 国产精品野战在线观看| 亚洲激情在线av| 免费看日本二区| 伊人久久大香线蕉亚洲五| 男插女下体视频免费在线播放| 两性午夜刺激爽爽歪歪视频在线观看| 亚洲中文av在线| 丰满人妻熟妇乱又伦精品不卡| 97碰自拍视频| 久久久久国内视频| 岛国在线观看网站| 九九热线精品视视频播放| 久久久精品大字幕| 丰满的人妻完整版| 99久国产av精品| 日本五十路高清| av女优亚洲男人天堂 | 夜夜爽天天搞| 身体一侧抽搐| 日本a在线网址| 成人永久免费在线观看视频| 麻豆国产97在线/欧美| 91老司机精品| 久久婷婷人人爽人人干人人爱| 免费在线观看成人毛片| 夜夜看夜夜爽夜夜摸| 免费人成视频x8x8入口观看| 亚洲专区字幕在线| 国产一区二区在线av高清观看| 中文在线观看免费www的网站| 欧美日本亚洲视频在线播放| 亚洲人成电影免费在线| 国产一级毛片七仙女欲春2| 老鸭窝网址在线观看| 国产精品99久久久久久久久| 女生性感内裤真人,穿戴方法视频| 黄色丝袜av网址大全| 欧美在线黄色| 国产日本99.免费观看| 午夜福利高清视频| 精品久久久久久久末码| 国产毛片a区久久久久| 亚洲性夜色夜夜综合| 国产探花在线观看一区二区| 午夜免费观看网址| 欧洲精品卡2卡3卡4卡5卡区| 五月伊人婷婷丁香| 最新在线观看一区二区三区| 此物有八面人人有两片| 99精品久久久久人妻精品| 国产午夜福利久久久久久| 99久久无色码亚洲精品果冻| 免费看光身美女| 99国产综合亚洲精品| 99国产精品99久久久久| 久久久水蜜桃国产精品网| 两个人看的免费小视频| 精品国产三级普通话版| 性欧美人与动物交配| 此物有八面人人有两片| 欧美日韩一级在线毛片| 久久精品91蜜桃| 欧美黑人巨大hd| 国内精品一区二区在线观看| 偷拍熟女少妇极品色| 亚洲午夜理论影院| 亚洲av电影在线进入| 怎么达到女性高潮| 99热只有精品国产| 制服人妻中文乱码| 黄色女人牲交| 法律面前人人平等表现在哪些方面| 亚洲国产精品999在线| 成人鲁丝片一二三区免费| 欧美+亚洲+日韩+国产| 成人av在线播放网站| 麻豆久久精品国产亚洲av| 男人的好看免费观看在线视频| 免费av不卡在线播放| 色播亚洲综合网| 曰老女人黄片| 免费搜索国产男女视频| 欧美不卡视频在线免费观看| 欧美激情在线99| 色老头精品视频在线观看| 亚洲黑人精品在线| 婷婷精品国产亚洲av| 日韩av在线大香蕉| 成人高潮视频无遮挡免费网站| 久久中文字幕人妻熟女| 在线国产一区二区在线| 国产精品爽爽va在线观看网站| 可以在线观看毛片的网站| 99精品欧美一区二区三区四区| 亚洲男人的天堂狠狠| 男女做爰动态图高潮gif福利片| 老司机福利观看| 国产真人三级小视频在线观看| 特大巨黑吊av在线直播| 欧美av亚洲av综合av国产av| 欧美丝袜亚洲另类 | 五月伊人婷婷丁香| 亚洲欧美精品综合久久99| 国产真人三级小视频在线观看| 99久国产av精品| 国产主播在线观看一区二区| 法律面前人人平等表现在哪些方面| 久久精品aⅴ一区二区三区四区| 欧美国产日韩亚洲一区| 久久这里只有精品中国| 国产高清videossex| 日本精品一区二区三区蜜桃| 黑人欧美特级aaaaaa片| 十八禁网站免费在线| 国产探花在线观看一区二区| 亚洲精品美女久久av网站| 亚洲av中文字字幕乱码综合| 噜噜噜噜噜久久久久久91| 韩国av一区二区三区四区| 91av网站免费观看| 国产精品国产高清国产av| 久久天躁狠狠躁夜夜2o2o| 亚洲 欧美 日韩 在线 免费| 亚洲欧美日韩高清专用| 日本免费一区二区三区高清不卡| 欧美日韩一级在线毛片| 欧美+亚洲+日韩+国产| 国产视频内射| 美女免费视频网站| 美女扒开内裤让男人捅视频| 久久精品aⅴ一区二区三区四区| 国产人伦9x9x在线观看| 亚洲18禁久久av| 国产伦精品一区二区三区四那| 国产精品爽爽va在线观看网站| 搞女人的毛片| a级毛片在线看网站| 日本黄色视频三级网站网址| 国产欧美日韩一区二区精品| 97碰自拍视频| 国产成人欧美在线观看| 精品国产三级普通话版| 观看免费一级毛片| 九色成人免费人妻av| 91在线观看av| 久久久久久久精品吃奶| 日本黄色视频三级网站网址| 最近在线观看免费完整版| 人妻夜夜爽99麻豆av| 免费在线观看成人毛片| 国产一区二区在线观看日韩 | 亚洲国产色片| av中文乱码字幕在线| 中出人妻视频一区二区| 91麻豆精品激情在线观看国产| 久久久久久久久免费视频了| 琪琪午夜伦伦电影理论片6080| 在线观看舔阴道视频| 成人午夜高清在线视频| 欧美日韩综合久久久久久 | 18美女黄网站色大片免费观看| 亚洲精品在线美女| 免费在线观看亚洲国产| 中文字幕人成人乱码亚洲影| 中文字幕最新亚洲高清|