999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于版本控制的中文文檔到源代碼的自動跟蹤方法

2018-11-22 09:37:54劉洪星李勇華
計算機應用 2018年10期
關鍵詞:規則信息方法

沈 力,劉洪星,2,李勇華,2

(1.武漢理工大學 計算機科學與技術學院,武漢 430063; 2.武漢理工大學 交通物聯網技術湖北省重點實驗室,武漢 430070)(*通信作者電子郵箱liyonghua@whut.edu.cn)

0 引言

軟件通常被定義為文檔和程序的集合,在軟件的開發、使用以及維護階段都會產生大量的文檔,而這些文檔含有豐富的信息,并且和源代碼之間存在緊密的聯系。需求跟蹤(Requirement Traceability)是指在軟件開發周期中向前或向后的描述和跟蹤軟件開發元素的能力[1]。其中,文檔與源代碼之間的跟蹤關系顯得尤為重要,它在程序理解、軟件開發、軟件維護、變更分析和軟件復用等方面有重要的作用,所以建立文檔和源代碼之間的跟蹤鏈成為軟件工程中的重要內容。

文獻[2]將信息檢索 (Information Retrieval, IR)技術與代碼的調用關系及數據依賴關系相結合,提高了基于信息檢索的自動跟蹤能力;但代碼依賴關系獲取過程比較耗時,并針對了特定的程序語言。文獻[3]研究了利用自然語言語義在獲取自動化跟蹤鏈時的潛在好處,比較了向量空間模型等幾種信息檢索及其改進方法,論證了明確的語義方法要好于潛在的語義方法;該方法的使用過程中需要大量語義分析,特殊領域需要特殊領域詞典等工具支撐。文獻[4]提出了一種基于IR和非文本技術自動結合的需求跟蹤方法,首先確定直接的跟蹤鏈,即通過IR方法計算文檔與代碼之間的跟蹤鏈,通過改進的IR方法計算文檔語句之間的跟蹤鏈,通過加權的非文本方法計算代碼類之間的跟蹤鏈;然后確定非直接的跟蹤鏈,即根據上一步跟蹤鏈關系建立一個權重矩陣,通過矩陣乘法找出非直接的跟蹤鏈;最后通過設定閾值獲取文檔與源代碼之間的跟蹤鏈。該方法相對于直接耦合的方法提升了精確度。文獻[5]在標準用戶反饋的方法上提出了一種自適應的反饋方法,該方法利用軟件結構以及先前劃分的正確鏈和錯誤鏈來決定是否以及如何使用反饋,相對標準的反饋方法表現更好;但目前僅測試于規模較小的項目,還需進一步驗證。文獻[6]分析了在利用文本和代碼結構相結合的方法來提取跟蹤鏈過程中的優缺點,提出利用軟件工程師在對候選鏈進行分類時提供的反饋來規范使用結構化信息的方法,結果表明該方法優于純粹的基于IR的方法和結合文本與結構信息的方法,但過程中需要大量的人工干預。文獻[7]通過定義24個特定的變化場景,通過上一個版本的需求文檔、代碼和跟蹤鏈與當前版本的需求文檔、代碼進行比較,得出當前版本的跟蹤鏈;但是該方法局限性比較強,需要上一版本的跟蹤鏈,可操作性比較低。

上述研究大多數是利用基于文本詞匯信息的信息檢索模型來建立源文件和目標文件之間的跟蹤鏈,而軟件文檔通常由自然語言書寫,源代碼由代碼語言書寫,因此使用傳統的信息檢索模型建立軟件文檔和源代碼間的跟蹤鏈時,存在精度過低的問題。雖然有的研究注意到代碼的結構信息,但忽略了中文文檔語義和代碼版本更新記錄等有效信息,并且當前關于中文文檔與源代碼間可追蹤關系的研究較少。

