• <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
    国产激情欧美一区二区| 搡老熟女国产l中国老女人| 午夜免费鲁丝| 看免费av毛片| 亚洲中文日韩欧美视频| 国产99久久九九免费精品| 搡老熟女国产l中国老女人| 欧美国产精品va在线观看不卡| 国产黄片美女视频| 亚洲中文字幕日韩| 成人av一区二区三区在线看| 在线观看www视频免费| 老汉色∧v一级毛片| 12—13女人毛片做爰片一| 精品电影一区二区在线| 亚洲精品一区av在线观看| 国产又色又爽无遮挡免费看| 亚洲,欧美精品.| 国产av不卡久久| 俄罗斯特黄特色一大片| 99久久无色码亚洲精品果冻| 午夜精品在线福利| av片东京热男人的天堂| 亚洲一区高清亚洲精品| www.精华液| 男女那种视频在线观看| 亚洲av中文字字幕乱码综合 | 一二三四社区在线视频社区8| 91成年电影在线观看| 欧美激情高清一区二区三区| 最近最新中文字幕大全免费视频| 久久久久国内视频| 中文字幕人妻熟女乱码| 在线av久久热| 在线播放国产精品三级| 欧美最黄视频在线播放免费| 国产伦在线观看视频一区| 变态另类成人亚洲欧美熟女| 亚洲中文字幕一区二区三区有码在线看 | 亚洲七黄色美女视频| 免费人成视频x8x8入口观看| 欧美在线一区亚洲| 一个人观看的视频www高清免费观看 | 精品欧美国产一区二区三| 午夜免费激情av| 久久午夜亚洲精品久久| 午夜精品在线福利| 日本一区二区免费在线视频| xxxwww97欧美| 国产区一区二久久| 法律面前人人平等表现在哪些方面| 亚洲在线自拍视频| 国产亚洲精品综合一区在线观看 | 国产伦在线观看视频一区| 91在线观看av| 久久精品国产综合久久久| 午夜亚洲福利在线播放| 极品教师在线免费播放| 丝袜美腿诱惑在线| 亚洲人成77777在线视频| 精品国产乱码久久久久久男人| 中亚洲国语对白在线视频| 亚洲一卡2卡3卡4卡5卡精品中文| 十分钟在线观看高清视频www| 国产亚洲精品综合一区在线观看 | 极品教师在线免费播放| 精品欧美一区二区三区在线| 99国产精品一区二区三区| 97人妻精品一区二区三区麻豆 | 国产成人精品久久二区二区免费| 久久国产乱子伦精品免费另类| 欧美激情高清一区二区三区| 色尼玛亚洲综合影院| 777久久人妻少妇嫩草av网站| 久久亚洲精品不卡| 中亚洲国语对白在线视频| 国内久久婷婷六月综合欲色啪| 黄色成人免费大全| 亚洲久久久国产精品| 国产成人影院久久av| 狂野欧美激情性xxxx| 国产精品永久免费网站| 一级毛片女人18水好多| 一本综合久久免费| 国产成人欧美| 美女免费视频网站| 亚洲熟妇中文字幕五十中出| 国产高清有码在线观看视频 | 变态另类丝袜制服| 一边摸一边抽搐一进一小说| 欧美乱妇无乱码| xxxwww97欧美| 午夜福利成人在线免费观看| 精品第一国产精品| 免费在线观看视频国产中文字幕亚洲| 亚洲精品中文字幕在线视频| 搡老岳熟女国产| 国产av不卡久久| 亚洲一码二码三码区别大吗| 精品欧美国产一区二区三| 一卡2卡三卡四卡精品乱码亚洲| 日韩大尺度精品在线看网址| 少妇熟女aⅴ在线视频| 丝袜在线中文字幕| 日韩欧美一区视频在线观看| 欧美成人午夜精品| 国产亚洲精品久久久久久毛片| 久久精品91蜜桃| 非洲黑人性xxxx精品又粗又长| 日韩一卡2卡3卡4卡2021年| 校园春色视频在线观看| 黑人欧美特级aaaaaa片| 美女国产高潮福利片在线看| 亚洲av美国av| 在线看三级毛片| 又黄又粗又硬又大视频| 国产一卡二卡三卡精品| 午夜激情福利司机影院| 91在线观看av| avwww免费| 视频在线观看一区二区三区| 狂野欧美激情性xxxx| 黄色毛片三级朝国网站| 白带黄色成豆腐渣| 国产私拍福利视频在线观看| 国产精品美女特级片免费视频播放器 | 最近最新免费中文字幕在线| 黑人欧美特级aaaaaa片| 久久久国产欧美日韩av| 亚洲午夜理论影院| 国产又色又爽无遮挡免费看| 国产熟女午夜一区二区三区| 搞女人的毛片| 在线永久观看黄色视频| 免费在线观看成人毛片| 变态另类成人亚洲欧美熟女| a级毛片a级免费在线| 久久精品国产99精品国产亚洲性色| 免费无遮挡裸体视频| 国产91精品成人一区二区三区| 嫁个100分男人电影在线观看| 亚洲欧美日韩高清在线视频| 日韩精品青青久久久久久| 久久人妻福利社区极品人妻图片| 国产aⅴ精品一区二区三区波| 国产成人欧美| 大型av网站在线播放| 正在播放国产对白刺激| 国产精品影院久久| 一本久久中文字幕| 啦啦啦观看免费观看视频高清| 国产精品免费视频内射| 韩国精品一区二区三区| 久久精品国产清高在天天线| 狠狠狠狠99中文字幕| 精品熟女少妇八av免费久了| 欧美国产日韩亚洲一区| 国产精品亚洲美女久久久| 91字幕亚洲| 亚洲精品美女久久av网站| 中国美女看黄片| 午夜福利成人在线免费观看| 9191精品国产免费久久| 99久久久亚洲精品蜜臀av| 国产蜜桃级精品一区二区三区| 国产黄色小视频在线观看| 国产成人av教育| 免费在线观看日本一区| 夜夜看夜夜爽夜夜摸| 国产主播在线观看一区二区| 亚洲av电影在线进入| 一个人观看的视频www高清免费观看 | 脱女人内裤的视频| 亚洲专区国产一区二区| 久久狼人影院| 性色av乱码一区二区三区2| 黄色片一级片一级黄色片| 国产aⅴ精品一区二区三区波| 又黄又爽又免费观看的视频| 亚洲精品一区av在线观看| av有码第一页| 香蕉国产在线看| 中文字幕最新亚洲高清| 老司机在亚洲福利影院| 99re在线观看精品视频| 性色av乱码一区二区三区2| 国产日本99.免费观看| 国产99久久九九免费精品| 妹子高潮喷水视频| 国产91精品成人一区二区三区| 亚洲五月天丁香| 熟女少妇亚洲综合色aaa.| 成人永久免费在线观看视频| 男人舔奶头视频| 视频区欧美日本亚洲| 一级作爱视频免费观看| 国产精品一区二区免费欧美| 亚洲五月色婷婷综合| 久久亚洲精品不卡| 69av精品久久久久久| 亚洲一区高清亚洲精品| 女人爽到高潮嗷嗷叫在线视频| 男人舔奶头视频| 精品久久久久久久毛片微露脸| x7x7x7水蜜桃| 色综合婷婷激情| 午夜福利在线在线| 亚洲狠狠婷婷综合久久图片| 三级毛片av免费| 久久久久久久久中文| 国产高清视频在线播放一区| 国产黄a三级三级三级人| 午夜精品在线福利| 精品一区二区三区av网在线观看| 亚洲五月色婷婷综合| 婷婷六月久久综合丁香| 亚洲精品粉嫩美女一区| 久久精品91无色码中文字幕| 国产精品亚洲av一区麻豆| 亚洲人成网站高清观看| 国产乱人伦免费视频| 色在线成人网| 琪琪午夜伦伦电影理论片6080| 亚洲成av人片免费观看| 十分钟在线观看高清视频www| 午夜免费鲁丝| 久久香蕉精品热| 亚洲精品久久成人aⅴ小说| 欧美成人性av电影在线观看| 久久精品国产99精品国产亚洲性色| 中文资源天堂在线| 免费在线观看完整版高清| 首页视频小说图片口味搜索| 日本免费一区二区三区高清不卡| 久久性视频一级片| 波多野结衣巨乳人妻| 亚洲国产毛片av蜜桃av| 亚洲成人免费电影在线观看| 欧美黑人精品巨大| 一级片免费观看大全| 色综合欧美亚洲国产小说| 免费在线观看视频国产中文字幕亚洲| 精华霜和精华液先用哪个| 免费高清视频大片| 成人三级黄色视频| 嫩草影院精品99| 成人手机av| 亚洲人成网站高清观看| 9191精品国产免费久久| 国产av在哪里看| 国产欧美日韩精品亚洲av| 视频在线观看一区二区三区| 特大巨黑吊av在线直播 | 宅男免费午夜| 视频在线观看一区二区三区| www.精华液| www日本在线高清视频| 在线视频色国产色| 日本a在线网址| 亚洲第一电影网av| av在线播放免费不卡| 免费在线观看亚洲国产| 精品国产超薄肉色丝袜足j| 亚洲aⅴ乱码一区二区在线播放 | 国产真人三级小视频在线观看| 亚洲一卡2卡3卡4卡5卡精品中文| 在线观看www视频免费| 国产成人精品久久二区二区91| 国产1区2区3区精品| 欧美激情 高清一区二区三区| 精品午夜福利视频在线观看一区| 亚洲精品一区av在线观看| 免费看十八禁软件| 久久青草综合色| 麻豆成人午夜福利视频| 黄色丝袜av网址大全| 久热爱精品视频在线9| 亚洲国产精品999在线| 国内毛片毛片毛片毛片毛片| www国产在线视频色| 国产精品国产高清国产av| 午夜a级毛片| 久久久久九九精品影院| 免费观看精品视频网站| 欧美又色又爽又黄视频| 国产黄色小视频在线观看| 91麻豆av在线| 不卡av一区二区三区| 久久国产精品男人的天堂亚洲| 日本a在线网址| 国产视频内射| 国产亚洲精品一区二区www| 99国产极品粉嫩在线观看| 亚洲人成77777在线视频| 精品一区二区三区四区五区乱码| 搡老熟女国产l中国老女人| 午夜福利欧美成人| 制服丝袜大香蕉在线| 十分钟在线观看高清视频www| 免费在线观看视频国产中文字幕亚洲| 日韩成人在线观看一区二区三区| 亚洲av第一区精品v没综合| 亚洲精品国产一区二区精华液| 亚洲色图av天堂| 久久精品国产亚洲av香蕉五月| 久久天躁狠狠躁夜夜2o2o| 久久国产精品人妻蜜桃| 动漫黄色视频在线观看| 深夜精品福利| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲中文日韩欧美视频| 91成人精品电影| 18禁美女被吸乳视频| 校园春色视频在线观看| 国产亚洲av高清不卡| 欧美黑人欧美精品刺激| 操出白浆在线播放| 女人爽到高潮嗷嗷叫在线视频| 久久国产精品男人的天堂亚洲| 母亲3免费完整高清在线观看| 国产片内射在线| 一进一出抽搐gif免费好疼| 19禁男女啪啪无遮挡网站| 可以在线观看的亚洲视频| 色综合婷婷激情| 无遮挡黄片免费观看| av视频在线观看入口| 校园春色视频在线观看| 一级a爱视频在线免费观看| 99热只有精品国产| 国产精品美女特级片免费视频播放器 | 在线观看免费午夜福利视频| 久久国产亚洲av麻豆专区| 亚洲 国产 在线| 久久久精品欧美日韩精品| 免费在线观看亚洲国产| 亚洲自偷自拍图片 自拍| 国产又色又爽无遮挡免费看| 久久亚洲真实| 色尼玛亚洲综合影院| 一区二区三区激情视频| 女性生殖器流出的白浆| 精品无人区乱码1区二区| 亚洲国产精品合色在线| 91av网站免费观看| 久久国产亚洲av麻豆专区| 美女高潮喷水抽搐中文字幕| 91大片在线观看| 精华霜和精华液先用哪个| 99热6这里只有精品| 在线观看www视频免费| 一级片免费观看大全| 免费在线观看视频国产中文字幕亚洲| 俄罗斯特黄特色一大片| 国产亚洲精品av在线| 久久久水蜜桃国产精品网| 国产aⅴ精品一区二区三区波| avwww免费| 性欧美人与动物交配| www.自偷自拍.com| 午夜福利视频1000在线观看| 精品国产国语对白av| 国产主播在线观看一区二区| 国产欧美日韩一区二区精品| 老汉色∧v一级毛片| tocl精华| 少妇粗大呻吟视频| 国产国语露脸激情在线看| 99久久久亚洲精品蜜臀av| 麻豆成人午夜福利视频| 18禁观看日本| 中文字幕精品亚洲无线码一区 | 国产亚洲av嫩草精品影院| 亚洲中文字幕日韩| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美+亚洲+日韩+国产| 午夜老司机福利片| 午夜免费成人在线视频| 久久久国产成人精品二区| 91成人精品电影| 少妇的丰满在线观看| 日韩成人在线观看一区二区三区| 亚洲av电影不卡..在线观看| 国产精品久久久久久精品电影 | 亚洲人成77777在线视频| 亚洲国产欧美网| 亚洲狠狠婷婷综合久久图片| 欧美 亚洲 国产 日韩一| 一夜夜www| 亚洲国产精品合色在线| 欧美成人一区二区免费高清观看 | 成人永久免费在线观看视频| 亚洲熟妇熟女久久| 亚洲第一电影网av| 国产亚洲精品第一综合不卡| 久久久久九九精品影院| 又黄又粗又硬又大视频| 亚洲熟妇熟女久久| 欧美国产日韩亚洲一区| 免费看a级黄色片| 久久久久国内视频| 中文字幕精品免费在线观看视频| 天堂√8在线中文| 国产精品久久电影中文字幕| 国产精品久久久久久亚洲av鲁大| 久久久久九九精品影院| 欧美国产精品va在线观看不卡| 国产精品九九99| 天堂影院成人在线观看| 亚洲自拍偷在线| 在线观看免费午夜福利视频| 欧美不卡视频在线免费观看 | 亚洲av美国av| 性欧美人与动物交配| 亚洲精品在线美女| 男女之事视频高清在线观看| 99国产精品99久久久久| 久久婷婷人人爽人人干人人爱| 国产日本99.免费观看| 精品国产超薄肉色丝袜足j| 国产成人精品久久二区二区91| www国产在线视频色| 麻豆久久精品国产亚洲av| 国产高清有码在线观看视频 | 一卡2卡三卡四卡精品乱码亚洲| 自线自在国产av| 久久午夜亚洲精品久久| 黄色成人免费大全| 大型av网站在线播放| 亚洲专区字幕在线| 免费人成视频x8x8入口观看| 黄网站色视频无遮挡免费观看| 最近在线观看免费完整版| 嫩草影视91久久| 最新在线观看一区二区三区| 草草在线视频免费看| 久久热在线av| 亚洲av日韩精品久久久久久密| 国产亚洲精品一区二区www| 亚洲av熟女| 一级a爱视频在线免费观看| 国产色视频综合| 午夜福利高清视频| 久久久久久亚洲精品国产蜜桃av| 两个人免费观看高清视频| 黄片播放在线免费| 欧美日本视频| 国产成人精品无人区| 一二三四在线观看免费中文在| 桃红色精品国产亚洲av| 成人国产一区最新在线观看| 亚洲第一欧美日韩一区二区三区| 久久婷婷人人爽人人干人人爱| 黑人欧美特级aaaaaa片| 女性生殖器流出的白浆| 天天一区二区日本电影三级| 一本久久中文字幕| www.自偷自拍.com| 亚洲av电影不卡..在线观看| 欧美黑人欧美精品刺激| 欧美日本视频| 亚洲五月天丁香| 身体一侧抽搐| 在线av久久热| 国产私拍福利视频在线观看| 波多野结衣巨乳人妻| 性色av乱码一区二区三区2| 又紧又爽又黄一区二区| 一进一出抽搐动态| 99re在线观看精品视频| 男女那种视频在线观看| 亚洲性夜色夜夜综合| 亚洲国产精品合色在线| 两性夫妻黄色片| 欧美又色又爽又黄视频| 日韩欧美在线二视频| www.999成人在线观看| 欧美日本视频| 欧美成人一区二区免费高清观看 | 夜夜看夜夜爽夜夜摸| 一进一出抽搐动态| 在线观看一区二区三区| www.精华液| 长腿黑丝高跟| 无限看片的www在线观看| 18美女黄网站色大片免费观看| 亚洲中文字幕一区二区三区有码在线看 | 欧美日韩中文字幕国产精品一区二区三区| 国产精品乱码一区二三区的特点| 国产亚洲av嫩草精品影院| 久久欧美精品欧美久久欧美| 国产亚洲欧美精品永久| 国产av不卡久久| 搞女人的毛片| 91国产中文字幕| 此物有八面人人有两片| 精品久久久久久成人av| 老汉色av国产亚洲站长工具| 熟妇人妻久久中文字幕3abv| 日韩大码丰满熟妇| 亚洲真实伦在线观看| www.精华液| 欧美黑人欧美精品刺激| 亚洲国产日韩欧美精品在线观看 | 欧美一区二区精品小视频在线| www.精华液| 十八禁网站免费在线| 女人爽到高潮嗷嗷叫在线视频| 最近最新中文字幕大全免费视频| 精品福利观看| 久久精品91无色码中文字幕| 国内久久婷婷六月综合欲色啪| 国产亚洲精品一区二区www| 亚洲精品美女久久av网站| 午夜成年电影在线免费观看| 亚洲国产看品久久| 校园春色视频在线观看| 久久狼人影院| svipshipincom国产片| 香蕉av资源在线| 精品一区二区三区av网在线观看| 一二三四社区在线视频社区8| 欧美最黄视频在线播放免费| 亚洲无线在线观看| 日韩国内少妇激情av| 国产精品久久视频播放| 在线观看免费视频日本深夜| 又大又爽又粗| 精品一区二区三区视频在线观看免费| 一本久久中文字幕| 不卡一级毛片| 亚洲成人久久爱视频| 久久欧美精品欧美久久欧美| 国产视频内射| av中文乱码字幕在线| 国产97色在线日韩免费| 无遮挡黄片免费观看| 老司机午夜福利在线观看视频| 啦啦啦免费观看视频1| 亚洲精品国产一区二区精华液| 草草在线视频免费看| 正在播放国产对白刺激| 国产91精品成人一区二区三区| 成人18禁高潮啪啪吃奶动态图| 啦啦啦 在线观看视频| 又黄又爽又免费观看的视频| 久99久视频精品免费| av欧美777| 一区二区三区国产精品乱码| 视频在线观看一区二区三区| 国产三级在线视频| 亚洲国产中文字幕在线视频| 国产私拍福利视频在线观看| 在线av久久热| 人妻丰满熟妇av一区二区三区| 国产欧美日韩一区二区三| 成人18禁在线播放| 91麻豆精品激情在线观看国产| 久久午夜综合久久蜜桃| 一二三四社区在线视频社区8| 国产激情偷乱视频一区二区| 久久久久久大精品| 成人永久免费在线观看视频| 老鸭窝网址在线观看| 一级黄色大片毛片| 亚洲五月婷婷丁香| 日本免费一区二区三区高清不卡| aaaaa片日本免费| 久久国产乱子伦精品免费另类| 人妻久久中文字幕网| 丰满的人妻完整版| xxx96com| 女性生殖器流出的白浆| av电影中文网址| 色播亚洲综合网| 亚洲成人免费电影在线观看| 国产熟女午夜一区二区三区| 亚洲精品在线观看二区| 国产亚洲欧美精品永久| 国产91精品成人一区二区三区| 一级毛片女人18水好多| or卡值多少钱| 女性被躁到高潮视频| 在线观看午夜福利视频| 999久久久精品免费观看国产| 国产国语露脸激情在线看| 亚洲国产精品999在线| 亚洲国产中文字幕在线视频| 国产精品免费一区二区三区在线| 日日夜夜操网爽| 亚洲无线在线观看| 亚洲最大成人中文| 日韩大码丰满熟妇| 精品电影一区二区在线| 成人国语在线视频| 国产蜜桃级精品一区二区三区| 欧美一级a爱片免费观看看 | 国产精品久久久人人做人人爽| xxx96com| 一个人免费在线观看的高清视频| 欧美绝顶高潮抽搐喷水| a级毛片在线看网站| 亚洲一区二区三区色噜噜| 国产成人一区二区三区免费视频网站| 欧美av亚洲av综合av国产av| 一级毛片精品| 黄片大片在线免费观看| 国产不卡一卡二| 欧美日本视频| 久9热在线精品视频| 丰满的人妻完整版| 不卡av一区二区三区| 国产成人一区二区三区免费视频网站| 88av欧美| av免费在线观看网站|