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

    一種語句分裂變更模式的分類框架

    2020-07-04 02:27:37段衛(wèi)華楊春花

    段衛(wèi)華 楊春花

    摘要:語句分裂變更模式是一種常見的將一條代碼語句分裂成多條語句的代碼變更模式,該模式有多種呈現(xiàn)形式,而不同的呈現(xiàn)形式又可能對應(yīng)不同的變更目的。提出一種分類框架,從分裂語句的類型、語句變更的行為和新增語句類型三個(gè)維度對該模式進(jìn)行分類,并設(shè)計(jì)了基于該框架的分類算法。最后,將該算法應(yīng)用于4個(gè)開源項(xiàng)目,對其中所包含的語句分裂變更模式進(jìn)行了分類和分析,實(shí)驗(yàn)結(jié)果呈現(xiàn)出較高的分類準(zhǔn)確率。

    關(guān)鍵詞: 軟件演化; 語句分裂變更模式; 分類框架; 代碼變更塊

    【Abstract】 Statement splitting change pattern is a common code change pattern that splits a code statement into multiple statements. This pattern has many forms of presentation, and different forms of presentation may correspond to different purposes of change. This paper proposes a classification framework, which classifies the pattern from three dimensions: the type of split statement, the behavior of statement change and the type of new statement, and designs a classification algorithm based on the framework. Finally, the algorithm is applied to four open source projects to classify and analyze the statement splitting change patterns. The experimental results show a high classification accuracy.

    【Key words】 ?software evolution; statement split change pattern; classification framework; Hunk

    0 引 言

    現(xiàn)代大型軟件的開發(fā)和維護(hù)一般由多人協(xié)作完成,軟件工程師每天將變更的代碼提交到版本管理系統(tǒng),對代碼變更進(jìn)行理解是軟件工程師日常工作的基礎(chǔ)。然而,一次變更提交中往往聚集了多種修改模式,如缺陷修復(fù)、重構(gòu)、增加特征等。多種變更模式摻雜在一起使得對軟件變更的理解變得困難。因此,為了更好地理解變更的內(nèi)容,有必要對一些常見的變更模式進(jìn)行分類,如此一來即與其它代碼修改分離開來,從而使得變更理解變得容易。

    代碼變更中較典型的模式包括重構(gòu)[1](Refactoring)和缺陷修復(fù)(bug-fixing)等。對于重構(gòu)模式的分類研究包括:文獻(xiàn)[2]對軟件重構(gòu)研究進(jìn)行的較為全面的總結(jié),文獻(xiàn)[3]對代碼壞味對軟件演化影響的研究和文獻(xiàn)[4]對常見的重構(gòu)操作的簡單介紹和分類等。缺陷修復(fù)的研究包括:文獻(xiàn)[5]對軟件缺陷分類應(yīng)用于缺陷預(yù)測方法的研究;文獻(xiàn)[6]對面向軟件自動修復(fù)的缺陷分類方法的研究;以及文獻(xiàn)[7]對具體領(lǐng)域軟件代碼中缺陷分類的研究等。上述研究對常見的代碼變更模式制定了相應(yīng)的分類體系,這些體系為代碼變更的研究提供了參考,并且通過將其應(yīng)用于各種變更模式的自動識別當(dāng)中,從而對軟件演化的理解產(chǎn)生更多積極作用。

    語句分裂是一種常見的代碼變更模式,將一條語句分裂為兩條或多條語句。該模式有許多呈現(xiàn)形式,而不同的呈現(xiàn)形式對應(yīng)的變更目的不同:可以是一種重構(gòu),也可以是一種缺陷修復(fù)。然而,現(xiàn)有的變更模式分類工作沒有涵蓋對該模式的系統(tǒng)研究。

    本文在對大量語句分裂變更模式進(jìn)行觀察分析的基礎(chǔ)上,總結(jié)了常見的語句分裂變更模式的呈現(xiàn)形式以及一些附加的變化,提出一個(gè)語句分裂變更模式的三維分類框架以及基于該框架的分類算法,并用該算法對開源項(xiàng)目中包含的語句分裂變更模式進(jìn)行了抽取、分類和分析。

    下面首先介紹語句分裂變更模式,然后提出語句分裂變更模式的分類框架和識別算法,最后是實(shí)驗(yàn)驗(yàn)證和分析。

    1 語句分裂變更模式

    一個(gè)源代碼文件修改前后的2個(gè)版本相應(yīng)位置的差異即為變更,而當(dāng)前對代碼變更的提取一般是借助于差異化分析工具來進(jìn)行。目前存在的差異分析工具主要有2種:文本差異分析(Textual-Differencing)和樹差異分析(Tree-Differencing),前者將2個(gè)版本的源代碼視為2個(gè)字符串,通過計(jì)算2個(gè)字符串的差異得到代碼變更,著名的工具有GNU-Diff[8]等;后者比較2個(gè)版本的源代碼所對應(yīng)的抽象語法樹,計(jì)算二者的差異作為代碼變更,代表性的工具有Change-Distiller[9]等。由于文本型差異分析工具目前廣泛應(yīng)用到版本管理系統(tǒng)中輔助用戶查看diff,因此本文的研究基于文本差異分析工具的輸出結(jié)果,對其中的語句分裂變更模式進(jìn)行研究。

    文本型差異分析工具的變更輸出單位為hunk(代碼變更塊),一個(gè)hunk由刪除行和添加行構(gòu)成。圖1是GNU-Diff的一個(gè)hunk輸出示例。由"-"開頭的行為被刪除的語句行,"+"開頭的行為新增的語句行,hunk中"-"左邊的行號88表示該行在舊版本中的位置,"+"右邊的行號88~89表示新增的行在新版本的位置。

    經(jīng)過對人工識別出的開源項(xiàng)目中包含語句分裂變更模式的hunk集進(jìn)行分析,發(fā)現(xiàn)該模式包含2種基本形式,將其分別命名為拆分形式和替換形式。對此可做闡釋分述如下。

    (1)拆分形式。就是將一條賦值語句拆分成多條賦值語句。圖2為拆分形式的示例,可以看到刪除行872行的賦值語句被拆分為2條賦值語句(增加行872~873行)。

    (2)替換形式。使用一個(gè)新聲明的變量替換一條語句中部分內(nèi)容使之變?yōu)橐粭l新的語句。如圖3所示,老版本的第398行方法調(diào)用語句中的getPluginExtensionComponents(plugin)被新版本行號402的變量聲明語句所替換,因此原語句變?yōu)榈?04行的形式。

    2 一個(gè)語句分裂變更模式的分類框架

    為了從呈現(xiàn)形式和變更行為上全面理解語句分裂變更模式,提出一個(gè)三維分類框架,從分裂語句的類型、語句變更行為和新增語句類型三個(gè)維度對該模式進(jìn)行分類,分類框架如圖4所示。

    下面將對框架中的每個(gè)分類維度進(jìn)行解釋,并給出對應(yīng)的實(shí)例進(jìn)行說明。

    2.1 分裂語句的類型

    分裂語句是指hunk刪除行中被分裂的語句(下文用“原句”表示)。通過觀察,分類模式常發(fā)生在以下5種語句類型中:

    (1)方法調(diào)用語句(MI)。

    (2)if語句(IF)。

    (3)賦值語句(AS)。

    (4)return語句(RE)。

    (5)for語句(FO)。

    值得注意的是,拆分形式的語句分裂一般出現(xiàn)在賦值語句中,而其他類型語句則常以替換形式進(jìn)行分裂變更。

    2.2 語句變更行為的類型

    對于語句分裂變更模式,可根據(jù)hunk的增加行中,聲明新變量的賦值內(nèi)容和參與原句更改的方式,總結(jié)出替換形式的4種變更行為類型,詳述如下。

    (1)封裝(encapsulation)-EN:新變量的賦值內(nèi)容取自原句中,并且這部分內(nèi)容沒發(fā)生任何變化,如圖5所示。

    (2)更換(change)-CH:新變量的賦值內(nèi)容與原句中任何部分都不完全相同或完全不同,如圖6所示。

    (3)增加(add)-AD:只是在原句的基礎(chǔ)上增加了與新變量相關(guān)的部分,從而語句原有的內(nèi)容沒有發(fā)生變化,(此種類型中新變量的賦值內(nèi)容可能與原句中的內(nèi)容有關(guān),也可能無關(guān))。如圖7所示。

    (4)分解(decompose)-DE:將原句直接拆分成兩條或多條語句,如圖2所示。這種行為一般只出現(xiàn)在拆分形式的語句分裂變更模式中。

    2.3 新增語句的類型

    這個(gè)維度只針對替換形式的語句分裂變更模式,因?yàn)榇司S度所研究的新增語句一般是與替換形式中新聲明賦值的變量相關(guān)的語句,而拆分形式中不存在新變量賦值聲明的語句,所以也就不會有與之相關(guān)的新的語句出現(xiàn),所以新增語句指的是hunk增加行部分,除新變量聲明語句和替換后的原句之外的其它新增加的語句,當(dāng)然新增的語句是不一定存在的。

    新增語句一般分為以下2種類型:

    (1)新增與新變量相關(guān)的if語句,如圖8所示。

    (2)新增新變量相關(guān)的調(diào)用方法的語句,如圖9所示。

    2.4 其他類型

    這部分主要探討替換形式中存在的另外2種新增內(nèi)容的類型。研究給出內(nèi)容表述如下。

    (1)第一種是對上述語句變更行為類型中的“更換”類型的補(bǔ)充,這種類型中的“不完全相同”一般是賦值內(nèi)容中除了取自原句中的部分之外還有新增加的內(nèi)容,下面就介紹常見的這部分新增內(nèi)容的類型:

    ① 新變量的賦值內(nèi)容中新增方法調(diào)用,如圖10所示。

    ② 新變量的賦值內(nèi)容中新增邏輯或算術(shù)運(yùn)算,如圖11所示。

    (2)第二種是針對原句變更時(shí),除部分內(nèi)容被新變量替換外還增加了新的內(nèi)容。對此擬做重點(diǎn)論述如下。

    3 語句分裂變更模式的分類算法

    根據(jù)上述分類框架,設(shè)計(jì)了一個(gè)分類算法,該算法用四元組的結(jié)構(gòu)表示每個(gè)包含語句分裂變更模式的hunk的分類結(jié)果,并將這些結(jié)果存入集合Q中,其中變量p是語句分裂變更模式識別算法(已有文章對此識別算法進(jìn)行論述)輸出的語句分裂變更模式替換形式的hunk集PR和拆分形式的hunk集PS中的元素,變量t、b、a都是字符串類型的變量,t代表分裂語句的類型;b代表語句變更行為的類型;a代表新增語句的類型。

    經(jīng)觀察拆分形式的語句分裂變更模式三維判別結(jié)果單一,即,所以分類算法只對替換形式的語句分裂變更模式的hunk集PR中的元素進(jìn)行3個(gè)維度的判別,算法的偽代碼如下。

    輸入:同一文件的一次更改前后兩個(gè)版本的源文件Fileold和Filenew

    輸出:對2個(gè)源文件的變更中包含的語句分裂變更模式的hunk進(jìn)行3個(gè)維度分類判別的結(jié)果集Q

    1 ?PR←identifySplitpatten(Fileold,F(xiàn)ilenew)

    2 ?for each ?p∈PR p=

    3 ?t←get Type(o-)

    4 ?if true←contains(c,o-)

    5b=“AD”

    6z←getVarValue()

    7if true←contains(o-,z)

    8 ? b=“EN”

    9[WB]else b=“CH”

    10 ? if true←hasIfstmt(m)

    11 a=“IF”

    12 ? else if true←hasMistmt(m)

    13 a=“MI”

    14 else a=“NULL”

    15Q←

    16 end if

    17 ? end if

    18[DW]end if

    19 ?end if

    20 end for

    算法第1行利用identifySplitpatten()算法(即語句分裂變更模式的識別算法)獲取2個(gè)源文件的變更中包含的替換類型的語句分裂變更模式的hunk集PR,其中每個(gè)元素p可表示成一個(gè)四元組的形式,變量h代表一個(gè)hunk,這是一個(gè)四元組h=的結(jié)構(gòu)(其中變量L-和R-分別表示hunk刪除行的文本內(nèi)容和行號范圍,變量L+和R+則分別表示hunk增加行的文本內(nèi)容和行號范圍),變量o-代表發(fā)生替換分裂的原句的全部節(jié)點(diǎn)信息,變量m代表hunk增加行中新聲明變量的變量名,變量c代表變更后的原句的全部節(jié)點(diǎn)信息。

    算法第2行利用for循環(huán)對集合R中的每個(gè)元素r進(jìn)行分類處理。

    第3行利用getType()函數(shù)獲得分裂語句o-即原句的類型t,即對第一維度的判別。

    第4~9行是對第二個(gè)維度的判別,其中4、5行利用contains()函數(shù)判斷原句分裂變更后是否還包含了原來的全部節(jié)點(diǎn)信息(contains()方法,當(dāng)且僅當(dāng)此字符串包含指定的char值序列時(shí),返回true),如果返回true則新的變量沒有替換掉原句中的任何內(nèi)容,并且識別算法已確定變更后的原句包含了新聲明的變量m,則可以確定其語句變更行為類型為增加“AD”;第6行利用getVarValue()函數(shù)獲取hunk對應(yīng)的抽象語法樹片段中,給變量m賦值的語句節(jié)點(diǎn)的賦值內(nèi)容z;第7、8行利用contains()函數(shù)判斷原句o-是否包含了字符序列z,如果返回true則確定其語句變更行為類型為封裝“EN”;第9行如果返回false,則確定其語句變更行為類型為更換“CH”。

    第10~14行是對第三個(gè)維度的判別,其中10、11行利用hasIfstmt()函數(shù)通過遍歷hunk增加行對應(yīng)語法樹中的節(jié)點(diǎn)信息,找出是否存在新增的包含新聲明變量m子節(jié)點(diǎn)的if語句節(jié)點(diǎn),如果返回true則確定其新增語句類型為if語句“IF”;第12、13行利用hasMistmt()函數(shù)找出是否存在新增的包含新聲明變量m子節(jié)點(diǎn)的方法調(diào)用語句節(jié)點(diǎn),如果返回true則確定其新增語句類型為方法調(diào)用語句“MI”;第14行如果非上述情況則判斷不存在新增的語句“NULL”。

    第15行將上述的三個(gè)維度的判別結(jié)果以四元組的形式存入集合Q中。

    4 算法的實(shí)現(xiàn)及驗(yàn)證

    該算法當(dāng)前采用Java語言來實(shí)現(xiàn)。在此實(shí)現(xiàn)的基礎(chǔ)上,將提出的分類框架應(yīng)用到4個(gè)開源項(xiàng)目,對其中的語句變更分裂模式進(jìn)行了識別和分類,并對識別和分類出的結(jié)果進(jìn)行了分析。

    數(shù)據(jù)集包含了4個(gè)開源項(xiàng)目:J Edit(http://sourceforge.net/project/jedit/)、Apache maven(http://maven.apache.org/)、Google-guice(https://github.com/apress/google-guice)和Eclipse(http://www.eclipse.org/downloads/eclipse-packages/)。輸出結(jié)果見表1。

    經(jīng)人工觀察驗(yàn)證分裂語句類型的分類結(jié)果后發(fā)現(xiàn)沒有出現(xiàn)錯(cuò)誤分類的情況,表明算法在此維度的分類具有較高的準(zhǔn)確性。

    根據(jù)圖14所示的分裂結(jié)果,語句分裂變更模式發(fā)生在方法調(diào)用語句(MC)和賦值語句(AS)中的次數(shù)較多,分別占到了總數(shù)的39%和24%,return語句(RE)和if語句(IF)次之,分別占到了總數(shù)的17%和15%,for語句(FO)最少,只占到了總數(shù)的5%。

    4.2 語句變更行為類型的分類結(jié)果

    算法對語句變更行為類型的判別結(jié)果如圖15所示。

    經(jīng)人工觀察驗(yàn)證語句變更行為類型的分類結(jié)果后發(fā)現(xiàn)沒有出現(xiàn)錯(cuò)誤分類的情況,表明算法在此維度的分類具有較高的準(zhǔn)確性。

    根據(jù)圖15的結(jié)果,不難發(fā)現(xiàn)封裝(EN)行為出現(xiàn)的次數(shù)最多,占到了總數(shù)的56%;而更換(CH)行為和增加(AD)行為次之,分別占到了總數(shù)的28%和12%,這兩種行為一般會改變原語句的作用;而出現(xiàn)次數(shù)最少的分解(DE)行為只占到了總數(shù)的4%。

    4.3 新增語句類型的分類結(jié)果

    算法對新增語句類型的判別結(jié)果如圖16所示。

    經(jīng)人工觀察驗(yàn)證新增語句類型的分類結(jié)果后發(fā)現(xiàn),有極個(gè)別包含與新聲明變量無關(guān)的新增語句的hunk沒有被識別出來,這是因?yàn)樵O(shè)計(jì)的算法只識別包含新聲明變量的新增語句,而這些極個(gè)別與新變量無關(guān)的新增語句對本課題的研究基本無意義,所以圖16是將這些hunk排除后所得到的結(jié)果。

    根據(jù)圖16可知,沒有新增語句的hunk占到了70%,而出現(xiàn)新增語句的例子大約占到總數(shù)的30%,其中與新變量相關(guān)的方法調(diào)用語句(MI)占到了19%,if語句(IF)占到了11%。

    4.4 結(jié)果分析及結(jié)論

    根據(jù)表1可知,語句分裂變更模式的拆分模式出現(xiàn)次數(shù)極少,這種形式不會改變語句的行為并且不會伴隨額外的變化。

    通過觀察圖14中3種占比較少的語句類型的hunk可知,替換形式的語句分裂模式大多數(shù)都發(fā)生在這些語句中的復(fù)雜的方法調(diào)用和賦值部分,并且結(jié)合方法調(diào)用語句和賦值語句占比較多的情況可以說明:語句中發(fā)生替換的基本都是復(fù)雜的方法調(diào)用和賦值部分。

    根據(jù)圖15中封裝類型(DE)占比較多的情況可知,多于半數(shù)的替換形式本質(zhì)上是沒有發(fā)生算法更換的,只是通過替換簡化了語句中較為復(fù)雜的內(nèi)容,這種操作不會改變語句行為所以也可以看作是一種重構(gòu)行為,而更換類型(CH)才更加類似于替換算法重構(gòu)模式,這兩種語句變更行為類型一共占到了總數(shù)的84%,所以可以認(rèn)為:替換形式的語句分裂變更多數(shù)情況是一種重構(gòu)操作。

    圖15中的增加行為(AD)基本呈現(xiàn)2種形式:一種形式是在if語句中增加了與新變量相關(guān)條件表達(dá)式,則此變更是由重構(gòu)模式與IF-CC[10](更改條件表達(dá)式)缺陷修復(fù)模式組合而成的變更;另外一種形式是在其它語句類型的方法調(diào)用部分增加了與新變量相關(guān)的新的參數(shù),則此變更是由重構(gòu)模式與MC-DNP[10](具有不同數(shù)量參數(shù)或不同類型參數(shù)的方法調(diào)用)缺陷修復(fù)模式組合而成的變更。

    圖16中30%的包含新增語句的替換形式的語句分裂變更模式,其意圖是為了便于引入語句中復(fù)雜內(nèi)容的方法調(diào)用或條件判斷,從而使用簡單的變量將其替換,新增語句實(shí)際上是一種缺陷修復(fù)行為,例如新增if語句的語句分裂變更類似于IF-APC[10](增加前提條件檢查)缺陷修復(fù)模式,所以有新增語句的語句分裂變更也是由重構(gòu)模式與缺陷修復(fù)模式組合而成的變更。

    上述的增加行為和新增語句的行為都是基于替換操作基礎(chǔ)上的額外的變更,所以可知:包含額外變更的替換形式的語句分裂變更多數(shù)情況是一種由重構(gòu)模式與缺陷修復(fù)模式組合的變更模式。

    5 結(jié)束語

    本文對語句分裂變更模式進(jìn)行了分類研究,根據(jù)人工篩選出的數(shù)據(jù)集提出了語句分裂變更模式的三維分類框架,并且根據(jù)該框架設(shè)計(jì)了語句分裂變更模式的分類算法,最后用該分類算法對語句分裂變更模式的hunk集進(jìn)行分類判別,在觀察分析判別結(jié)果后得出一些結(jié)論。后續(xù)工作還需要結(jié)合代碼變更塊的上下文內(nèi)容,對語句分裂變更模式的各種形式進(jìn)行變更發(fā)生情境、產(chǎn)生因素等方面做進(jìn)一步的經(jīng)驗(yàn)分析,使得對語句分裂變更模式的研究更為完善。

    參考文獻(xiàn)

    [1] ?[WB]FOWLER M. Refactoring: Improving the design of existing programs[M]. USA: Addison-Wesley,1999.

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

    [3]章曉芳,朱燦. 代碼壞味對軟件演化影響的實(shí)證研究[J]. 軟件學(xué)報(bào),2019,30(5):1422.

    [4]阮航,陳恒,彭鑫,等. 面向設(shè)計(jì)的開源軟件項(xiàng)目重構(gòu)經(jīng)驗(yàn)研究[J]. 計(jì)算機(jī)科學(xué)與探索,2017,11(9):1418.

    [5]李偉湋,郭鴻昌. 基于鄰域三支決策粗糙集模型的軟件缺陷預(yù)測方法[J]. 數(shù)據(jù)采集與處理,2017,32(1):166.

    [6]易昕,毛曉光,紀(jì)濤. 面向程序自動修復(fù)的缺陷分類方法研究[J]. 計(jì)算機(jī)應(yīng)用研究,2016,33(6):1748.

    [7]賀仁亞,唐龍利. 故障注入的軟件代碼缺陷模式[J]. 指揮信息系統(tǒng)與技術(shù),2015,6(6):23.

    [8]HUNT J W,SZYMANSKI T G. A fast algorithm for computing longest common subsequences[J]. Communications of the ACM,1977,20(5):350.

    [9]FLURI B,GALL H C. Classifying change types for qualifying change couplings [C]//14th IEEE International Conference on Program Comprehension(ICPC'06).Athens,Greece:IEEE,2006,35.

    [10]PAN Kai,KIM S, JR E J W.Toward an understanding of bug fix patterns[J]. Empirical Software Engineering, 2009,14(3):286.

    日韩av在线免费看完整版不卡| 国产成人精品福利久久| 大码成人一级视频| 亚洲人成网站在线播| 精品亚洲乱码少妇综合久久| 神马国产精品三级电影在线观看| 欧美xxxx黑人xx丫x性爽| 国产精品人妻久久久久久| 久久久久久久久大av| 在线免费观看不下载黄p国产| 国产精品不卡视频一区二区| 国产成人免费观看mmmm| 欧美高清性xxxxhd video| 69人妻影院| 精品久久久久久久人妻蜜臀av| 免费av毛片视频| 欧美成人午夜免费资源| 精品国产乱码久久久久久小说| 美女高潮的动态| freevideosex欧美| 欧美xxxx性猛交bbbb| 在线天堂最新版资源| 国产免费视频播放在线视频| 十八禁网站网址无遮挡 | 日韩av免费高清视频| 亚洲不卡免费看| 亚洲欧美成人精品一区二区| 日韩精品有码人妻一区| 有码 亚洲区| 国产精品久久久久久av不卡| 国产免费又黄又爽又色| 亚洲精品乱久久久久久| 尤物成人国产欧美一区二区三区| 亚洲av国产av综合av卡| 国产精品99久久99久久久不卡 | 亚洲欧美成人精品一区二区| 高清av免费在线| 国产色婷婷99| 亚洲国产精品专区欧美| 久久精品国产a三级三级三级| 国产精品av视频在线免费观看| 极品教师在线视频| 男女啪啪激烈高潮av片| 国产亚洲av嫩草精品影院| 在线天堂最新版资源| 亚洲国产精品成人综合色| 日韩国内少妇激情av| 综合色丁香网| 熟女av电影| 午夜亚洲福利在线播放| 高清视频免费观看一区二区| 天美传媒精品一区二区| 人人妻人人爽人人添夜夜欢视频 | 国产精品.久久久| 观看美女的网站| 熟女av电影| 久久人人爽av亚洲精品天堂 | 日本爱情动作片www.在线观看| 91精品一卡2卡3卡4卡| 禁无遮挡网站| 欧美日韩视频高清一区二区三区二| 少妇人妻一区二区三区视频| 久久久久久久久久成人| 国产视频内射| 五月天丁香电影| 国产免费一级a男人的天堂| 久久人人爽人人爽人人片va| 中文字幕制服av| 26uuu在线亚洲综合色| 成年av动漫网址| 国产精品福利在线免费观看| 人妻少妇偷人精品九色| 欧美三级亚洲精品| 男插女下体视频免费在线播放| 国精品久久久久久国模美| av在线天堂中文字幕| 亚洲精品久久午夜乱码| 一级毛片我不卡| 婷婷色综合www| 麻豆乱淫一区二区| 香蕉精品网在线| tube8黄色片| 欧美人与善性xxx| 成人亚洲欧美一区二区av| 精品熟女少妇av免费看| 汤姆久久久久久久影院中文字幕| 黄片wwwwww| 少妇人妻 视频| 99久久精品热视频| 午夜福利在线观看免费完整高清在| 永久免费av网站大全| 国产精品福利在线免费观看| 黄片无遮挡物在线观看| 国产精品国产三级国产av玫瑰| 亚州av有码| 大片电影免费在线观看免费| 亚洲成人中文字幕在线播放| freevideosex欧美| 婷婷色麻豆天堂久久| 久久99热这里只有精品18| 国产一区亚洲一区在线观看| 亚洲第一区二区三区不卡| 久久精品人妻少妇| 国产伦精品一区二区三区视频9| 麻豆国产97在线/欧美| 欧美成人a在线观看| 97热精品久久久久久| 国产乱来视频区| 日本三级黄在线观看| 欧美高清成人免费视频www| 最近中文字幕2019免费版| 国产黄频视频在线观看| 午夜激情久久久久久久| 欧美性猛交╳xxx乱大交人| av在线播放精品| 亚洲欧洲日产国产| 国产在视频线精品| 国产亚洲一区二区精品| 九九爱精品视频在线观看| 国内精品宾馆在线| 最近2019中文字幕mv第一页| 欧美高清性xxxxhd video| 国产色爽女视频免费观看| 99久久精品一区二区三区| 成人欧美大片| 国产一区二区三区综合在线观看 | 国内精品美女久久久久久| 免费观看av网站的网址| 亚洲成人精品中文字幕电影| 又大又黄又爽视频免费| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 偷拍熟女少妇极品色| 少妇猛男粗大的猛烈进出视频 | 亚洲欧美一区二区三区黑人 | 国产精品成人在线| 最新中文字幕久久久久| 国产一区亚洲一区在线观看| av一本久久久久| 嫩草影院入口| 秋霞在线观看毛片| 伊人久久国产一区二区| 久久久久久久久久成人| 日韩欧美精品v在线| 国产精品精品国产色婷婷| 超碰97精品在线观看| 成人免费观看视频高清| 色哟哟·www| 日韩 亚洲 欧美在线| 成人综合一区亚洲| 特级一级黄色大片| 人妻夜夜爽99麻豆av| 少妇人妻一区二区三区视频| 国产精品三级大全| 国产精品久久久久久av不卡| 午夜激情福利司机影院| 国产大屁股一区二区在线视频| 久久亚洲国产成人精品v| 国产黄片美女视频| 少妇被粗大猛烈的视频| 亚洲精品国产成人久久av| 亚洲高清免费不卡视频| 国产人妻一区二区三区在| 国产久久久一区二区三区| 午夜免费男女啪啪视频观看| 大香蕉久久网| 欧美+日韩+精品| 亚洲av日韩在线播放| 欧美日韩在线观看h| 日本午夜av视频| 一级片'在线观看视频| 性插视频无遮挡在线免费观看| 高清欧美精品videossex| 久久久久久久国产电影| 亚洲性久久影院| 亚洲第一区二区三区不卡| 啦啦啦在线观看免费高清www| 51国产日韩欧美| 中文资源天堂在线| 爱豆传媒免费全集在线观看| 国产中年淑女户外野战色| 亚洲丝袜综合中文字幕| 久久99蜜桃精品久久| 亚洲欧美日韩卡通动漫| 99久久精品一区二区三区| 欧美日韩视频精品一区| 亚洲av免费高清在线观看| a级一级毛片免费在线观看| 一区二区三区精品91| 久久韩国三级中文字幕| 亚洲自拍偷在线| 一区二区三区四区激情视频| 精品视频人人做人人爽| 亚洲av成人精品一二三区| 亚洲av免费高清在线观看| 日韩电影二区| 亚洲精品成人久久久久久| 久久韩国三级中文字幕| 成人欧美大片| 免费av毛片视频| 久久精品夜色国产| 三级经典国产精品| 18禁裸乳无遮挡动漫免费视频 | 大香蕉久久网| 久久99蜜桃精品久久| 久久久久久久午夜电影| 女人十人毛片免费观看3o分钟| 人妻少妇偷人精品九色| 成人一区二区视频在线观看| 日韩av在线免费看完整版不卡| 综合色av麻豆| 日韩亚洲欧美综合| 狂野欧美激情性bbbbbb| 中文字幕人妻熟人妻熟丝袜美| 亚洲,欧美,日韩| 在线观看av片永久免费下载| 国产欧美另类精品又又久久亚洲欧美| av国产久精品久网站免费入址| 高清毛片免费看| 联通29元200g的流量卡| 免费观看a级毛片全部| 午夜福利视频1000在线观看| 18+在线观看网站| 国产精品福利在线免费观看| 午夜福利视频1000在线观看| 国产精品.久久久| 精品久久久久久久久av| 18禁动态无遮挡网站| 麻豆久久精品国产亚洲av| 午夜免费鲁丝| 一级毛片aaaaaa免费看小| 亚洲自拍偷在线| 99久久精品国产国产毛片| 另类亚洲欧美激情| 丰满人妻一区二区三区视频av| 久久精品夜色国产| 人体艺术视频欧美日本| 亚洲精品久久午夜乱码| 国产精品人妻久久久久久| 黄片wwwwww| 国产精品熟女久久久久浪| 亚洲性久久影院| 亚洲伊人久久精品综合| 欧美丝袜亚洲另类| 在线精品无人区一区二区三 | 丰满少妇做爰视频| 亚洲欧美日韩东京热| 精品午夜福利在线看| 国产中年淑女户外野战色| 亚洲欧美日韩东京热| 久久人人爽人人爽人人片va| 久久精品久久久久久久性| 精品国产一区二区三区久久久樱花 | 色网站视频免费| 噜噜噜噜噜久久久久久91| videos熟女内射| 国产黄频视频在线观看| 国产黄色视频一区二区在线观看| 亚洲电影在线观看av| 偷拍熟女少妇极品色| 国产大屁股一区二区在线视频| 中文天堂在线官网| 六月丁香七月| 午夜免费男女啪啪视频观看| 免费不卡的大黄色大毛片视频在线观看| 狂野欧美白嫩少妇大欣赏| 久久久久久久久久人人人人人人| 亚洲,一卡二卡三卡| 成人午夜精彩视频在线观看| 亚州av有码| 人妻系列 视频| 国产有黄有色有爽视频| 亚洲国产精品成人综合色| 日韩欧美一区视频在线观看 | 蜜臀久久99精品久久宅男| av卡一久久| 亚洲丝袜综合中文字幕| 又大又黄又爽视频免费| 国产一级毛片在线| 久久久午夜欧美精品| av国产久精品久网站免费入址| 亚洲无线观看免费| 亚洲欧洲日产国产| 狠狠精品人妻久久久久久综合| 久久鲁丝午夜福利片| 国产精品人妻久久久影院| 最后的刺客免费高清国语| 国产高清三级在线| 日本wwww免费看| 免费在线观看成人毛片| 交换朋友夫妻互换小说| 亚洲欧美清纯卡通| 亚洲性久久影院| 国产一区亚洲一区在线观看| 久久精品国产亚洲av天美| 久久热精品热| 国产亚洲精品久久久com| 少妇高潮的动态图| 国产高清国产精品国产三级 | 肉色欧美久久久久久久蜜桃 | 大话2 男鬼变身卡| 午夜老司机福利剧场| 熟女av电影| 免费看不卡的av| 国产成人91sexporn| 天堂俺去俺来也www色官网| 三级国产精品欧美在线观看| 六月丁香七月| 国产成人freesex在线| 精品久久久久久久久av| 国产大屁股一区二区在线视频| 日韩欧美精品v在线| 简卡轻食公司| 欧美区成人在线视频| 亚洲av电影在线观看一区二区三区 | 免费看a级黄色片| 国产精品一区www在线观看| 成人免费观看视频高清| 女人十人毛片免费观看3o分钟| 午夜免费观看性视频| 国产精品国产三级国产av玫瑰| 久久精品久久久久久久性| 国产爱豆传媒在线观看| 亚洲精品日本国产第一区| 亚洲成人av在线免费| 日韩强制内射视频| 一级毛片aaaaaa免费看小| 日本wwww免费看| 如何舔出高潮| 国产亚洲5aaaaa淫片| 久久久久网色| 人妻夜夜爽99麻豆av| 亚洲va在线va天堂va国产| 亚洲最大成人中文| 免费观看性生交大片5| 国产又色又爽无遮挡免| 97在线视频观看| 亚洲精品一区蜜桃| av免费观看日本| 99热6这里只有精品| 我的老师免费观看完整版| 一区二区三区乱码不卡18| www.av在线官网国产| 一区二区av电影网| 色视频www国产| 午夜福利高清视频| 丝袜脚勾引网站| 成年女人看的毛片在线观看| 欧美zozozo另类| 欧美人与善性xxx| 美女国产视频在线观看| 亚洲图色成人| 只有这里有精品99| 国产精品国产三级国产专区5o| 边亲边吃奶的免费视频| 中文乱码字字幕精品一区二区三区| 国产精品久久久久久久电影| 亚洲精品久久午夜乱码| 成人高潮视频无遮挡免费网站| 一级二级三级毛片免费看| 国产又色又爽无遮挡免| 中国国产av一级| 精品人妻一区二区三区麻豆| 男女下面进入的视频免费午夜| 春色校园在线视频观看| 亚洲丝袜综合中文字幕| 久久久久久伊人网av| 又爽又黄无遮挡网站| 亚洲av欧美aⅴ国产| 亚洲最大成人手机在线| 99久久精品一区二区三区| 看非洲黑人一级黄片| 久久久久国产精品人妻一区二区| 久久久久久久久久久免费av| 欧美少妇被猛烈插入视频| 真实男女啪啪啪动态图| 自拍欧美九色日韩亚洲蝌蚪91 | 99热全是精品| 国产精品国产三级专区第一集| 女性被躁到高潮视频| 黄色视频不卡| 久久精品久久精品一区二区三区| 精品少妇黑人巨大在线播放| 男女边吃奶边做爰视频| 人妻 亚洲 视频| 菩萨蛮人人尽说江南好唐韦庄| 超碰97精品在线观看| 亚洲精品日韩在线中文字幕| 一级a爱视频在线免费观看| 蜜桃国产av成人99| 国产精品久久久久久人妻精品电影 | 一级毛片 在线播放| 国产精品 欧美亚洲| 热re99久久精品国产66热6| 91精品三级在线观看| 中国三级夫妇交换| 国产精品熟女久久久久浪| 亚洲第一青青草原| 99热网站在线观看| 欧美精品亚洲一区二区| 热99久久久久精品小说推荐| 国产97色在线日韩免费| 欧美日韩精品网址| 岛国毛片在线播放| 18禁裸乳无遮挡动漫免费视频| 国产老妇伦熟女老妇高清| 十八禁网站网址无遮挡| 夫妻午夜视频| 波多野结衣av一区二区av| 国产成人欧美在线观看 | 亚洲精品美女久久久久99蜜臀 | 激情视频va一区二区三区| 十八禁人妻一区二区| 欧美成人午夜精品| 黄片无遮挡物在线观看| 欧美 日韩 精品 国产| 欧美亚洲 丝袜 人妻 在线| 一区二区三区乱码不卡18| 天天添夜夜摸| 咕卡用的链子| 99国产综合亚洲精品| 天美传媒精品一区二区| 国产日韩一区二区三区精品不卡| 日本一区二区免费在线视频| 亚洲四区av| 尾随美女入室| av又黄又爽大尺度在线免费看| 亚洲欧美日韩另类电影网站| 日韩,欧美,国产一区二区三区| 一级毛片 在线播放| 丝袜脚勾引网站| 深夜精品福利| 国产男女内射视频| 欧美日韩av久久| 美女午夜性视频免费| 国产一区二区三区av在线| 精品国产国语对白av| 国产xxxxx性猛交| 制服诱惑二区| 女人爽到高潮嗷嗷叫在线视频| 成年动漫av网址| 日本wwww免费看| 欧美成人午夜精品| 国产精品一区二区在线观看99| 国产极品粉嫩免费观看在线| 中文字幕人妻熟女乱码| 久久鲁丝午夜福利片| 精品国产乱码久久久久久小说| 成人毛片60女人毛片免费| 免费女性裸体啪啪无遮挡网站| 我的亚洲天堂| 国产xxxxx性猛交| 免费高清在线观看视频在线观看| 热99久久久久精品小说推荐| 国产一区二区三区av在线| 欧美亚洲 丝袜 人妻 在线| 91老司机精品| 亚洲伊人色综图| 中文天堂在线官网| 久久久久视频综合| 亚洲熟女毛片儿| 精品福利永久在线观看| 国产1区2区3区精品| a级片在线免费高清观看视频| 国产精品国产三级专区第一集| 夜夜骑夜夜射夜夜干| 一区福利在线观看| 午夜福利网站1000一区二区三区| 激情五月婷婷亚洲| 久久人人97超碰香蕉20202| 国产野战对白在线观看| 精品福利永久在线观看| 日韩欧美精品免费久久| 人人妻人人爽人人添夜夜欢视频| 久久久久国产一级毛片高清牌| 亚洲,一卡二卡三卡| 七月丁香在线播放| 成年人午夜在线观看视频| 午夜免费男女啪啪视频观看| 色精品久久人妻99蜜桃| 国产精品99久久99久久久不卡 | 99精品久久久久人妻精品| 久久精品亚洲熟妇少妇任你| 国产探花极品一区二区| 国产成人av激情在线播放| 国产又爽黄色视频| 精品国产一区二区三区久久久樱花| 中文字幕色久视频| 亚洲av综合色区一区| 叶爱在线成人免费视频播放| 久久热在线av| 另类亚洲欧美激情| 七月丁香在线播放| 日日啪夜夜爽| 69精品国产乱码久久久| 免费黄色在线免费观看| 在线看a的网站| 青春草亚洲视频在线观看| 极品少妇高潮喷水抽搐| 街头女战士在线观看网站| 99久国产av精品国产电影| kizo精华| 中国三级夫妇交换| 中文字幕精品免费在线观看视频| 最近中文字幕2019免费版| 国精品久久久久久国模美| 国产亚洲av片在线观看秒播厂| 亚洲av欧美aⅴ国产| 久久热在线av| 青春草视频在线免费观看| 日日撸夜夜添| 亚洲三区欧美一区| 久久国产精品大桥未久av| 校园人妻丝袜中文字幕| 男人添女人高潮全过程视频| 国产一区二区三区av在线| 曰老女人黄片| 国产不卡av网站在线观看| 欧美日韩一级在线毛片| 老汉色∧v一级毛片| 制服丝袜香蕉在线| 日韩成人av中文字幕在线观看| 日韩视频在线欧美| 日本一区二区免费在线视频| 免费看av在线观看网站| 视频在线观看一区二区三区| 我要看黄色一级片免费的| 亚洲精品一二三| 成人国产av品久久久| 天天躁夜夜躁狠狠躁躁| 男人操女人黄网站| 日韩一区二区三区影片| 1024视频免费在线观看| 国产精品免费视频内射| 精品免费久久久久久久清纯 | 十八禁人妻一区二区| 欧美日韩精品网址| 人成视频在线观看免费观看| 不卡av一区二区三区| 欧美日韩一区二区视频在线观看视频在线| 国产精品 欧美亚洲| 欧美人与善性xxx| 一级毛片我不卡| 一级片免费观看大全| 久久久久久久大尺度免费视频| 又大又黄又爽视频免费| 国产野战对白在线观看| 中文字幕最新亚洲高清| 日韩熟女老妇一区二区性免费视频| 好男人视频免费观看在线| 亚洲精品自拍成人| 亚洲精品在线美女| 精品久久蜜臀av无| 久久久久精品人妻al黑| 中文乱码字字幕精品一区二区三区| 视频在线观看一区二区三区| 伊人久久国产一区二区| 国产精品欧美亚洲77777| 深夜精品福利| 久久精品亚洲熟妇少妇任你| 国产精品无大码| 极品少妇高潮喷水抽搐| 国产亚洲午夜精品一区二区久久| 亚洲成av片中文字幕在线观看| 女人爽到高潮嗷嗷叫在线视频| 午夜日本视频在线| 18禁观看日本| 啦啦啦在线观看免费高清www| 宅男免费午夜| 亚洲欧美一区二区三区久久| 大香蕉久久成人网| 国产精品麻豆人妻色哟哟久久| 成年女人毛片免费观看观看9 | 秋霞伦理黄片| 丁香六月欧美| 伊人亚洲综合成人网| 超碰97精品在线观看| 国产男人的电影天堂91| 在线天堂中文资源库| 午夜激情av网站| 亚洲美女视频黄频| 久久久欧美国产精品| 久久精品国产综合久久久| 这个男人来自地球电影免费观看 | 男女边吃奶边做爰视频| 成人亚洲精品一区在线观看| 免费在线观看视频国产中文字幕亚洲 | 亚洲精品中文字幕在线视频| 国产一区亚洲一区在线观看| 国产探花极品一区二区| 9热在线视频观看99| 一区二区av电影网| 日韩电影二区| 色视频在线一区二区三区| 免费观看av网站的网址| 一区二区三区激情视频| 亚洲伊人久久精品综合| 久热这里只有精品99| 看免费av毛片| 天天躁夜夜躁狠狠久久av| 精品人妻一区二区三区麻豆| 午夜免费鲁丝| 色网站视频免费| 777久久人妻少妇嫩草av网站| 国产精品秋霞免费鲁丝片| 精品国产一区二区三区四区第35| 国产成人免费无遮挡视频| 一级片免费观看大全| 涩涩av久久男人的天堂| 国产高清国产精品国产三级| 天天添夜夜摸| 老汉色∧v一级毛片| svipshipincom国产片| 在线天堂最新版资源| 久久久久久人人人人人| 欧美精品av麻豆av|