針對以上問題,本文提出一種基于版本控制的中文文檔到源代碼的自動跟蹤方法。該方法在利用傳統的信息檢索技術建立中文文檔與源代碼跟蹤鏈的基礎上,加入對源代碼版本信息和中文軟件文檔語義信息的分析,以便提高可追蹤性跟蹤鏈的精度。

1 本文方法

基于版本控制的中文文檔到源代碼的自動跟蹤方法結構如圖1所示。其中包含4個主要的處理階段:數據獲取與處理、文本信息檢索、版本控制信息處理及跟蹤關系推薦,而啟發式規則用來輔助進行文本信息檢索。該方法在進行文檔到代碼跟蹤關系推薦時,首先需要獲取數據并進行預處理,然后結合文檔到代碼的啟發式規則,使用信息檢索模型計算文檔和源代碼間的相似度,同時從版本更新信息中獲取描述語句與源代碼映射關系文檔,計算軟件文檔與映射關系文檔間的相似度,最后結合這兩者的相似度得分得出文檔到代碼的跟蹤鏈列表。

圖1 基于版本控制的中文文檔到源代碼的自動跟蹤方法結構Fig. 1 Architecture of automatic tracking method from Chinese document to source code based on version control

1.1 相關定義及啟發式規則

1.1.1 句法分析與語義分析

中文文檔、版本控制信息中的描述語句以及源代碼中的注釋信息通常是一些簡單句句型,而簡單句的基本句型由命令式的祈使句和表示條件、位置和修飾動詞的狀語構成,因此提出如下定義。

定義1 句法分析。軟件工程文檔中的簡單句Sip由0~N個介詞短語Spp、0~N個名詞短語Snp和1個動詞短語Svp構成。句法結構分析規則如下:

Sip=Svp|S1+Svp|S2+Snp

S1=Spp|S1+Spp

S2=Snp|S2+Snp

定義2 語義分析。簡單句Sip可由四種短語結構成分組成,可以表示成一個多元式的語義結構形式,即Sv=(Act,Pla,Dep,Con),其中:

Act為“動作”,由中心謂語動詞和中心賓語(即不包含修飾詞的部分)組成。

Pla為“位置”,是指Act執行的位置,通常是單個名詞短語或介詞“在”的中心賓語。

Dep為“憑借”,是指Act執行的憑借,用來修飾動詞,通常是介詞“根據”“用”的中心賓語。

Con為“條件”,是指Act執行的條件,通常是介詞“當”“只有”之后的條件子句。

根據定義1、定義2,推導出下列語義分析規則:

規則1Act推導規則。

當簡單句Sip中直接存在動詞短語Svp,且Svp直接由動詞短語Svp1或者由其他成分So和動詞短語Svp1構成,Svp1可以是動詞Wv或動詞及名詞短語Snp的形式,那么該動詞短語Svp1即為Act:

?Svp∈Sip∧(Svp=Svp1∨Svp=So+Svp1)∧

(Svp1=Wv∨Svp1=Wv+Snp) ?Svp1∈Act

規則2Pla推導規則。

A)當簡單句Sip中直接存在名詞短語Snp時,認為Snp為Pla:

?Snp∈Sip?Snp∈Pla

B)當簡單句Sip中直接存在由介詞Wp引導的介詞短語Spp,其中介詞Wp屬于引導Pla的介詞集合Cpp,Spp由Wp和名詞短語Snp構成,有些Spp中還存在表示Pla的名詞Wn,Wn屬于表示Pla的名詞集合,則認為名詞短語Snp屬于Pla:

?Spp∈Sip∧(Spp={Wp+Snp|Wp∈Cpp}∨Spp=

{Wp+Snp+Wn|Wp∈Cpp∧Wn∈Cnp}) ?Snp∈Pla

規則3Dep推導規則。

當簡單句Sip中存在動詞短語Svp,Svp由介詞短語Spp和動詞短語Svp1構成,Spp由介詞Wp和名詞短語Snp構成,其中Wp處于表示Dep的介詞集合中,則名詞短語Snp屬于Dep:

