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

    基于深度學(xué)習(xí)的耦合度相關(guān)代碼壞味檢測方法

    2022-07-05 08:26:04蘇珊張楊張冬雯
    計算機(jī)應(yīng)用 2022年6期
    關(guān)鍵詞:度量代碼耦合

    蘇珊,張楊,張冬雯

    基于深度學(xué)習(xí)的耦合度相關(guān)代碼壞味檢測方法

    蘇珊,張楊*,張冬雯

    (河北科技大學(xué) 信息科學(xué)與工程學(xué)院,石家莊 050018)(*通信作者電子郵箱uzhangyang@foxmail.com)

    基于啟發(fā)式和機(jī)器學(xué)習(xí)的代碼壞味檢測方法已被證明具有一定的局限性,且現(xiàn)有的檢測方法大多集中在較為常見的代碼壞味上。針對這些問題,提出了一種深度學(xué)習(xí)方法來檢測過緊的耦合、分散的耦合和散彈式修改這三種與耦合度相關(guān)檢測較為少見的代碼壞味。首先,提取三種代碼壞味需要的度量并對得到的數(shù)據(jù)進(jìn)行處理;之后,構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)(CNN)與注意力(Attention)機(jī)制相結(jié)合的深度學(xué)習(xí)模型,引入的注意力機(jī)制可以對輸入的度量特征進(jìn)行權(quán)重的分配。從21個開源項目中提取數(shù)據(jù)集,在10個開源項目中對檢測方法進(jìn)行了驗證,并與CNN模型進(jìn)行對比。實驗結(jié)果表明:過緊的耦合和分散的耦合在所提模型中取得了更好的結(jié)果,相應(yīng)代碼壞味的查準(zhǔn)率分別達(dá)到了93.61%和99.76%;而散彈式修改在CNN模型中有更好的結(jié)果,相應(yīng)代碼壞味查準(zhǔn)率達(dá)到了98.59%。

    代碼壞味;耦合;深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);注意力機(jī)制

    0 引言

    隨著產(chǎn)品功能的不斷變更,開發(fā)人員需要不斷更新軟件源代碼以適應(yīng)新的需求,代碼在長期的增加和修改中通常會變得更加復(fù)雜,容易偏離最初的設(shè)計,從而導(dǎo)致軟件的質(zhì)量降低。軟件重構(gòu)是提高軟件質(zhì)量的有效手段,它重組軟件應(yīng)用程序的內(nèi)部結(jié)構(gòu),同時不改變它的外部行為[1]。重構(gòu)過程主要由三個步驟組成:1)確定軟件應(yīng)該重構(gòu)的地方;2)確定哪些重構(gòu)應(yīng)該應(yīng)用于已識別的位置;3)評估重構(gòu)對軟件質(zhì)量特征的影響[1]。Kent Beck在識別軟件應(yīng)該在哪里重構(gòu)時創(chuàng)造了“代碼味道”這個術(shù)語[2],他認(rèn)為,難聞的氣味是“代碼中暗示重構(gòu)可能性的結(jié)構(gòu)”,具有這種癥狀的軟件系統(tǒng)很容易隨著時間的推移而產(chǎn)生錯誤,因此會導(dǎo)致麻煩和昂貴的維護(hù)過程[3]。

    在早期階段檢測代碼壞味可以使重構(gòu)在成本和時間方面更加經(jīng)濟(jì),因此,研究人員提出了許多種不同的技術(shù)來檢測代碼壞味。Yoshida等[4]提出了一種基于內(nèi)聚度量的方法來識別長方法;Palomba等[5]通過挖掘源代碼的歷史版本來識別特征嫉妒;Sales等[6]提出了一種基于依賴的方法(稱為JMove)來識別特征嫉妒。然而,不同的研究人員對代碼壞味的定義存在不同的認(rèn)識,這就導(dǎo)致了在解釋或?qū)z測結(jié)果進(jìn)行對比時會存在很大困難[7]。在這種情況下,使用機(jī)器學(xué)習(xí)技術(shù)被認(rèn)為是處理這種缺乏共識的一種合適方法。Maiga等[8]引入支持向量機(jī)機(jī)制檢測代碼壞味;Kreimer[9]提出了一種基于決策樹的檢測方法檢測長方法和上帝類;Fontana等[10]對數(shù)據(jù)類、上帝類、特征嫉妒和長方法四種代碼壞味進(jìn)行了16種機(jī)器學(xué)習(xí)算法的實驗。然而,有實證研究表明,這種基于機(jī)器學(xué)習(xí)的代碼壞味檢測方法具有一定的局限性[11],值得進(jìn)一步研究。

    最近,深度學(xué)習(xí)已經(jīng)廣泛地應(yīng)用到包括文本處理在內(nèi)的許多研究領(lǐng)域。深度學(xué)習(xí)算法不同于建立在淺層結(jié)構(gòu)上的傳統(tǒng)機(jī)器學(xué)習(xí),它可以對數(shù)據(jù)進(jìn)行從低到高多層抽象[12]。深度神經(jīng)網(wǎng)絡(luò)已被證明能夠很好地選擇有用的特征,并自動建立從輸入到輸出的復(fù)雜映射。Guo等[13]提出了一種基于深度學(xué)習(xí)的方法,該方法結(jié)合了方法表征和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)模型來檢測特征嫉妒,可以自動地從文本代碼和代碼度量中提取語義和特征,并且還可以自動地在這些特征和預(yù)測值之間建立復(fù)雜的映射;卜依凡等[14]提出了一種深度學(xué)習(xí)檢測方法,該方法不僅利用了常見的軟件度量,還充分利用了代碼中的文本信息,意圖通過挖掘文本語義揭示每個類所承擔(dān)的主要角色。

    雖然現(xiàn)有的檢測技術(shù)得到了很大的提升,但目前的工作仍存在一定問題:首先,現(xiàn)有的工作主要集中在那些流行的代碼壞味,如特性嫉妒、上帝類和長方法,很少有工作進(jìn)行耦合度相關(guān)的代碼壞味檢測;其次,據(jù)我們所知,還沒有公共數(shù)據(jù)集用來檢測與耦合度相關(guān)的代碼壞味。

    過緊的耦合、分散的耦合和散彈式修改是代碼編寫中三種典型的耦合錯誤,我們在21個開源項目中提取了這三種代碼壞味的數(shù)據(jù)集,通過搭建由一維卷積層組成的CNN并引入注意力(Attention)機(jī)制來創(chuàng)建代碼壞味度量特征和預(yù)測值之間復(fù)雜的映射,形成的代碼壞味檢測分類器在10個開源程序上進(jìn)行了驗證。實驗結(jié)果表明,過緊的耦合和分散的耦合在本文所提模型中有更好的結(jié)果,散彈式修改在CNN模型中有更好的結(jié)果。

    本文的主要工作如下:

    1)現(xiàn)有的檢測過緊的耦合、分散的耦合和散彈式修改這三種代碼壞味的工作并不多,而且集中在利用啟發(fā)式方法進(jìn)行檢測,但啟發(fā)式方法存在一定的局限性,因此本文提出CNN和Attention機(jī)制相結(jié)合的深度學(xué)習(xí)方法,以自動提取數(shù)據(jù)特征并對輸入特征進(jìn)行權(quán)值分配。據(jù)我們所知,這是首次利用深度學(xué)習(xí)技術(shù)檢測過緊的耦合、分散的耦合和散彈式修改這三種代碼壞味。

    2)現(xiàn)有的代碼壞味數(shù)據(jù)集大多集中在較為流行的代碼壞味,還未有公開數(shù)據(jù)集用于檢測本文提出的過緊的耦合、分散的耦合和散彈式修改這三種代碼壞味,為此本文構(gòu)建了檢測這三種代碼壞味的數(shù)據(jù)集。

    3)現(xiàn)有檢測代碼壞味的方法在呈現(xiàn)結(jié)果時都呈現(xiàn)的是整體的準(zhǔn)確率,然而測試集數(shù)據(jù)不均衡容易出現(xiàn)含有代碼壞味方法的準(zhǔn)確率低、不含代碼壞味方法的準(zhǔn)確率高從而整體準(zhǔn)確率高的情況,本文在呈現(xiàn)結(jié)果時分別呈現(xiàn)的是含有代碼壞味方法和不含代碼壞味方法的檢測準(zhǔn)確率,以避免對模型高準(zhǔn)確率的誤判。本文所提出的代碼壞味檢測方法能取得較高的準(zhǔn)確率,過緊的耦合和分散的耦合在本文模型中有較好的結(jié)果。

    1 相關(guān)工作

    現(xiàn)在已經(jīng)有一些在過緊的耦合、分散的耦合和散彈式修改這三種代碼壞味檢測方面的工作。Kessentini等[15]使用并行進(jìn)化算法檢測散彈式修改等代碼壞味,他們將代碼壞味的檢測視為一個分布式優(yōu)化問題,在優(yōu)化過程中并行組合不同的方法,以找到關(guān)于代碼壞味檢測的共識;Fu等[16]利用關(guān)聯(lián)規(guī)則從軟件系統(tǒng)的變化歷史中挖掘數(shù)據(jù),在此基礎(chǔ)上定義啟發(fā)式算法來檢測散彈式修改等三種代碼壞味,在五個開源項目上的實驗結(jié)果表明該方法具有較高的查準(zhǔn)率和查全率;Vidal等[17]根據(jù)Lanza和Marinescu提出的檢測策略開發(fā)了檢測工具JSpIRIT,該工具可以用來檢測過緊的耦合、分散的耦合、散彈式修改等代碼壞味;Palomba等[5]提出了一種檢測方法HIST,該方法通過從版本系統(tǒng)中挖掘變化的歷史信息,特別是通過分析源代碼之間發(fā)生的共同變化來檢測散彈式修改等代碼壞味。

    現(xiàn)有的檢測過緊的耦合、分散的耦合和散彈式修改這三種代碼壞味的研究還不廣泛,對這三種代碼壞味的檢測方法大多是基于啟發(fā)式的代碼壞味檢測技術(shù)。有一些基于啟發(fā)式的方法如JSpIRIT[17]是依賴于度量的,然而不同工具使用檢測代碼壞味的度量可以不同;此外,即使度量是相同的,度量的閾值也會改變,通過改變這些值,檢測到的壞味數(shù)量可以相應(yīng)地增加或減少[10]。還有一些檢測工具依賴于與代碼結(jié)構(gòu)和命名相關(guān)的其他規(guī)則,例如HIST[5]檢測方法通過挖掘版本歷史信息進(jìn)行代碼壞味的檢測。這些基于啟發(fā)式的方法必須人工指定且有可能相當(dāng)復(fù)雜。

    深度學(xué)習(xí)技術(shù)也已經(jīng)被用來檢測代碼壞味,這種技術(shù)可以在一定程度上避免代碼壞味的主觀認(rèn)識造成的影響。Hadj-Kacem等[18]提出了一種基于自動編碼器和人工神經(jīng)網(wǎng)絡(luò)的混合檢測方法檢測了特征嫉妒等代碼壞味。在第一階段,使用深度自動編碼器對輸入特征空間進(jìn)行降維,提取最相關(guān)的特征;第二階段選擇構(gòu)建人工神經(jīng)網(wǎng)絡(luò)來構(gòu)建代碼壞味分類器。Kim[19]利用CNN構(gòu)建代碼壞味與面向?qū)ο蠖攘恐g的關(guān)系,并通過改變迭代次數(shù)和隱層數(shù)量進(jìn)行實驗,檢測了上帝類等六個常見的代碼壞味,均取得了較好的檢測結(jié)果。Das等[20]構(gòu)建了CNN來檢測大腦類和大腦方法,并通過調(diào)整測試的項目數(shù)量來展示實驗結(jié)果,實驗結(jié)果表明該方法能較好地檢測出代碼壞味。這些采用深度學(xué)習(xí)檢測代碼壞味的方法都取得了較好的檢測結(jié)果,說明利用深度學(xué)習(xí)算法檢測代碼壞味是可行且有優(yōu)勢的。

    本文提出了基于深度學(xué)習(xí)的代碼壞味檢測方法,該方法是依賴于度量的,通過深度學(xué)習(xí)技術(shù)可以自動建立起度量和標(biāo)簽的復(fù)雜映射。

    2 三種代碼壞味的定義

    根據(jù)代碼壞味的范圍,代碼壞味可以分為三類:應(yīng)用程序級、類級和方法級。耦合是指程序中模塊及模塊之間信息或參數(shù)依賴的程度,是影響軟件復(fù)雜程度和設(shè)計質(zhì)量的一個重要因素。本文將重點(diǎn)檢測方法層面上三種與耦合度相關(guān)的代碼壞味,分別為過緊的耦合、分散的耦合和散彈式修改,這是三種典型的耦合錯誤。

    1)過緊的耦合。過緊的耦合是指某個方法和少數(shù)幾個類中的很多方法相關(guān)聯(lián)時出現(xiàn)的一種代碼結(jié)構(gòu)缺陷[21]。在這種情況下,該方法與這幾個類之間的關(guān)系將變得不夠明確。

    2)分散的耦合。分散的耦合是和過緊的耦合具有相反特征的一種代碼壞味。在這種情況下,某個方法與其他很多類中的方法有著不是很密集的聯(lián)系[21]。分散的耦合會導(dǎo)致漣漪效應(yīng),分散在各個類中方法的變化潛在地影響了與其相耦合的方法。

    3)散彈式修改。與過緊的耦合和分散的耦合相比,散彈式修改重點(diǎn)關(guān)注函數(shù)調(diào)用引起的傳入依賴。散彈式修改指的是某個方法被很多其他類中的方法調(diào)用[21],這種設(shè)計的不協(xié)調(diào)意味著如果在這樣的方法中發(fā)生了更改,可能還需要更改與其相關(guān)聯(lián)的其他大量方法,從而導(dǎo)致維護(hù)問題。

    3 本文檢測方法

    圖1顯示了檢測代碼壞味的總體工作流程。首先從Github中收集了21個開源項目,再將這些項目輸入度量分析工具以生成所需度量,根據(jù)各個代碼壞味的度量檢測規(guī)則對項目中的方法進(jìn)行標(biāo)記;之后將標(biāo)記好的數(shù)據(jù)即訓(xùn)練數(shù)據(jù)集輸入神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和優(yōu)化,訓(xùn)練好的模型最后由代碼壞味的測試數(shù)據(jù)集進(jìn)行評估。

    圖1 代碼壞味檢測框架

    3.1 提取度量

    使用代碼分析工具iPlasma分析下載的Java項目。iPlasma是一個面向?qū)ο筌浖|(zhì)量分析的工具,該工具包含80多個最先進(jìn)和新穎的設(shè)計指標(biāo)庫,可以應(yīng)用于不同的抽象層次。使用該工具提取了項目中檢測三種代碼壞味所需要的5種度量,分別為CINT、CDISP、MAXNESTING、CC和CM,三種代碼壞味需要提取的度量及定義如表1所示。

    表1 代碼壞味度量

    3.2 標(biāo)記數(shù)據(jù)

    根據(jù)Lanza等[21]工作中檢測各個代碼壞味的規(guī)則,對提取的度量數(shù)據(jù)進(jìn)行標(biāo)記,含有代碼壞味的標(biāo)記為1,不含有代碼壞味的標(biāo)記為0。

    判斷過緊的耦合、分散的耦合和散彈式修改的公式如式(1)~(3)[21]所示,本文將用它們對這三種代碼壞味進(jìn)行標(biāo)記:

    3.3 數(shù)據(jù)均衡處理

    利用深度學(xué)習(xí)檢測代碼壞味面臨的挑戰(zhàn)之一是是否能夠收集到大量標(biāo)記的樣本來訓(xùn)練分類器。由于在程序中含有代碼壞味的方法是少數(shù),這就導(dǎo)致數(shù)據(jù)集中含有代碼壞味的方法數(shù)量遠(yuǎn)遠(yuǎn)小于不含代碼壞味方法的數(shù)量,為了避免數(shù)據(jù)不均衡對深度模型準(zhǔn)確率造成的影響,分別采用了欠采樣和過采樣方法。

    在21個項目中一共提取了165 830條數(shù)據(jù),首先采用欠采樣方法從中去掉了大量標(biāo)記為0的數(shù)據(jù),但此時數(shù)據(jù)集中仍存在數(shù)據(jù)不均衡的情況。為了改善這種情況,使用SMOTE算法[22]對數(shù)據(jù)進(jìn)行了增強(qiáng),SMOTE算法的基本思想就是對少數(shù)類別樣本進(jìn)行分析和模擬,并將人工模擬的新樣本添加到數(shù)據(jù)集中,進(jìn)而使原始數(shù)據(jù)中的類別不再嚴(yán)重失衡。經(jīng)過SMOTE算法增強(qiáng)的數(shù)據(jù)集,標(biāo)記為1和0的比例達(dá)到了1∶1。

    3.4 模型結(jié)構(gòu)

    本文采用CNN和注意力機(jī)制相結(jié)合的模型(Attention-CNN)來檢測代碼壞味,如圖2所示。

    圖2 Attention-CNN模型

    CNN主要包括輸入層、隱藏層和輸出層。數(shù)據(jù)通過輸入層進(jìn)入隱藏層;隱藏層中含有單個或多個卷積層,它根據(jù)指定數(shù)目的濾波器和激活函數(shù)執(zhí)行卷積運(yùn)算;最后的輸出層負(fù)責(zé)提供預(yù)測結(jié)果。

    注意力機(jī)制是一種資源分配機(jī)制,可以通過對輸入特征賦予不同的權(quán)重來突出更加重要信息的影響[23]。本文在模型中加入了注意力機(jī)制對輸入的度量特征進(jìn)行權(quán)重分配。

    模型中各層的描述如下:

    1)輸入層。輸入層將代碼壞味的度量特征數(shù)據(jù)作為輸入,如式(4):

    4 實驗與分析

    4.1 訓(xùn)練數(shù)據(jù)集

    數(shù)據(jù)集所使用的項目是從GitHub項目中挑選出來的,共包括21個項目,如表2所示,其中:NOC為類的數(shù)量,NOM為方法的數(shù)量,LOC為代碼行數(shù)。在構(gòu)造數(shù)據(jù)集時選擇了不同領(lǐng)域的項目,這樣可以消除相同領(lǐng)域項目可能帶來的特定代碼風(fēng)格的影響,以保證訓(xùn)練樣本的綜合性;除此之外,這些樣本都是知名的開源項目,代碼質(zhì)量較高,在獲取樣本時可以獲得更為準(zhǔn)確的標(biāo)簽樣本[14]。

    利用3.1節(jié)方法先從表2的項目中提取5種度量特征;再根據(jù)3.2節(jié)方法對提取的特征進(jìn)行標(biāo)記;針對提取數(shù)據(jù)不均衡的情況,以3.3節(jié)介紹的方法進(jìn)行過采樣和欠采樣處理。最終形成的代碼壞味的訓(xùn)練數(shù)據(jù)集形式如表3所示,訓(xùn)練數(shù)據(jù)集共8 001條。表3中最后一列標(biāo)簽1表示為該方法存在此代碼壞味,標(biāo)簽0表示該方法不存在此代碼壞味。

    4.2 測試數(shù)據(jù)集

    選取10個新的程序用于生成測試數(shù)據(jù)集,測試集使用的程序如表4所示,測試集共89 455條。

    4.3 實驗過程

    首先以4.1節(jié)方法構(gòu)建出訓(xùn)練數(shù)據(jù)集。將數(shù)據(jù)集輸入Attention-CNN模型中,本文所構(gòu)建的模型代碼是基于Keras實現(xiàn)的,在模型優(yōu)化階段,以交叉熵作為損失函數(shù),并選擇自適應(yīng)學(xué)習(xí)率的Adam作為優(yōu)化算法。隨后,模型在訓(xùn)練集上進(jìn)行多輪訓(xùn)練,將迭代次數(shù)設(shè)置為100,批尺寸設(shè)置為64,經(jīng)過訓(xùn)練,可以得到一個以軟件度量值為輸入的分類器。

    表2 訓(xùn)練集所涉項目

    表3 過緊的耦合訓(xùn)練數(shù)據(jù)集

    表4 測試集所涉項目

    以4.2節(jié)所述方式生成測試數(shù)據(jù)集。將測試數(shù)據(jù)集輸入到已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)分類器后,得到的輸出集合即為神經(jīng)網(wǎng)絡(luò)分類器在此測試集上的預(yù)測結(jié)果。

    4.4 實驗結(jié)果

    現(xiàn)有的利用深度學(xué)習(xí)檢測代碼壞味的方法如Kim[19]提出的構(gòu)建深度學(xué)習(xí)模型來建立代碼壞味與面向?qū)ο蠖攘恐g的關(guān)系是基于CNN模型的,2019年Das等[20]提出利用CNN模型構(gòu)建代碼度量特征和預(yù)測值之間復(fù)雜的映射,在依賴度量特征信息來構(gòu)建深度學(xué)習(xí)模型的工作中,很多工作用到了CNN模型,所以本文將CNN模型作為對比模型。

    三種代碼壞味的檢測結(jié)果如表5~7所示。因為一個開源項目中存在代碼壞味的方法是少數(shù),即在測試集中標(biāo)簽為0的數(shù)量遠(yuǎn)遠(yuǎn)大于標(biāo)簽為1的數(shù)量。為了避免出現(xiàn)對標(biāo)簽1的預(yù)測結(jié)果不夠高,但對標(biāo)簽0的預(yù)測結(jié)果很高,從而導(dǎo)致整體預(yù)測結(jié)果較高的情況,選擇分別顯示對標(biāo)簽1和標(biāo)簽0的預(yù)測結(jié)果來展示本文所構(gòu)建模型的性能。

    表5 過緊的耦合檢測結(jié)果 單位: %

    表6 分散的耦合檢測結(jié)果 單位: %

    表7 散彈式修改檢測結(jié)果 單位: %

    由表8可知Attention-CNN的模型相較于CNN模型由于增加了模型復(fù)雜度,所以時間開銷有所增大,但是增幅并不大,過緊的耦合和分散的耦合在Attention-CNN模型上有更好的結(jié)果,在檢測這兩個代碼壞味時犧牲小部分時間開銷來增加準(zhǔn)確率是值得的。

    表8 三種代碼壞味的時間開銷 單位: s

    4.5 有效性威脅

    對實驗過程中威脅有效性的幾個因素討論如下:

    1)項目中具有代碼壞味的方法是少數(shù),這會導(dǎo)致提取的訓(xùn)練集中容易出現(xiàn)數(shù)據(jù)不均衡的情況。為了減少這一威脅,采用了欠采樣和過采樣技術(shù),去掉了大量標(biāo)簽為0的數(shù)據(jù),并使用SMOTE(Synthetic Minority Oversampling Technique)生成了一部分標(biāo)簽為1的數(shù)據(jù)。

    2)實驗數(shù)據(jù)集中僅包含10個開源項目,本文所得出的結(jié)論有可能不適用于其他項目。為了減少這一威脅,實驗選擇的訓(xùn)練及測試項目均出自不同的研究領(lǐng)域及開發(fā)人員,以期減少某些項目間的特定特征對驗證結(jié)果造成的影響。

    3)測試集中標(biāo)簽0的數(shù)量遠(yuǎn)遠(yuǎn)多于標(biāo)簽1的數(shù)量,在這種情況下,模型對標(biāo)簽0的預(yù)測結(jié)果通常很高,這就導(dǎo)致模型所體現(xiàn)的高預(yù)測率可能僅僅體現(xiàn)在對標(biāo)簽0的預(yù)測上。為減少這一威脅,選擇分別討論對標(biāo)簽1和標(biāo)簽0的預(yù)測結(jié)果來展示本文所構(gòu)建模型的性能。

    5 結(jié)語

    本文提出了一種基于深度學(xué)習(xí)的代碼壞味檢測方法來檢測與耦合度相關(guān)的三種代碼壞味。從21個開源項目中提取訓(xùn)練樣本,對這些樣本進(jìn)行度量信息提取和標(biāo)記后將其輸入神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,最后在開源項目上對所生成的網(wǎng)絡(luò)模型進(jìn)行了測試。實驗結(jié)果表明,本文提出的深度學(xué)習(xí)方法具有較高的預(yù)測精度。未來我們將把代碼更多層次的特征融合在檢測方法里,不僅關(guān)注代碼的度量特征,還將關(guān)注代碼的語義和歷史信息等特征,在更準(zhǔn)確的檢測代碼壞味方面作出更大的努力。

    [1] MENS T, TOURWE T. A survey of software refactoring[J]. IEEE Transactions on Software Engineering, 2004, 30(2): 126-139.

    [2] FOWLER M, BECK K, BRANT J, et al. Refactoring: Improving the Design of Existing Code[M]. Boston: Addison-Wesley Professional, 1999: 71-76.

    [3] APRIL A, ABRAN A. Software Maintenance Management: Evaluation and Continuous Improvement [M]. Hoboken: John Wiley & Sons, 2012: 1-5.

    [4] YOSHIDA N, KINOSHITA M, IIDA H. A cohesion metric approach to dividing source code into functional segments to improve maintainability[C]// Proceedings of the 16th European Conference on Software Maintenance and Reengineering. Piscataway: IEEE, 2012: 365-370.

    [5] PALOMBA F, BAVOTA G, DI PENTA M, et al. Mining version histories for detecting code smells[J]. IEEE Transactions on Software Engineering, 2015, 41(5): 462-489.

    [6] SALES V, TERRA R, MIRANDA L F, et al. Recommending move method refactorings using dependency sets[C]// Proceedings of the 20th Working Conference on Reverse Engineering. Piscataway: IEEE, 2013: 232-241.

    [7] M?NTYL? M V, LASSENIUS C. Subjective evaluation of software evolvability using code smells: an empirical study[J]. Empirical Software Engineering, 2006, 11(3): 395-431.

    [8] MAIGA A, ALI N, BHATTACHARYA N, et al. Support vector machines for anti-pattern detection[C]// Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2012: 278-281.

    [9] KREIMER J. Adaptive detection of design flaws[J]. Electronic Notes in Theoretical Computer Science, 2005, 141(4): 117-136.

    [10] FONTANA F A, M?NTYL? M V, ZANONI M, et al. Comparing and experimenting machine learning techniques for code smell detection[J]. Empirical Software Engineering, 2016, 21(3): 1143-1191.

    [11] DI NUCCI D, PALOMBA F, TAMBURRI D A, et al. Detecting code smells using machine learning techniques: are we there yet?[C]// Proceedings of the 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering. Piscataway: IEEE, 2018: 612-621.

    [12] BENGIO Y, COURVILLE A, VINCENT P. Representation learning: a review and new perspectives[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(8): 1798-1828.

    [13] GUO X L, SHI C Y, JIANG H. Deep semantic-based feature envy identification[C]// Proceedings of the 11th Asia-Pacific Symposium on Internetware. New York: ACM, 2019: No.19.

    [14] 卜依凡,劉輝,李光杰. 一種基于深度學(xué)習(xí)的上帝類檢測方法[J]. 軟件學(xué)報, 2019, 30(5): 1360-1374.(BU Y F, LIU H, LI G J. God class detection approach based on deep learning[J]. Journal of Software, 2019, 30(5): 1360-1374.)

    [15] KESSENTINI W, KESSENTINI M, SAHRAOUI H, et al. A cooperative parallel search-based software engineering approach for code-smells detection[J]. IEEE Transactions on Software Engineering, 2014, 40(9): 841-861.

    [16] FU S Z, SHEN B J. Code bad smell detection through evolutionary data mining[C]// Proceedings of the 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. Piscataway: IEEE, 2015: 1-9.

    [17] VIDAL S, VAZQUEZ H, DIAZ-PACE J A, et al. JSpIRIT: a flexible tool for the analysis of code smells[C]// Proceedings of the 34th International Conference of the Chilean Computer Science Society. Piscataway: IEEE, 2015: 1-6.

    [18] HADJ-KACEM M, BOUASSIDA N. A hybrid approach to detect code smells using deep learning[C]// Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering. Setúbal: SciTePress, 2018:137-146.

    [19] KIM D K. Finding bad code smells with neural network models[J]. International Journal of Electrical and Computer Engineering, 2017, 7(6): 3613-3621.

    [20] DAS A K, YADAV S, DHAL S. Detecting code smells using deep learning[C]// Proceedings of the 2019 IEEE Region 10 Conference. Piscataway: IEEE, 2019: 2081-2086.

    [21] LANZA M, MARINESCU R. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems[M]. Berlin: Springer, 2006: 115-167.

    [22] CHAWLA N V, BOWYER K W, HALL L O, et al. SMOTE: synthetic minority over-sampling technique[J]. Journal of Artificial Intelligence Research, 2002, 16: 321-357.

    [23] BAHDANAU D, CHO K, BENGIO Y. Neural machine translation by jointly learning to align and translate [EB/OL]. [2020-12-08]. http://de.arxiv.org/pdf/1409.0473.

    Coupling related code smell detection method based on deep learning

    SU Shan, ZHANG Yang*, ZHANG Dongwen

    (,,050018,)

    Heuristic and machine learning based code smell detection methods have been proved to have limitations, and most of these methods focus on the common code smells. In order to solve these problems, a deep learning based method was proposed to detect three relatively rare code smells which are related to coupling, those are Intensive Coupling, Dispersed Coupling and Shotgun Surgery. First, the metrics of three code smells were extracted, and the obtained data were processed. Second, a deep learning model combining Convolutional Neural Network (CNN) and attention mechanism was constructed, and the introduced attention mechanism was able to assign weights to the metric features. The datasets were extracted from 21 open source projects, and the detection methods were validated in 10 open source projects and compared with CNN model. Experimental results show that the proposed model achieves the better performance with the code smell precisions of 93.61% and 99.76% for Intensive Coupling and Dispersed Coupling respectively, and the CNN model achieves the better results with the code smell precision of 98.59% for Shotgun Surgery.

    code smell; coupling; deep learning; Convolutional Neural Network (CNN); attention mechanism

    This work is partially supported by National Natural Science Foundation of China (61440012), Key Basic Research Project of Hebei Fundamental Research Plan (18960106D).

    SU Shan, born in 1995, M. S. candidate. Her research interests include software refactoring.

    ZHANG Yang, born in 1980, Ph. D., associate professor. His research interests include intelligent software, software refactoring.

    ZHANG Dongwen, born in 1964, Ph. D., professor. Her research interests include intelligent software, software refactoring.

    TP311

    A

    1001-9081(2022)06-1702-06

    10.11772/j.issn.1001-9081.2021061403

    2021?08?05;

    2021?09?08;

    2021?10?20。

    國家自然科學(xué)基金資助項目(61440012);河北省基礎(chǔ)研究計劃重點(diǎn)基礎(chǔ)專項(18960106D)。

    蘇珊(1995—),女,河北石家莊人,碩士研究生,主要研究方向:軟件重構(gòu);張楊(1980—),男,河北秦皇島人,副教授,博士,CCF高級會員,主要研究方向:智能軟件、軟件重構(gòu);張冬雯(1964—),女,河北石家莊人,教授,博士,CCF 會員,主要研究方向:智能軟件、軟件重構(gòu)。

    猜你喜歡
    度量代碼耦合
    有趣的度量
    非Lipschitz條件下超前帶跳倒向耦合隨機(jī)微分方程的Wong-Zakai逼近
    模糊度量空間的強(qiáng)嵌入
    迷向表示分為6個不可約直和的旗流形上不變愛因斯坦度量
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    地質(zhì)異常的奇異性度量與隱伏源致礦異常識別
    基于“殼-固”耦合方法模擬焊接裝配
    大型鑄鍛件(2015年5期)2015-12-16 11:43:20
    老熟妇仑乱视频hdxx| 国产精品电影一区二区三区| 欧美黑人巨大hd| 国产私拍福利视频在线观看| 身体一侧抽搐| 一级黄色大片毛片| 午夜久久久久精精品| 三级毛片av免费| 一进一出抽搐动态| 给我免费播放毛片高清在线观看| 久久天躁狠狠躁夜夜2o2o| 最新中文字幕久久久久| 精品不卡国产一区二区三区| 国产成+人综合+亚洲专区| 男女那种视频在线观看| 亚洲欧美精品综合久久99| 最新在线观看一区二区三区| 午夜精品久久久久久毛片777| 国产伦人伦偷精品视频| 香蕉av资源在线| avwww免费| 免费av毛片视频| www日本黄色视频网| 亚洲 欧美 日韩 在线 免费| 日本在线视频免费播放| 精品无人区乱码1区二区| 成人性生交大片免费视频hd| 午夜精品久久久久久毛片777| 久99久视频精品免费| 好男人在线观看高清免费视频| 午夜福利免费观看在线| 十八禁网站免费在线| 亚洲最大成人av| 九九久久精品国产亚洲av麻豆| 日韩欧美国产一区二区入口| 欧美最新免费一区二区三区 | 一级黄色大片毛片| 91狼人影院| 51国产日韩欧美| 最近最新免费中文字幕在线| 少妇裸体淫交视频免费看高清| 性色av乱码一区二区三区2| 人人妻人人澡欧美一区二区| 日本熟妇午夜| 国产色爽女视频免费观看| 欧美中文日本在线观看视频| 午夜精品久久久久久毛片777| 午夜福利视频1000在线观看| 美女高潮喷水抽搐中文字幕| 亚洲精品亚洲一区二区| 白带黄色成豆腐渣| 国产色爽女视频免费观看| 色综合欧美亚洲国产小说| 亚洲人成伊人成综合网2020| 亚洲av电影在线进入| 国产精品一及| 国产私拍福利视频在线观看| 国产精品三级大全| 国产一区二区三区在线臀色熟女| 长腿黑丝高跟| 成人三级黄色视频| 又粗又爽又猛毛片免费看| 中文字幕av成人在线电影| 美女大奶头视频| 99热只有精品国产| a级毛片免费高清观看在线播放| 午夜亚洲福利在线播放| 国产精华一区二区三区| 日本黄色片子视频| 免费看日本二区| 午夜激情欧美在线| 国产精品永久免费网站| 久久国产精品人妻蜜桃| 99精品在免费线老司机午夜| 亚洲成av人片在线播放无| 国产精品久久久久久久电影| av中文乱码字幕在线| 最新中文字幕久久久久| 国产蜜桃级精品一区二区三区| 亚洲成人中文字幕在线播放| 欧美区成人在线视频| 国产精品亚洲美女久久久| 日韩国内少妇激情av| h日本视频在线播放| 精品不卡国产一区二区三区| h日本视频在线播放| 日本 av在线| 日韩精品青青久久久久久| 午夜两性在线视频| 女同久久另类99精品国产91| 久久香蕉精品热| 亚洲中文字幕一区二区三区有码在线看| 日本成人三级电影网站| 国产成+人综合+亚洲专区| 亚洲av中文字字幕乱码综合| 美女被艹到高潮喷水动态| 真实男女啪啪啪动态图| 在线国产一区二区在线| 日韩欧美国产在线观看| 国产成人欧美在线观看| 亚洲成人久久爱视频| 日韩亚洲欧美综合| 午夜福利视频1000在线观看| 精品久久久久久久末码| 一区二区三区四区激情视频 | 久久精品影院6| 99久久无色码亚洲精品果冻| 男女之事视频高清在线观看| 精品乱码久久久久久99久播| 神马国产精品三级电影在线观看| 亚洲精品在线美女| 老熟妇乱子伦视频在线观看| 国产午夜精品论理片| 欧美最黄视频在线播放免费| 精品久久久久久久久久久久久| 午夜福利成人在线免费观看| aaaaa片日本免费| 99精品久久久久人妻精品| 亚洲欧美日韩高清专用| 国产成人av教育| 精品午夜福利视频在线观看一区| 精品久久久久久久久久久久久| 亚洲人成网站高清观看| 日韩欧美在线二视频| 人妻久久中文字幕网| 日韩欧美在线二视频| 99久久精品一区二区三区| 国产精品99久久久久久久久| 免费看光身美女| 欧美最新免费一区二区三区 | 精品久久久久久,| 88av欧美| 日本免费a在线| 欧美xxxx黑人xx丫x性爽| 欧美色视频一区免费| 成人性生交大片免费视频hd| 97热精品久久久久久| 狠狠狠狠99中文字幕| 可以在线观看的亚洲视频| 精品日产1卡2卡| 日日摸夜夜添夜夜添小说| 搞女人的毛片| 一进一出抽搐gif免费好疼| 精华霜和精华液先用哪个| 国产精品久久久久久亚洲av鲁大| 亚洲av.av天堂| 在线观看美女被高潮喷水网站 | 国产精品一区二区免费欧美| 亚洲第一电影网av| 免费人成在线观看视频色| 亚洲一区二区三区不卡视频| 99国产精品一区二区三区| 波野结衣二区三区在线| 999久久久精品免费观看国产| 97碰自拍视频| 亚洲 国产 在线| 男人舔奶头视频| 国产蜜桃级精品一区二区三区| 日本 av在线| 久久久久久久久大av| 听说在线观看完整版免费高清| 免费人成视频x8x8入口观看| 久久九九热精品免费| 美女cb高潮喷水在线观看| 禁无遮挡网站| 日本一二三区视频观看| 亚洲欧美日韩高清专用| 午夜激情福利司机影院| 日本黄色片子视频| 色av中文字幕| 乱码一卡2卡4卡精品| 国产精品电影一区二区三区| 91九色精品人成在线观看| 在线观看66精品国产| 午夜两性在线视频| 国产免费一级a男人的天堂| 亚洲中文字幕一区二区三区有码在线看| 婷婷亚洲欧美| 国产精品国产高清国产av| 少妇高潮的动态图| 一个人看的www免费观看视频| 国产精品乱码一区二三区的特点| 搞女人的毛片| 国产黄片美女视频| 婷婷丁香在线五月| 久久久国产成人免费| 热99re8久久精品国产| 51国产日韩欧美| 国产69精品久久久久777片| 亚洲欧美精品综合久久99| 欧美成人免费av一区二区三区| 亚洲美女搞黄在线观看 | 久久久久久久午夜电影| 高清毛片免费观看视频网站| 国产精品永久免费网站| 成人一区二区视频在线观看| 可以在线观看毛片的网站| 波多野结衣巨乳人妻| 欧美日本视频| 久久久久久九九精品二区国产| 国产免费av片在线观看野外av| 日本免费a在线| 真人一进一出gif抽搐免费| 首页视频小说图片口味搜索| 国产高清三级在线| 久久久久久久久久成人| 嫩草影视91久久| 久久精品综合一区二区三区| 十八禁人妻一区二区| 无人区码免费观看不卡| 免费在线观看亚洲国产| 老司机午夜福利在线观看视频| 精品久久久久久成人av| 波多野结衣巨乳人妻| 女同久久另类99精品国产91| 亚洲欧美日韩无卡精品| 国产伦精品一区二区三区视频9| 成人特级av手机在线观看| 性色avwww在线观看| 青草久久国产| 久99久视频精品免费| 欧美高清性xxxxhd video| 91在线观看av| 男人舔奶头视频| 国产一区二区激情短视频| 亚洲五月天丁香| 一进一出抽搐动态| 成年女人毛片免费观看观看9| 国产av麻豆久久久久久久| 每晚都被弄得嗷嗷叫到高潮| 88av欧美| 亚洲欧美日韩高清专用| 国产高清三级在线| 亚洲中文字幕日韩| 国产精品免费一区二区三区在线| 有码 亚洲区| 在线观看一区二区三区| 久久精品国产清高在天天线| 亚洲熟妇熟女久久| 天堂√8在线中文| 国产av不卡久久| 天堂√8在线中文| 琪琪午夜伦伦电影理论片6080| 亚洲av熟女| 亚洲最大成人手机在线| 首页视频小说图片口味搜索| 18+在线观看网站| 成人av一区二区三区在线看| 亚洲 欧美 日韩 在线 免费| 日韩免费av在线播放| 精品人妻视频免费看| 色吧在线观看| a级毛片a级免费在线| 亚洲av熟女| 亚洲国产色片| 国产v大片淫在线免费观看| 日本一本二区三区精品| 久久久久久久久中文| 国产极品精品免费视频能看的| 欧美又色又爽又黄视频| 国产一区二区在线观看日韩| 十八禁网站免费在线| 午夜亚洲福利在线播放| 国产亚洲精品久久久com| 首页视频小说图片口味搜索| 人妻丰满熟妇av一区二区三区| 国产精品人妻久久久久久| 欧美日韩黄片免| 99热只有精品国产| 十八禁人妻一区二区| 亚洲天堂国产精品一区在线| 又黄又爽又刺激的免费视频.| 精品久久久久久久人妻蜜臀av| 国产精品乱码一区二三区的特点| 国内精品美女久久久久久| 亚州av有码| 国产精华一区二区三区| 亚洲av成人精品一区久久| 日韩精品中文字幕看吧| av国产免费在线观看| 亚洲av日韩精品久久久久久密| 免费av毛片视频| 国产亚洲精品久久久com| 天堂网av新在线| av天堂在线播放| 日韩欧美免费精品| 婷婷丁香在线五月| 日本成人三级电影网站| 搡女人真爽免费视频火全软件 | 日韩欧美免费精品| 最近在线观看免费完整版| 日韩大尺度精品在线看网址| ponron亚洲| 90打野战视频偷拍视频| 精品无人区乱码1区二区| 一卡2卡三卡四卡精品乱码亚洲| 欧美丝袜亚洲另类 | 婷婷丁香在线五月| 日日摸夜夜添夜夜添小说| av福利片在线观看| 九九久久精品国产亚洲av麻豆| 一个人观看的视频www高清免费观看| 老司机福利观看| 白带黄色成豆腐渣| 五月伊人婷婷丁香| 欧美性猛交╳xxx乱大交人| 给我免费播放毛片高清在线观看| 国内精品久久久久久久电影| 日韩大尺度精品在线看网址| 亚洲一区二区三区色噜噜| 亚洲精品粉嫩美女一区| 亚洲一区高清亚洲精品| 免费无遮挡裸体视频| av天堂在线播放| 国产精品免费一区二区三区在线| 两个人视频免费观看高清| 老司机午夜十八禁免费视频| 亚洲欧美日韩高清在线视频| 99视频精品全部免费 在线| 亚洲片人在线观看| 性色av乱码一区二区三区2| 在线看三级毛片| 看免费av毛片| 国产亚洲精品久久久久久毛片| 一区福利在线观看| 欧美成人a在线观看| 观看免费一级毛片| 999久久久精品免费观看国产| 精品国产三级普通话版| 亚洲性夜色夜夜综合| 成人性生交大片免费视频hd| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 欧美日本视频| 每晚都被弄得嗷嗷叫到高潮| 久久精品国产清高在天天线| 欧美在线一区亚洲| 国产精品亚洲av一区麻豆| 亚洲中文日韩欧美视频| 我的老师免费观看完整版| 精品一区二区免费观看| 久久6这里有精品| aaaaa片日本免费| a级一级毛片免费在线观看| 身体一侧抽搐| 久久热精品热| 久久久成人免费电影| 啪啪无遮挡十八禁网站| 中出人妻视频一区二区| 亚洲成av人片在线播放无| 日韩免费av在线播放| 亚洲熟妇中文字幕五十中出| 久久久久国内视频| 久久草成人影院| 在线国产一区二区在线| 每晚都被弄得嗷嗷叫到高潮| 我要看日韩黄色一级片| 国产69精品久久久久777片| 欧美日本视频| 国产精品久久久久久久电影| 搡老岳熟女国产| 嫩草影院新地址| 国产69精品久久久久777片| 国产精品一区二区三区四区免费观看 | 亚洲专区国产一区二区| 一级a爱片免费观看的视频| 一夜夜www| 欧洲精品卡2卡3卡4卡5卡区| 国产老妇女一区| 国产欧美日韩精品亚洲av| 亚洲欧美激情综合另类| 亚洲午夜理论影院| 97碰自拍视频| 色哟哟·www| 久99久视频精品免费| 午夜免费男女啪啪视频观看 | 十八禁人妻一区二区| 欧美一级a爱片免费观看看| 12—13女人毛片做爰片一| 亚洲性夜色夜夜综合| 老司机福利观看| 人妻制服诱惑在线中文字幕| 中文字幕人成人乱码亚洲影| 国产成人影院久久av| 天堂av国产一区二区熟女人妻| 一a级毛片在线观看| 欧美激情在线99| 色av中文字幕| 麻豆成人av在线观看| 亚洲av成人av| 一进一出抽搐动态| 欧美日韩瑟瑟在线播放| 长腿黑丝高跟| 免费看日本二区| 成人国产综合亚洲| 国产一区二区在线观看日韩| 一个人免费在线观看电影| 国产精品久久电影中文字幕| 身体一侧抽搐| 深爱激情五月婷婷| 中文字幕免费在线视频6| 欧美区成人在线视频| 婷婷六月久久综合丁香| 午夜亚洲福利在线播放| 国产精品伦人一区二区| 亚洲av五月六月丁香网| 亚洲综合色惰| 99精品久久久久人妻精品| 赤兔流量卡办理| 亚洲欧美日韩无卡精品| 夜夜爽天天搞| 十八禁国产超污无遮挡网站| 午夜福利高清视频| 一个人免费在线观看电影| 高清在线国产一区| 一区二区三区高清视频在线| 国产精品三级大全| 亚洲国产色片| 少妇的逼水好多| 国产真实伦视频高清在线观看 | 日韩有码中文字幕| 免费人成在线观看视频色| 波多野结衣高清无吗| 亚洲av熟女| 国产欧美日韩精品一区二区| 日韩成人在线观看一区二区三区| www.www免费av| 麻豆一二三区av精品| 久久欧美精品欧美久久欧美| 国产一区二区三区在线臀色熟女| 免费看日本二区| 亚洲成人免费电影在线观看| 亚洲性夜色夜夜综合| 乱码一卡2卡4卡精品| 99国产极品粉嫩在线观看| 性色avwww在线观看| 国产精品不卡视频一区二区 | 男人和女人高潮做爰伦理| 国产在线男女| 久久99热这里只有精品18| 国产成人av教育| 亚洲专区国产一区二区| 国产精品自产拍在线观看55亚洲| 亚洲不卡免费看| 国产免费一级a男人的天堂| 99国产综合亚洲精品| 国产精品久久久久久久久免 | 村上凉子中文字幕在线| 一区二区三区免费毛片| 亚洲午夜理论影院| eeuss影院久久| 精品人妻熟女av久视频| 精品不卡国产一区二区三区| 听说在线观看完整版免费高清| 真人一进一出gif抽搐免费| 桃色一区二区三区在线观看| 免费av不卡在线播放| 免费高清视频大片| 精品午夜福利视频在线观看一区| 亚洲中文字幕日韩| 最近中文字幕高清免费大全6 | 久久久久久九九精品二区国产| 国产精品自产拍在线观看55亚洲| 日本三级黄在线观看| 一级黄色大片毛片| 美女免费视频网站| 真人一进一出gif抽搐免费| 精品久久久久久久久久久久久| 国产精品亚洲一级av第二区| 国产精品爽爽va在线观看网站| 如何舔出高潮| 国产爱豆传媒在线观看| 十八禁人妻一区二区| 亚洲国产精品合色在线| 九色成人免费人妻av| 老司机午夜福利在线观看视频| 亚洲 欧美 日韩 在线 免费| a级毛片a级免费在线| 色尼玛亚洲综合影院| 久久久久久九九精品二区国产| 午夜亚洲福利在线播放| 国产在线精品亚洲第一网站| 波多野结衣高清无吗| 日本 欧美在线| 午夜免费男女啪啪视频观看 | 日本黄色片子视频| 夜夜看夜夜爽夜夜摸| 久久午夜福利片| 内射极品少妇av片p| 十八禁网站免费在线| 在线播放国产精品三级| 嫩草影视91久久| 亚洲精华国产精华精| 美女被艹到高潮喷水动态| av欧美777| 一级黄片播放器| 日本黄大片高清| 18禁裸乳无遮挡免费网站照片| 日日摸夜夜添夜夜添av毛片 | 哪里可以看免费的av片| 亚洲天堂国产精品一区在线| 色在线成人网| 99久久精品国产亚洲精品| 一区二区三区高清视频在线| 最近最新免费中文字幕在线| 欧美日韩国产亚洲二区| 欧美精品国产亚洲| 久久久久精品国产欧美久久久| 五月伊人婷婷丁香| 一级av片app| 波多野结衣高清无吗| 简卡轻食公司| 亚洲电影在线观看av| 久久天躁狠狠躁夜夜2o2o| 成人精品一区二区免费| 久久久久久久久大av| 久久草成人影院| 国产免费一级a男人的天堂| 亚洲五月天丁香| 国产成+人综合+亚洲专区| 天堂动漫精品| 又黄又爽又刺激的免费视频.| 一区福利在线观看| 精品日产1卡2卡| 午夜福利18| 日本撒尿小便嘘嘘汇集6| 老熟妇仑乱视频hdxx| 18禁裸乳无遮挡免费网站照片| 欧美+日韩+精品| 我要看日韩黄色一级片| 成人欧美大片| 哪里可以看免费的av片| 国产又黄又爽又无遮挡在线| 少妇丰满av| 最新在线观看一区二区三区| 国产精品综合久久久久久久免费| 青草久久国产| 欧美区成人在线视频| 一区二区三区免费毛片| 国产精品一区二区三区四区免费观看 | 俄罗斯特黄特色一大片| 美女被艹到高潮喷水动态| 国产精品免费一区二区三区在线| 免费黄网站久久成人精品 | 性色avwww在线观看| 亚洲av二区三区四区| 国内毛片毛片毛片毛片毛片| 日日夜夜操网爽| 亚洲,欧美精品.| 欧美国产日韩亚洲一区| 中文字幕人成人乱码亚洲影| 非洲黑人性xxxx精品又粗又长| 日韩欧美 国产精品| 日本一二三区视频观看| 在线观看免费视频日本深夜| 国产成人a区在线观看| 久久99热这里只有精品18| 99热这里只有精品一区| 村上凉子中文字幕在线| 亚洲精品456在线播放app | 日韩成人在线观看一区二区三区| 午夜激情福利司机影院| 国产高潮美女av| 91久久精品国产一区二区成人| 又黄又爽又免费观看的视频| 搡老妇女老女人老熟妇| 欧美精品啪啪一区二区三区| 十八禁网站免费在线| 99热这里只有是精品50| 国产免费av片在线观看野外av| 精品99又大又爽又粗少妇毛片 | 我的老师免费观看完整版| 一边摸一边抽搐一进一小说| 欧美日韩瑟瑟在线播放| 免费看美女性在线毛片视频| 9191精品国产免费久久| 国产一区二区激情短视频| 丁香六月欧美| 90打野战视频偷拍视频| 免费一级毛片在线播放高清视频| 少妇的逼好多水| 午夜视频国产福利| 成人特级av手机在线观看| 麻豆一二三区av精品| 长腿黑丝高跟| 欧美一级a爱片免费观看看| 免费电影在线观看免费观看| www.熟女人妻精品国产| 草草在线视频免费看| 久久伊人香网站| 国产精品,欧美在线| 亚洲欧美日韩高清在线视频| 国产成人福利小说| 小蜜桃在线观看免费完整版高清| 色综合站精品国产| 色综合婷婷激情| 51午夜福利影视在线观看| 欧美+日韩+精品| 51午夜福利影视在线观看| 久久精品国产亚洲av涩爱 | 午夜福利在线观看吧| 九九在线视频观看精品| 久9热在线精品视频| 日韩欧美 国产精品| 在现免费观看毛片| 国产精品综合久久久久久久免费| 亚洲五月婷婷丁香| 一区二区三区激情视频| 18禁裸乳无遮挡免费网站照片| 亚洲人成网站在线播放欧美日韩| 在线观看午夜福利视频| 永久网站在线| 精品熟女少妇八av免费久了| 亚洲精品在线观看二区| 久久99热6这里只有精品| 亚洲精品成人久久久久久|