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

    基于變更類型和相似性比較的代碼重構(gòu)模式識別

    2018-05-23 11:46孫美榮楊春花
    智能計算機與應(yīng)用 2018年2期

    孫美榮 楊春花

    摘 要: 在現(xiàn)代軟件開發(fā)和維護中重構(gòu)是提高軟件可維護性和軟件質(zhì)量的常用手段。而大量重構(gòu)模式摻雜在日常的bug修復、功能增加等代碼變更中,使得變更理解變得非常復雜。因此,提出一種對常見的抽取方法和抽取類重構(gòu)模式的識別算法。研究基于工具ChangeDistiller和JDiff分別獲取變更類型和抽取代碼塊,通過判斷移動后的代碼塊與原文件變更代碼的關(guān)系,識別采取的重構(gòu)模式。該算法在4個開源項目中進行實驗,其平均準確率在80%左右。

    關(guān)鍵詞: 重構(gòu)模式;抽取方法;抽取類

    Abstract:Refactoring is a common way of improving software maintainability and software quality in modern software development and maintenance. In daily revision refactoring patterns are usually mixed with code changes accomplishing other tasks such as bug fixing and feature addition which makes the change understanding very complicated. The paper proposes an identifying algorithm for refactoring patterns including the extract method and extract class. It is based on ChangeDistiller and JDiff that are used to get code changes types and extract code blocks respectively. Then the algorithm will identify the refactoring pattern according to the characteristics of the relationship between the changed codes and the original codes. The algorithm has been tested on 4 open source projects with an average 80% accuracy.

    Key words: refactoring patterns;extract method;extract class

    引言

    重構(gòu)[1]是現(xiàn)代軟件開發(fā)和維護中用于提高軟件可維護性和軟件質(zhì)量的常用手段?,F(xiàn)代的軟件開發(fā)一般基于版本管理系統(tǒng)設(shè)計實現(xiàn),軟件工程師為了維護系統(tǒng)或提高系統(tǒng)的性能每天會提交大量的代碼。而大量重構(gòu)模式摻雜在日常的bug修復、功能增加等代碼變更中,使得代碼評審者和軟件工程師在理解代碼時不得不對代碼進行人工探查,以區(qū)分哪些變更的代碼是重構(gòu),哪些不是。因此,為了使得變更的代碼易于理解,將重構(gòu)模式從代碼變更中隔離出來是非常必要的。

    重構(gòu)[2]是一種基于規(guī)則、經(jīng)過訓練、有條不紊的程序整理方法,在整理過程中可以將不小心引入的錯誤降低。重構(gòu)是處理代碼壞味的一種常用手段。當前,在對重構(gòu)方法的研究方面包括基于K-最近鄰的C克隆代碼重構(gòu)方法[3]、使用抽象語法樹和靜態(tài)分析的克隆代碼自重構(gòu)方法[3]、基于抽象語法樹和多態(tài)機制的復雜條件語句自動重構(gòu)研究[4]、長方法壞味重構(gòu)選擇策略[5]等等。

    重構(gòu)模式的識別是在變更后的代碼中尋找符合特定重構(gòu)模式的代碼修改,是重構(gòu)的反過程。劉陽[6]等人提出了一種重構(gòu)檢測算法,是基于版本元素匹配原理,對函數(shù)抽取重構(gòu)進行了識別,但是并沒有涉及其它類型的重構(gòu)模式。

    通過對4個開源項目的變更代碼進行探查,研究發(fā)現(xiàn)抽取方法、抽取類等是最為常見的重構(gòu)模式。因此,本文對這2種重構(gòu)模式進行了研究,提出了識別的算法。

    1 抽取方法與抽取類的重構(gòu)模式的識別

    1.1 抽取方法與抽取類模式

    圖1是抽取方法(Extract Method)模式的示例。其中,V1是變更前的版本,V2是變更后的版本。對比兩版本,V2中多了一個含參數(shù)的新增方法printDetails,且V1 中4~5行的內(nèi)容抽取到V2的新增方法5~7行中,則在V2相對于V1刪除代碼的位置有對方法printDetails進行調(diào)用。

    抽取方法的表現(xiàn)形式有3種,分別是:沒有局部變量的代碼塊移動、有局部變量的代碼塊移動、對局部變量再賦值。圖1中的抽取方法重構(gòu)是有局部變量代碼塊移動模式。

    抽取類(Extract Class)[7]重構(gòu)模式,一般用于處理過長的類。一個類如果包含過多的功能及屬性,會導致這個類過于臃腫。為了提高類的高內(nèi)聚,低耦合,就會將一些不必要的或不常用的方法提煉到另一個類中,來為這個類服務(wù)。如圖2 是一個抽取類模式的示例,用類圖形式展示。類Person中過多的屬性officeAreaCode和officeNumber以及功能代碼getTelephoneNumber()被抽取到了一個新類TelephoneNumber中,且在移動代碼的地方增加對新類的引用。

    1.2 識別方法

    1.2.1 抽取方法模式識別

    根據(jù)上述抽取方法和抽取類模式的例子,不難發(fā)現(xiàn),屬于抽取方法和抽取類兩種模式的代碼變更具備如下3個特性:

    (1)文件中有新增方法或提交的revision_id中含有新增類文件。

    (2)抽取代碼塊移動到某個方法中。

    (3)在刪除代碼的位置有對該方法的引用。

    為了識別這3個特性,研究借用ChangeDistiller(https://bitbucket.org/sealuzh/tools-changedistiller/src/)工具獲得一個文件變更前后所有的代碼變更類型。這是Fluri[8]等人編寫的一個Tree differ 算法,對變更前后抽象語法樹進行對比,獲取分類的變更。同時,也可以區(qū)別多種方法類型的變化或類等級上的變化。

    但是ChangeDistiller只能獲取原有方法中的新增語句,不能獲取新增方法中的語句體。為此,研究又對ChangeDistiller進行了些許擴展,使其可以返回每個代碼變更的代碼行或代碼行范圍。例如,對于一個新增方法printDetails,ChangeDistiller返回的變更類型為ADDITIONAL_FUNCTIONALITY: printDetails()。擴展后,將返回該方法的行號范圍5~10。

    基于每個新增方法變更的行號范圍,研究中借用文本比較工具JDiff(https://maven.apache.org/archives/maven-1,x/plugins/jdiff)來獲取該方法的方法體。JDiff是一種面向行的文本比較(text diff)工具,用于顯示同一文件2個版本之間的更改。

    另外,對于新增方法中的代碼塊和刪除的代碼塊之間的移動關(guān)系判斷,進一步借助了Levevshtein(https://en.wikipedia.org/wiki/Levenshtein_distance)算法。Levevshtein是一種計算2個字符串間的差異程度的字符串度量(string metric)算法,即一個單詞變成另一個單詞要求的最少單個字符編輯數(shù)量(如:刪除、插入和替換)。

    圖3顯示了該算法的框架,其中l(wèi)eft,right分別表示變更前后的兩文件,left是變更前版本,right表示變更后版本。研究可得算法設(shè)計流程如下:

    (1)代碼變更抽取。通過ChangeDistiller獲取所有類型的代碼變更,包括新增的方法、刪除的語句、原方法中新增的語句等。一個代碼變更由變更類型(ChangeType)、變更實體(ChangeEntiy)和變更雙親實體(ParentEntity)構(gòu)成。根據(jù)研究中對ChangeDistiller的擴展,對每個新增方法madd,將對應(yīng)一個行號范圍(beginline endline)。

    (2)方法體語句的獲取。根據(jù)新增方法的行號范圍通過JDiff獲取代碼塊。此步驟的結(jié)果是一個元組的集合EMADD={ |。 madd是一個新增方法,ladd =ladd1 ... laddn是madd方法體中的所有語句}。

    (3)代碼變更分組。通過上述步驟(1),所有刪除的語句行,以及原方法中新增的語句行都已經(jīng)獲得。然后就可將所有刪除和新增的語句根據(jù)有關(guān)的方法父類實體進行分組。此步驟的結(jié)果是一個元組的集合MCHANGE={ < mname linsert ldelete >| mname是方法名稱,linsert =linsert1 ... linsertn是該方法內(nèi)部增加的語句,ldelete = ldelete1 ... ldeletem是刪除的語句}。

    (4)代碼塊抽取判定。步驟(2)中獲得的所有新增方法的代碼行塊,與步驟(3)中獲取的所有刪除的代碼塊,進行相似度比較,判斷是否存在代碼塊抽取。

    (5)模式判定。若塊b1=和塊b2=< mname linsert ldelete >滿足抽取關(guān)系,即b2.ldelete 與b1.ladd具有相似度,則通過如下關(guān)系判斷是否存在抽取方法模式:對方法mname內(nèi)的每條新增語句linsert i∈b2. LINSERT,判斷方法是否調(diào)用madd,調(diào)用語句如圖1,即:

    V2:METHOD_INVOCATION:printDetails(outstanding

    1.2.2 抽取類模式識別

    抽取類模式識別與抽取方法模式識別的步驟基本相似;算法框架略。在此,可給出算法步驟分述如下。

    (1)代碼變更抽取。通過ChangeDistiller獲取所有類型的代碼變更。擴展方法獲取revision_id中新增類文件fnew,及所有方法MADD。

    (2)代碼變更分組。 同抽取方法步驟(3)。

    (3)方法體語句的獲取。根據(jù)步驟(2)中的MCHANGE,在fnew中獲取與ldelete相似的代碼塊ladd。根據(jù)ladd歸屬的方法分組EMADD={ |madd是方法名稱,ladd =ladd1 ... ladd n是madd方法體中的所有語句}。

    (4)同抽取方法步驟(4)。

    (5)模式判定。若塊b1=和塊b2=< mname linsert ldelete >滿足抽取關(guān)系,即b2.ldelete 與b1.ladd存在相似度,則通過如下關(guān)系判斷是否存在抽取方法模式:對方法mname內(nèi)的每條新增語句linsert i∈b2. LINSERT,判斷方法是否調(diào)用madd,調(diào)用語句如圖2,即:

    V2:FIELD: person.officeTelephone: TelephoneNumber;officeTelephone.getTelephoneNumber()

    1.3 算法

    編寫抽取方法與抽取類重構(gòu)模式識別的偽代碼算法。本次研究中,關(guān)鍵設(shè)計的偽代碼可見如下:

    對給定某個程序的2個相鄰版本進行重構(gòu)模式識別的判定,revision_id表示一次提交。其中,兩版本中的變更集合存放在Schange中,Schange是一個元組的集合;Schange ={ < ctype centity ,cparententity>| cd是一條代碼變更,ctype = ctype1 ... ctypen是語句變更的類型,centity = centity1 ... centitym是語句變更的實體,cparententity = cparententity1 ..., cparententityk是語句變更位置的雙親}。

    算法偽代碼中第5行通過ChangeDistiller可知f是否為變更文件;第13行中的mname是根據(jù)Schange.cparententity獲得;第28行中的新增文件fnew是根據(jù)本次提交的revision_id與上次revision_id-1進行比較獲得;第29行根據(jù)類的反射機制獲取fnew中的所有方法Madd;第47行返回所有成功識別的重構(gòu)模式集合P。

    2 實驗驗證

    2.1 數(shù)據(jù)源

    為了驗證實驗的可執(zhí)行性,過程中通過minigit(https://github.com/3ofcoins/minigit/)工具獲取了4個開源項目進行驗證。分別為:jEdit、maven、goole_guice、eclipse,利用MySql根據(jù)各項目提交的日志篩選出將近10年的重構(gòu)revision_id,然后對篩選出的重構(gòu)revision_id進行人工檢測,表1即為篩選出的抽取方法、抽取類兩種重構(gòu)模式的基本詳細信息。具體內(nèi)容詳述如下。

    (1)jEdit( http://sourceforge.net/project/jedit/)是一個跨平臺的文本編輯器。數(shù)據(jù)獲取時間段為:1998/09/27~2012/08/08,本次實驗人工檢測JEdit發(fā)生重構(gòu)的revision_id數(shù)目為45個版本,含有的總文件數(shù)目548個。

    (2)maven(http://maven.apache.org/dowload.cgi)是對象模型(POM),可以通過一小段描述信息來管理項目的構(gòu)建、報告和文檔的軟件項目管理工具。數(shù)據(jù)獲取時間段為:2003/09/02~2014/01/29,本次實驗人工檢測maven發(fā)生重構(gòu)的revision_id數(shù)目為123個版本,含有的總文件數(shù)目為1 494個。

    (3)goole_guice(https://github.com/apress/goo-gle guice),讀作"juice")是超輕量級的,下一代的,為Java 5及后續(xù)版本設(shè)計的依賴注入容器。數(shù)據(jù)獲取時間段為:2006/08/23~2013/12/12,本次實驗人工檢測goole_guice發(fā)生重構(gòu)的revision_id數(shù)目為25個版本,含有的總文件數(shù)目為567個。

    (4)eclipse(http://www.eclipse.org/downloads/eclipse-packages/)是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。數(shù)據(jù)獲取時間段為:2001/06/23~2013/10/16,本次實驗人工檢測eclipse發(fā)生重構(gòu)的revision_id數(shù)目為20個版本,含有的總文件數(shù)目為175個。

    2.2 結(jié)果及實驗分析

    圖4、5是變更前后的兩文件,圖6是該算法對這一變更檢測的詳細信息輸出。

    圖4、圖5給出了ChangeDistiller獲取的新增方法injectMirror,以及由JDiff結(jié)合Levenshtein獲取的抽取代碼塊,ML(502~514)方法體行號范圍。

    該實驗對4個Java開源項目中的數(shù)據(jù)進行驗證,每個項目中有30~100個重構(gòu)revison_id版本,對表1中的數(shù)據(jù)進行驗證,因為每個revison_id版本中包含多個文件,所以重構(gòu)檢測不止對一個文件進行操作。通過實驗后檢測得到的實驗結(jié)果,可見表2。

    通過表2可以得出,該實驗測定運行的抽取方法和抽取類的檢測結(jié)果的平均準確率為80%,準確率在75%~82.5%之間略有波動。準確率沒有達到100%的原因與相似度值選取有關(guān)。本文是借用Levenshtein算法比較兩字符串的相似性,對于閾值的選取是關(guān)鍵原因。閾值選取過高,降低了準確率;閾值選取過小,則會大大降低查準率。因此,對代碼相似度算法的選取也是后續(xù)研發(fā)的重要工作之一。

    3 結(jié)束語

    本文中,研究提出一種基于ChangeDistiller和文本差異工具識別變更代碼中重構(gòu)模式的算法,并通過4個開源試驗成功識別了抽取方法和抽取類兩種重構(gòu)模式。未來工作可有針對性地圍繞如下工作展開研究:

    (1)獲取更多的相關(guān)數(shù)據(jù)進行驗證。

    (2)對Extract Superclass、Move Method等模式進行研究。

    參考文獻

    [1] MURPHYHILL E PARNIN C BLACK A P. How we refactor and how we know it[J]. IEEE 31st international conference on Software Engineering. Vancouver BC Canada:IEEE 2009:287-297.

    [2] FOWLER M BECK K ROBERTS D et al. Refactoring improving the design of existing code[M]. Sebastopol CA:Addison-Wesley Professional 1999.

    [3] 于冬琦 彭鑫 趙文耘. 使用抽象語法樹和靜態(tài)分析的克隆代碼自動重構(gòu)方法[J]. 小型微型計算機系統(tǒng) 2009 30(9):1752-1760.

    [4] 劉偉 胡志剛 劉宏韜. 基于抽象語法樹和多態(tài)機制的復雜條件語句自動重構(gòu)研究[J]. 電子科技大學學報 2014 43(5):736-741.

    [5] 馬飛飛 吳海濤. 長方法壞味重構(gòu)選擇策略[J]. 計算機應(yīng)用 2014,34(s1):284-286,293.

    [6] 劉陽 劉秋榮 劉輝. 函數(shù)抽取重構(gòu)的自動檢測方法[J]. 計算機科學 2015 42(12):105-107.

    [7] FOKAEFS M TSANTALIS N STROULIA E et al. Identification and application of Extract Class refactorings in object-oriented systems[J]. Journal of Systems & Software 2012 85(10):2241-2260.

    [8] FLURI B GALL H C. Classifying change types for qualifying change couplings[C]//International Conference on Program Comprehension (2006). Athens Greece:IEEE 2006:35-45.

    404 Not Found

    404 Not Found


    nginx
    av国产免费在线观看| a级毛片a级免费在线| 亚洲久久久久久中文字幕| 中文字幕熟女人妻在线| 婷婷色综合大香蕉| 婷婷精品国产亚洲av在线| 亚洲国产日韩欧美精品在线观看| 欧美中文日本在线观看视频| 精品无人区乱码1区二区| 性色avwww在线观看| 女生性感内裤真人,穿戴方法视频| 成人三级黄色视频| 2021天堂中文幕一二区在线观| 一级黄色大片毛片| 日韩一区二区视频免费看| 国产精品一区二区免费欧美| 别揉我奶头~嗯~啊~动态视频| 六月丁香七月| a级毛片a级免费在线| 波多野结衣高清作品| 亚洲精品日韩av片在线观看| 波野结衣二区三区在线| 成人一区二区视频在线观看| 丝袜喷水一区| 亚洲第一电影网av| 亚洲久久久久久中文字幕| 美女高潮的动态| 日韩欧美精品免费久久| 乱人视频在线观看| 九色成人免费人妻av| 长腿黑丝高跟| 久久亚洲精品不卡| eeuss影院久久| av中文乱码字幕在线| 人妻夜夜爽99麻豆av| 国产高清视频在线播放一区| 国内精品美女久久久久久| 在线a可以看的网站| 两性午夜刺激爽爽歪歪视频在线观看| 久久久欧美国产精品| 亚洲中文日韩欧美视频| 真实男女啪啪啪动态图| 中文在线观看免费www的网站| 直男gayav资源| 丝袜喷水一区| 99热这里只有是精品50| 观看免费一级毛片| 乱码一卡2卡4卡精品| 亚洲人成网站高清观看| 午夜精品一区二区三区免费看| 国产精品电影一区二区三区| 成人欧美大片| 亚洲丝袜综合中文字幕| 最近最新中文字幕大全电影3| 乱码一卡2卡4卡精品| 国产成人a区在线观看| 人妻久久中文字幕网| 高清毛片免费看| 日本在线视频免费播放| 别揉我奶头 嗯啊视频| 特大巨黑吊av在线直播| 最新在线观看一区二区三区| 国产69精品久久久久777片| 精品久久久久久成人av| 国产成人a区在线观看| 搡老熟女国产l中国老女人| 国产v大片淫在线免费观看| 欧美丝袜亚洲另类| 99久久精品国产国产毛片| 99久久无色码亚洲精品果冻| 天天躁日日操中文字幕| 国产精品精品国产色婷婷| 国产精品久久视频播放| 美女内射精品一级片tv| 人妻少妇偷人精品九色| 美女 人体艺术 gogo| 亚洲国产精品成人久久小说 | 国产一区二区三区av在线 | 村上凉子中文字幕在线| 蜜臀久久99精品久久宅男| 久久久午夜欧美精品| 久久人人精品亚洲av| 91久久精品电影网| 日韩一本色道免费dvd| 91午夜精品亚洲一区二区三区| 亚洲乱码一区二区免费版| 日日啪夜夜撸| 精品人妻视频免费看| 少妇丰满av| 99久久中文字幕三级久久日本| 免费不卡的大黄色大毛片视频在线观看 | 精品人妻一区二区三区麻豆 | 国产午夜福利久久久久久| 色哟哟·www| 欧美人与善性xxx| 中文字幕久久专区| 亚洲第一电影网av| 亚洲av电影不卡..在线观看| 春色校园在线视频观看| 国内精品宾馆在线| 亚洲欧美中文字幕日韩二区| 天天躁日日操中文字幕| 18禁裸乳无遮挡免费网站照片| 国产一区二区三区av在线 | 国产成人一区二区在线| 美女被艹到高潮喷水动态| av在线老鸭窝| 又黄又爽又刺激的免费视频.| 又爽又黄a免费视频| 亚洲丝袜综合中文字幕| 国产亚洲精品综合一区在线观看| 看片在线看免费视频| 亚洲性久久影院| 国产精品亚洲美女久久久| 国产av麻豆久久久久久久| 可以在线观看毛片的网站| 精品久久久久久久人妻蜜臀av| 日日摸夜夜添夜夜添av毛片| 97超碰精品成人国产| 99久久精品一区二区三区| 天堂av国产一区二区熟女人妻| 99精品在免费线老司机午夜| 啦啦啦观看免费观看视频高清| 欧美成人精品欧美一级黄| videossex国产| 国模一区二区三区四区视频| 一本久久中文字幕| 久99久视频精品免费| 国产精品一区www在线观看| 一本一本综合久久| 国产欧美日韩一区二区精品| 国产精品嫩草影院av在线观看| 亚洲欧美日韩高清专用| 国产欧美日韩一区二区精品| 老司机影院成人| 好男人在线观看高清免费视频| 最近手机中文字幕大全| 麻豆成人午夜福利视频| 国产片特级美女逼逼视频| 久久九九热精品免费| 一本久久中文字幕| 人妻少妇偷人精品九色| 国产黄色视频一区二区在线观看 | 1000部很黄的大片| 欧美+亚洲+日韩+国产| 亚洲精品亚洲一区二区| 亚洲精品一区av在线观看| 日韩欧美一区二区三区在线观看| 亚洲美女视频黄频| 99久久中文字幕三级久久日本| 午夜a级毛片| 日本色播在线视频| 午夜福利高清视频| 久久欧美精品欧美久久欧美| 亚洲美女黄片视频| 大香蕉久久网| 久久久久久久久久成人| 麻豆一二三区av精品| 少妇熟女aⅴ在线视频| 欧美区成人在线视频| 男女啪啪激烈高潮av片| 成人三级黄色视频| 香蕉av资源在线| 国产成人福利小说| 日韩成人av中文字幕在线观看 | 亚洲三级黄色毛片| 日本一本二区三区精品| 男女那种视频在线观看| 成人一区二区视频在线观看| 日韩,欧美,国产一区二区三区 | 一夜夜www| а√天堂www在线а√下载| 99久久无色码亚洲精品果冻| 毛片女人毛片| 亚洲欧美中文字幕日韩二区| 99热全是精品| 亚洲美女搞黄在线观看 | 国产真实伦视频高清在线观看| 成人无遮挡网站| 国国产精品蜜臀av免费| 九色成人免费人妻av| 亚洲七黄色美女视频| 日韩欧美精品免费久久| 国产精品嫩草影院av在线观看| 成人鲁丝片一二三区免费| 天堂影院成人在线观看| 国产午夜精品论理片| 三级经典国产精品| 亚洲成人久久性| 欧美又色又爽又黄视频| 成人国产麻豆网| 国产成年人精品一区二区| 亚洲无线在线观看| 亚洲性夜色夜夜综合| 一级毛片久久久久久久久女| 欧美成人a在线观看| 国产欧美日韩一区二区精品| 国产日本99.免费观看| 国产精品伦人一区二区| 老司机午夜福利在线观看视频| 久久久久精品国产欧美久久久| 国产在线精品亚洲第一网站| 啦啦啦韩国在线观看视频| 日韩大尺度精品在线看网址| 欧美高清成人免费视频www| 国产毛片a区久久久久| 日本-黄色视频高清免费观看| 国产精品福利在线免费观看| 香蕉av资源在线| 俄罗斯特黄特色一大片| 久久午夜福利片| 人妻少妇偷人精品九色| 色av中文字幕| 国产大屁股一区二区在线视频| 小蜜桃在线观看免费完整版高清| 99久久九九国产精品国产免费| 国产精品久久久久久久电影| 国产午夜精品久久久久久一区二区三区 | 欧美极品一区二区三区四区| 国产日本99.免费观看| 亚洲图色成人| 大又大粗又爽又黄少妇毛片口| 欧美绝顶高潮抽搐喷水| 熟女电影av网| 日本免费一区二区三区高清不卡| 日韩中字成人| 欧美日韩乱码在线| 成年免费大片在线观看| 中文在线观看免费www的网站| 亚洲丝袜综合中文字幕| 人人妻人人澡人人爽人人夜夜 | 特大巨黑吊av在线直播| 天堂影院成人在线观看| 97超碰精品成人国产| 精品福利观看| 国产三级中文精品| 色吧在线观看| 日韩强制内射视频| 成人无遮挡网站| 成人二区视频| 欧美一级a爱片免费观看看| 午夜日韩欧美国产| 欧美激情久久久久久爽电影| 国产午夜福利久久久久久| 嫩草影视91久久| 99热网站在线观看| 丰满乱子伦码专区| 一边摸一边抽搐一进一小说| 老司机福利观看| 精品午夜福利视频在线观看一区| 直男gayav资源| 国产精品99久久久久久久久| 国产精品一区二区性色av| 高清日韩中文字幕在线| 一级毛片久久久久久久久女| 久久国内精品自在自线图片| 国产69精品久久久久777片| 国产精品一区二区免费欧美| 欧美激情国产日韩精品一区| 亚洲人成网站在线播放欧美日韩| 亚洲欧美日韩无卡精品| 成人特级av手机在线观看| 中国美女看黄片| 成年女人毛片免费观看观看9| 真实男女啪啪啪动态图| 久久久久国产精品人妻aⅴ院| 欧美一区二区精品小视频在线| 男女做爰动态图高潮gif福利片| 久久综合国产亚洲精品| 日韩亚洲欧美综合| 干丝袜人妻中文字幕| 成人综合一区亚洲| 成人特级黄色片久久久久久久| 午夜福利18| 麻豆国产97在线/欧美| 久久国内精品自在自线图片| 久久久久久久亚洲中文字幕| 成年版毛片免费区| ponron亚洲| 亚洲国产欧洲综合997久久,| 少妇猛男粗大的猛烈进出视频 | 深夜a级毛片| 国产成人福利小说| 插阴视频在线观看视频| 在线观看美女被高潮喷水网站| 淫秽高清视频在线观看| 中国美女看黄片| 成人二区视频| 欧美日韩国产亚洲二区| 两个人的视频大全免费| 国产精品一区二区性色av| 精品乱码久久久久久99久播| 99国产精品一区二区蜜桃av| 秋霞在线观看毛片| 免费观看精品视频网站| 欧美三级亚洲精品| 久久亚洲精品不卡| 综合色av麻豆| 国产精品久久视频播放| 校园春色视频在线观看| 熟妇人妻久久中文字幕3abv| 1000部很黄的大片| 人人妻,人人澡人人爽秒播| 深夜a级毛片| 免费观看人在逋| 免费看日本二区| 亚洲av中文字字幕乱码综合| 熟女电影av网| 搡女人真爽免费视频火全软件 | 亚洲精品影视一区二区三区av| 成人二区视频| 日韩一区二区视频免费看| ponron亚洲| 丰满的人妻完整版| 国产私拍福利视频在线观看| 超碰av人人做人人爽久久| 能在线免费观看的黄片| 国产在线男女| 午夜福利在线观看免费完整高清在 | 蜜桃亚洲精品一区二区三区| 级片在线观看| 女同久久另类99精品国产91| 国内揄拍国产精品人妻在线| 欧美激情在线99| 国产单亲对白刺激| 欧美+日韩+精品| 人人妻人人澡欧美一区二区| 亚洲熟妇熟女久久| 亚洲最大成人手机在线| 精品久久久久久久久久久久久| 熟女电影av网| eeuss影院久久| 91久久精品国产一区二区成人| 麻豆国产av国片精品| 国产精品伦人一区二区| 久久久欧美国产精品| av在线蜜桃| 亚洲国产欧洲综合997久久,| 一区二区三区四区激情视频 | 免费人成视频x8x8入口观看| 美女高潮的动态| 日韩欧美在线乱码| 亚洲自拍偷在线| av在线播放精品| 欧美极品一区二区三区四区| 黄色一级大片看看| 国产不卡一卡二| 久久韩国三级中文字幕| 中文字幕人妻熟人妻熟丝袜美| 女同久久另类99精品国产91| 日韩欧美三级三区| 最近中文字幕高清免费大全6| 91精品国产九色| 白带黄色成豆腐渣| avwww免费| 99国产精品一区二区蜜桃av| 老司机福利观看| 国产白丝娇喘喷水9色精品| 国产不卡一卡二| 淫秽高清视频在线观看| 最新在线观看一区二区三区| 少妇高潮的动态图| 久久久久久久久大av| 99久久精品国产国产毛片| 国产亚洲精品久久久com| 国产乱人偷精品视频| 日日摸夜夜添夜夜添av毛片| 婷婷亚洲欧美| av在线蜜桃| 国产男靠女视频免费网站| 在线观看一区二区三区| 免费高清视频大片| 六月丁香七月| 在线免费十八禁| 一本一本综合久久| 国产精华一区二区三区| 国产69精品久久久久777片| 欧美另类亚洲清纯唯美| 又黄又爽又刺激的免费视频.| 真人做人爱边吃奶动态| 国产在线男女| 日韩,欧美,国产一区二区三区 | 黄色配什么色好看| h日本视频在线播放| 欧美日韩一区二区视频在线观看视频在线 | 国产高清视频在线观看网站| 简卡轻食公司| 免费人成在线观看视频色| 亚洲精品日韩在线中文字幕 | 久久中文看片网| 国产精品美女特级片免费视频播放器| 中文资源天堂在线| 12—13女人毛片做爰片一| 少妇熟女欧美另类| 看黄色毛片网站| 亚洲真实伦在线观看| 亚洲aⅴ乱码一区二区在线播放| 国产av一区在线观看免费| 男人舔奶头视频| 欧美日韩乱码在线| 99在线视频只有这里精品首页| 国产乱人偷精品视频| 三级国产精品欧美在线观看| 俄罗斯特黄特色一大片| 99热全是精品| 成人永久免费在线观看视频| 久久久久久久久大av| 熟女人妻精品中文字幕| 搞女人的毛片| 在线免费观看的www视频| 久99久视频精品免费| 欧美人与善性xxx| 亚洲欧美日韩无卡精品| 欧美激情在线99| 久久人妻av系列| 国产av在哪里看| 俄罗斯特黄特色一大片| 亚洲图色成人| 亚洲一区二区三区色噜噜| 校园人妻丝袜中文字幕| 久久久久精品国产欧美久久久| 大型黄色视频在线免费观看| 深爱激情五月婷婷| 欧美国产日韩亚洲一区| 欧美三级亚洲精品| 国产一区二区三区在线臀色熟女| 人妻少妇偷人精品九色| 日韩精品中文字幕看吧| 国产伦精品一区二区三区视频9| 99久国产av精品国产电影| 伊人久久精品亚洲午夜| 久久精品国产亚洲av香蕉五月| 俺也久久电影网| 真人做人爱边吃奶动态| 亚洲自拍偷在线| 俺也久久电影网| 在线国产一区二区在线| 少妇被粗大猛烈的视频| 一进一出抽搐动态| 亚洲av五月六月丁香网| 欧美精品国产亚洲| 99久久精品国产国产毛片| 真人做人爱边吃奶动态| 国产 一区精品| 99久久精品国产国产毛片| 可以在线观看毛片的网站| 亚洲欧美精品自产自拍| 久久久久久大精品| 一进一出抽搐动态| 亚洲国产日韩欧美精品在线观看| 国产私拍福利视频在线观看| 亚洲国产色片| 欧美激情久久久久久爽电影| or卡值多少钱| 午夜久久久久精精品| 国产三级中文精品| 最近手机中文字幕大全| 日韩欧美在线乱码| 久久亚洲精品不卡| 国产真实乱freesex| 天堂av国产一区二区熟女人妻| 最新中文字幕久久久久| 久久午夜亚洲精品久久| 免费搜索国产男女视频| 久久99热6这里只有精品| 午夜久久久久精精品| 日韩一本色道免费dvd| 久久久久国内视频| 欧美绝顶高潮抽搐喷水| 国产国拍精品亚洲av在线观看| 又爽又黄无遮挡网站| 亚洲电影在线观看av| 两个人视频免费观看高清| 99热精品在线国产| 久久久成人免费电影| 久久草成人影院| 成人毛片a级毛片在线播放| 联通29元200g的流量卡| 99九九线精品视频在线观看视频| 听说在线观看完整版免费高清| 成年女人永久免费观看视频| 又粗又爽又猛毛片免费看| 久久久久久久久久黄片| 俄罗斯特黄特色一大片| 人妻制服诱惑在线中文字幕| 长腿黑丝高跟| 亚洲精品影视一区二区三区av| 亚洲精品456在线播放app| 亚洲专区国产一区二区| 偷拍熟女少妇极品色| 91精品国产九色| 成人毛片a级毛片在线播放| 亚洲最大成人av| 听说在线观看完整版免费高清| 日本一本二区三区精品| 欧美+亚洲+日韩+国产| 一边摸一边抽搐一进一小说| 一本精品99久久精品77| 亚洲精品日韩在线中文字幕 | 特大巨黑吊av在线直播| 精品人妻偷拍中文字幕| 成人特级av手机在线观看| 性欧美人与动物交配| 日韩人妻高清精品专区| 少妇裸体淫交视频免费看高清| 精品久久久噜噜| 日韩国内少妇激情av| 久久精品国产鲁丝片午夜精品| 欧美日韩一区二区视频在线观看视频在线 | 亚洲美女搞黄在线观看 | 亚洲av中文av极速乱| 3wmmmm亚洲av在线观看| 深夜精品福利| 日韩精品有码人妻一区| or卡值多少钱| 久久久久久国产a免费观看| 久久精品国产亚洲网站| 91狼人影院| 免费高清视频大片| a级毛色黄片| 成人av一区二区三区在线看| 欧美一区二区亚洲| 亚洲成av人片在线播放无| av国产免费在线观看| a级毛色黄片| 亚洲国产日韩欧美精品在线观看| www日本黄色视频网| 欧美成人一区二区免费高清观看| 国产伦一二天堂av在线观看| 一进一出好大好爽视频| 秋霞在线观看毛片| 免费一级毛片在线播放高清视频| 精品一区二区三区视频在线观看免费| 美女内射精品一级片tv| 国产伦精品一区二区三区四那| 少妇高潮的动态图| 哪里可以看免费的av片| 亚洲高清免费不卡视频| 晚上一个人看的免费电影| 日本熟妇午夜| 有码 亚洲区| 在线免费十八禁| 日韩,欧美,国产一区二区三区 | 美女大奶头视频| 免费人成视频x8x8入口观看| 国产乱人偷精品视频| 欧美又色又爽又黄视频| 亚洲欧美日韩高清专用| 搡老熟女国产l中国老女人| 免费观看精品视频网站| 神马国产精品三级电影在线观看| 日韩av在线大香蕉| 国产aⅴ精品一区二区三区波| 亚洲欧美日韩无卡精品| 日日摸夜夜添夜夜爱| 精品久久久久久久久久免费视频| 日本黄色视频三级网站网址| 人妻少妇偷人精品九色| av在线老鸭窝| 日本-黄色视频高清免费观看| 一级毛片久久久久久久久女| 天堂av国产一区二区熟女人妻| 97人妻精品一区二区三区麻豆| 久久韩国三级中文字幕| 欧美最黄视频在线播放免费| 国产精品一区二区性色av| 日本一二三区视频观看| 久久亚洲国产成人精品v| 亚洲欧美成人综合另类久久久 | 桃色一区二区三区在线观看| 黄色配什么色好看| 日韩三级伦理在线观看| 一进一出抽搐动态| 欧美激情国产日韩精品一区| 深爱激情五月婷婷| 又黄又爽又刺激的免费视频.| 国产精品久久久久久亚洲av鲁大| 高清毛片免费观看视频网站| 亚洲色图av天堂| 亚洲精品粉嫩美女一区| 免费看日本二区| 亚洲电影在线观看av| 少妇猛男粗大的猛烈进出视频 | 插阴视频在线观看视频| 99热这里只有是精品50| 精品一区二区免费观看| 非洲黑人性xxxx精品又粗又长| 成人高潮视频无遮挡免费网站| 草草在线视频免费看| 男人和女人高潮做爰伦理| 国产伦在线观看视频一区| 亚洲av免费在线观看| 97超级碰碰碰精品色视频在线观看| 91午夜精品亚洲一区二区三区| 最近中文字幕高清免费大全6| 最近最新中文字幕大全电影3| 1000部很黄的大片| 国产成人a∨麻豆精品| 看免费成人av毛片| 国产国拍精品亚洲av在线观看| 欧美高清性xxxxhd video| 夜夜看夜夜爽夜夜摸| 一边摸一边抽搐一进一小说| 国产精品99久久久久久久久| 十八禁网站免费在线| 女人被狂操c到高潮| av在线观看视频网站免费| 国产成人影院久久av| 国产精品国产高清国产av| 日日干狠狠操夜夜爽| 啦啦啦韩国在线观看视频| 亚洲国产精品sss在线观看| 性色avwww在线观看| 国内久久婷婷六月综合欲色啪| 久久久久国产网址|