?Svp∈Sip∧Svp=Spp+Svp1∧

Spp={Wp+Snp|Wp∈Cpd} ?Snp∈Dep

規則4Con推導規則。

A)當簡單句Sip中直接存在由介詞Wp引導的介詞短語Spp,其中介詞Wp屬于引導Con的介詞集合Cpc,Spp由Wp和名詞短語Snp構成,而Snp由簡單句Sip2、標記詞Wdec和名詞Wn構成,其中Wdec屬于標引詞集合Cdec,Wn屬于表示Con的名詞集合中,則簡單句Sip2屬于Con:

?Spp∈Sip∧Spp={Wp+Snp,Snp=Sip2+Wdec+

Wn|Wp∈Cpc∧Wn∈Cnc∧Wdec∈Cdec} ?

Sip2∈Con

B)當簡單句Sip中直接存在由介詞Wp引導的介詞短語Spp,其中介詞Wp屬于引導Con的介詞集合Cpc,Spp由介詞Wp和方位詞短語Slcp構成,Slcp由簡單句Sip2和方位詞構成,其中Wlc屬于方位詞集合,則簡單句Sip2屬于Con:

?Spp∈Sip∧Spp={Wp+Slcp,Slcp=Sip2+

Wlc|Wp∈Cpc∧Wlc∈Clc} ?Sip2∈Con

例句1“在裝卸作業預確報界面,當選中船舶單選框時,根據船舶名稱和航次查詢船舶預確報”。

對例句1使用Stanford-parser工具[8]進行句法分析,結果呈樹形結構,如圖2所示。其中根節點IP表示整個句子;孩子節點表示句子的成分,如PP為介詞短語,PU為符號,VP為動詞短語等;葉子節點呈現句子中每個詞的詞性,如P為介詞,NN為名詞,VV為動詞等。

圖2 例句1句法結構分析圖Fig. 2 Syntactic analysis of sentence 1

根據語義分析規則,例句1轉換成對應的短語結構如表1所示。

表1 例句1語義結構Tab. 1 Semantic structure of sentence 1

1.1.2 文檔到代碼啟發式規則

當文檔或描述語句中存在表“憑借”的介詞短語時,該介詞短語中名詞個數與方法中參數個數相等;當文檔或描述語句中存在表“條件”的介詞短語時,源代碼方法中存在分支結構或循環結構。規則如下:

規則5 介詞短語與代碼結構的映射規則。

A)表“憑借”的介詞短語:

?Snp∈Dep∧(Snp=Wn∨Snp=Wn+Snp) ?

num(Wn|Wn∈Snp)=num(mp)

其中:mp表示方法參數;num(x)表示x的個數。

B)表“條件”的介詞短語:

?Sip∈Con? ?Sbra∨?Scir∈method

其中:Sbra表示分支結構;Scir表示循環結構;method表示方法。

根據源代碼特點,常見動名詞和源代碼之間存在相應的啟發式規則:

規則6 常見動名詞啟發式規則如表2所示。

表2 常見動名詞啟發式規則Tab. 2 Heuristic rules of common verbs and nouns

1.2 版本控制信息處理

在軟件開發和維護的過程中,通常會使用版本控制軟件來輔助開發人員進行代碼的管理;軟件版本迭代時,將會存在大量的版本更新信息。版本更新信息通常包含版本號(Revision)、作者(Author)、日期(Date)、描述語句(Message)、改動文件的索引(Index),本文方法主要提取版本控制信息中的版本號、描述語句和改動文件的索引。

版本描述語句通常會包含本次代碼修改的主要內容,并且基本都是由介詞短語、名詞短語和動詞短語構成的簡單句。根據版本控制信息的特點,結合定義1和定義2,可以得出如下假設:

假設1 在版本描述語句中:

如果存在Pla,則該Pla與類名存在關聯關系,即

?Snp∈Pla? conj(Snp,CN)

其中CN表示類名。

如果存在Act,則該Act與方法名存在關聯關系,即

?Svp∈Act? conj(Svp,MN)

其中MN表示方法名。

還存在一些對檢索幫助不大的工作性動詞。

例如,在例句1中,表示Pla的名詞短語“裝卸作業預確報”對應本次版本提交中的類,而表示Act的動詞“查詢船舶預確報”對應本次版本提交中的類中修改的方法。

通過算法1得到版本控制信息與源代碼之間的映射文件。

算法1 版本控制信息中描述語句與源代碼關聯算法。

輸入 版本控制信息;

輸出 版本控制信息映射文檔。

1)提取版本控制信息,對版本更新描述語句進行分詞、去停用詞等,提取本次更新相關的代碼的類和方法。

2)根據定義1,并用Stanford-Parser工具對其進行句法分析。

3)根據定義2對版本描述語句進行語義分析,得出相應的多元式表達形式(Act,Pla,Dep,Con)。

4)對處理后的版本描述語句運用假設1得出和相關類存在關聯關系的名詞或名詞短語,以及和類中相關方法存在關聯關系的動詞或動詞短語,并寫入版本控制信息映射文檔中。

5)重復步驟1)~4),如果在寫入過程中發現同一類或方法的關鍵詞中已存在相同詞語,則將該詞語頻次加1,直到所有版本控制信息處理完畢。

6)輸出版本控制信息映射文檔。

算法1的思想是提取版本控制軟件中的版本更新關鍵信息,將版本描述語句中的關鍵詞與本次提交代碼的類和方法關聯起來,形成版本控制信息映射文件。

例如,使用svnkit工具[9]從版本控制軟件中提取版本更新關鍵信息,并獲取本次更新修改的類中的方法,以XML文件的形式保存如圖3所示,包括了版本號和版本更新信息等。

圖3 版本更新關鍵信息Fig. 3 Key information of version updating

對版本更新關鍵信息進行處理。首先,對logmes中版本更新描述語句進行預處理(分詞、去停用詞等),并運用定義2和相關語義分析規則得出版本描述語句的多元組表達形式Sv=(Act,Pla,Dep,Con),其中,Act=“保存”、Pla=“提運單辦理”、Dep=Null、Con=“件數和重量均為0”;然后,提取本次更新關鍵信息中源代碼的相關信息:

類名:CTOS.BusinessSystem.CargoBill_ADD。

方法名:buttonAddTYD_Click。

最后,根據假設1得出版本控制信息中描述語句與源代碼之間的映射關系如表3所示。

表3 版本更新信息中映射關系Tab. 3 Mapping of version updating information

1.3 文本信息檢索及啟發式規則運用

文本信息檢索主要包括對預處理后的數據構建詞頻-逆文本頻率(Term Frequency-Inverse Document Frequency, TF-IDF)倒排索引表、文本相似度計算兩個過程。

構建目標文檔索引表的結果是生成一個m×n的標引詞-文檔矩陣A,m是所有軟件文檔中出現的標引詞個數,n是文檔的數量,其中第j行文檔向量dj=(w1, j,w2, j,…,wn, j),wi, j表示第i個標引詞在第j個文檔中的權重,權重計算采用TF-IDF模式與啟發式規則結合的方式。

采用向量空間模型對文檔和源代碼進行相似度計算,將每一條文檔語句當作查詢向量,設查詢向量q=(w1,w2,…,wn),將所有源代碼文檔當作目標查詢文檔,對查詢向量和源代碼文檔向量dj計算余弦相似度,如式(1)所示,其中wi為q中標引詞的權重,wi, j為dj中標引詞的權重。

(1)

對查詢文檔向量和源代碼文檔向量分別進行相似度計算,得到相似度列表。對每一條查詢語句及存在相似度關系的源代碼采用啟發式規則,對相似度得分進行修正。

1.4 跟蹤關系推薦

根據以上分析,本文提出如下關聯關系提取算法。

算法2 基于版本控制信息的文檔到源代碼關聯關系提取算法。

輸入 項目文檔、源代碼、版本控制信息映射文檔;

輸出 文檔與源代碼文件的相似度列表。

1)對文檔進行文本提取,以句子為最小粒度進行切分,并進行預處理(分詞、去停用詞)后,存入XML文件中。

2)提取項目源代碼,以方法為最小粒度,以索引+方法文件的形式保存。

3)提取源代碼中類名、方法名以及注釋內容,對類名和方法名進行詞型規范化,并映射成文字,對注釋內容進行預處理。結合處理后的類名、方法名和注釋內容形成表示方法的關鍵信息。

4)使用向量空間模型結合代碼檢索規則對文檔條目和源代碼關鍵信息進行相似度計算,得出文檔和源代碼間的相似度Score1。

5)計算文檔與版本控制信息映射文檔之間的相似度Score2。

6)分別賦予步驟4)和步驟5)計算出的相似度不同的權重值(a,b),不同權重下兩者之和即為文檔與源代碼文件間的相似度Score=aScore1+bScore2。

7)以文件的形式輸出相似度列表。

算法2的思想是利用向量空間模型計算出中文文檔和源代碼間的相似度得分,然后根據啟發式規則進行修正,再結合源文檔和版本控制信息映射文件之間的相似關系,得出文檔與源代碼文件的相似度列表。由于版本控制信息中的描述語句與本次提交的源代碼之間具有較高的相關性,故文檔與版本控制信息映射文檔間的相似度具有較大的可信度,從而a的取值應小于b,故選取a的取值范圍為[0,0.5],b的取值范圍為[0.5,1]。由于不同文檔的書寫風格以及涉及到的軟件實現方式不同,a和b的取值均不是固定值,需要通過訓練集訓練得到,步驟如下:

1)從測試數據集中隨機選取若干數據作為訓練集,一般為數據集的前5%或不少于5條數據;

2)對訓練集開始訓練,取初始值a=0,b=1,步長λ=0.05開始計算所有a、b取值下的精確度和召回率;

3)選取訓練結果中精確度和召回率最高的a、b取值作為實驗權重值。

例如,從中文文檔中提取語句“在裝卸作業預確報界面,當選中船舶單選框時,根據船舶名稱和航次查詢船舶預確報”,對其進行預處理,得出多元組表達形式如表1所示。提取項目相關源代碼關鍵信息,以索引(GY.SDD.4)+文本(4.txt)的形式保存,提取關鍵信息:

類名:CTOS.BusinessSystem.YQ_Main。

類注釋:裝卸作業預確報界面及相關功能。

方法名:queShipYQB。

方法注釋:船舶預確報查詢。

提取由算法1得出的版本控制映射文檔中相關信息:

類名:CTOS.BusinessSystem.YQ_Main。

關鍵詞:裝卸作業預確報#2、預確報#5。

方法名:queShipYQB。

關鍵詞:查詢船舶預確報#1。

計算出文檔與源代碼之間的相似度得分Score1=0.759 9,文檔與版本控制信息映射文檔之間的相似度得分Score2=1,通過訓練集訓練得出權重最優值a=0.35,b=0.65,綜合得分Score=0.916 0。

2 實驗

2.1 實驗數據集

由于目前公開的相關實驗數據集大多針對英文文檔,并且無法獲取其完整的版本更新記錄,故實驗采用作者參與開發的、現已正式運行的重慶果園港生產業務管理系統作為實驗對象,選取軟件設計文檔作為源素材,軟件源代碼作為目標素材,并提取了軟件開發及維護過程中版本控制軟件中的版本更新記錄,作為跟蹤方法的測試集。

經過粒度劃分等處理,共得到具有實際含義的設計文檔語句857條,提取了項目類文件365個,這些類中包含的方法2 872個,從版本控制軟件中提取了系統開發和維護過程中版本更新信息2 806條。由于軟件文檔和代碼數量較多,本實驗從系統眾多功能模塊中選取了商務模塊的源素材,通過人工整理出了38條具有關聯關系的跟蹤鏈作為實驗結果集。

2.2 實驗過程

1)源素材處理。

對素材中提取出的中文語句進行預處理,包括分詞、去停用詞等。本實驗采用ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)詞法分析系統[10],提取系統中的數據庫表名和字段名等作為用戶詞典,對中文素材進行分詞。采用哈爾濱工業大學發布的中文停用詞表,去掉一些對文本內容識別作用不大的詞。

2)源素材和目標素材文本相似度計算。

對中文語句采用Stanford-Parser進行句法分析,根據定義2及相關規則對句法分析后的語句進行語義分析,并采用TF-IDF模型和代碼檢索規則對源素材(設計文檔語句)和目標素材(源代碼關鍵信息)進行權重分配,利用向量空間模型計算其相似度得分,根據規則5和規則6判斷源素材和目標素材中源代碼結構之間的關系,從而修正源素材和目標素材之間的相似度得分Score1。

3)版本控制信息處理及源素材和版本控制信息映射文檔間相似度計算。

根據假設1得出版本控制信息映射文檔,計算源素材中Pla和Act與版本控制信息映射文檔中類與方法相關的關鍵詞之間的得分,綜合得出源素材和版本控制信息映射文檔之間的得分Score2。

4)基于版本控制信息的中文文檔和源代碼間的相似度計算。

根據算法2中權重值a、b的確定規則,從實驗數據中選取8條中文文檔語句和所有源代碼素材,并給出正確的跟蹤鏈關系,作為訓練集;然后,取初始值a=0,b=1,步長λ=0.05,采用a遞增、b遞減的方式進行訓練;最后,得出最優取值a=0.35,b=0.65。最終得分Score=aScore1+bScore2,根據分數排序得出相似度列表。

2.3 結果分析

本實驗與傳統信息檢索方法中的向量空間模型(Vector Space Model, VSM)方法[11]及文獻[4]方法進行對比,采用相似度閾值法過濾實驗結果,采用信息檢索中最通用的查準率[11]、查全率[11]以及F2measure[12]來度量不同方法所得出的跟蹤關系的質量。相似度閾值法即為設定一個相似度分數閾值,當實驗結果分數大于該閾值時才選取該結果,小于該閾值時則舍棄,而查準率和查全率均在選取的結果中計算,因此實驗結果中的查全率會隨著閾值的增大而降低,查準率會隨著閾值的增大而升高。在本實驗中,當閾值大于0.2時,三種方法查準率雖然會有所提高,但是查全率顯著降低,F2measure的值也會顯著降低,對比意義不大,因此本文選取0.2作為最大閾值,實驗結果的平均值如表4所示。

表4 實驗結果平均值Tab. 4 Average value of experimental result

由于實驗方法不同,三種實驗在相同閾值下的橫向對比意義不大。根據實驗結果平均值可以看出,三種方法的綜合評判指標F2measure值均在閾值為0.2達到最大,為了更好地說明實驗效果,選取閾值為0.2時的實驗數據,使用R工具[13]自動生成箱線圖,從圖4所示的箱線圖可以清晰地顯示數據的離散度、中間值等,圖中離散的圓點表示數據的異常值,上下兩條橫線分別為數據的上下邊緣,表示數據的整體范圍;中間矩形的上下兩邊為上下四分位數,表示數據集中在這一范圍中;矩形中的橫線表示數據的中位數,表明數據總體的中間值。從圖4可以看出,在查準率方面,三種方法的整體范圍和下四分位數均相同,本文方法的上四分位數高于其他兩種方法,中位數與文獻[4]方法相同,略高于VSM方法;在查全率方面,三種方法中位數相同,文獻[4]方法浮動范圍稍大;在F2measure方面,三種方法下四分位數相同,本文方法中位數高于其他兩種方法,并且本文方法的數據集中區域略高于其他兩種方法。結合實驗數據和箱線圖可以看出在查全率方面本文方法與其他兩種方法相差不大,在查準率和綜合評價指標方面,本文方法在中間值和整體范圍方面均優于其他兩種方法。

圖4 實驗結果箱線圖Fig. 4 Box-plot of experimental result

3 結語

本文提出了一種基于版本控制信息的中文文檔到源代碼的自動跟蹤方法。該方法首先提取以句子為最小粒度的中文文檔及以方法為最小粒度的源代碼關鍵信息,結合自定義的文檔到代碼的啟發式規則,利用向量空間模型計算出中文文檔與源代碼之間的相似度得分;然后結合中文文檔與版本更新信息之間的相似度關系,調整中文文檔與源代碼之間的相似度得分,確定中文文檔與源代碼之間的跟蹤關系。對于相同的測試對象,本文方法相對于傳統的基于信息檢索的方法,提高了精確度和召回率;但是當中文文檔中存在大量的結構化圖形描述時,本文方法效果不太理想,這是今后需要研究的內容。

猜你喜歡
規則信息方法
撐竿跳規則的制定
數獨的規則和演變
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
TPP反腐敗規則對我國的啟示
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 秋霞国产在线| 欧美天天干| 九九热在线视频| 99ri国产在线| 伊人色在线视频| 天堂久久久久久中文字幕| 精品视频在线观看你懂的一区| 国产精品性| 国产欧美视频在线观看| 欧美在线综合视频| 免费欧美一级| 性做久久久久久久免费看| 亚洲一级毛片在线观| 欧美午夜网站| 操国产美女| 天天操精品| 精品伊人久久大香线蕉网站| 国产精品自在在线午夜区app| 欧美日韩资源| 国产精品久线在线观看| 亚洲色图狠狠干| 亚洲综合精品第一页| 2020亚洲精品无码| 成人日韩精品| 久操中文在线| 99ri国产在线| 亚洲女同一区二区| 久久这里只有精品国产99| 人妻丝袜无码视频| 青青草一区| 67194亚洲无码| 狠狠色丁香婷婷综合| 国产91透明丝袜美腿在线| 亚洲欧美激情另类| 欧美成人第一页| 国产菊爆视频在线观看| 激情六月丁香婷婷| 亚洲男人天堂2020| 国产精品久久自在自2021| 亚洲天堂久久新| 亚洲综合色区在线播放2019| A级毛片无码久久精品免费| 嫩草国产在线| 欧美a在线视频| 狠狠色综合网| 国产在线观看第二页| 亚洲日韩第九十九页| 91丝袜乱伦| 国产乱人激情H在线观看| 小说区 亚洲 自拍 另类| 制服丝袜一区| 国产精品香蕉在线| 91在线精品免费免费播放| 国产成人无码播放| 毛片在线区| 亚洲成人动漫在线观看| 一级香蕉视频在线观看| 久久伊人操| 无码'专区第一页| 先锋资源久久| 囯产av无码片毛片一级| 国产乱子伦手机在线| 色综合国产| 国产成人精彩在线视频50| 国产麻豆精品在线观看| 波多野结衣在线se| jizz亚洲高清在线观看| 日本午夜视频在线观看| jizz亚洲高清在线观看| 久久天天躁狠狠躁夜夜躁| 欧美在线网| www亚洲天堂| 伊人成人在线| 欧美a在线看| 精品久久久久无码| 性欧美精品xxxx| 黄色网址免费在线| 99精品国产自在现线观看| 国产精品亚洲va在线观看| 广东一级毛片| 亚洲大尺码专区影院| 尤物特级无码毛片免费|