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

    一種基于LDA和靜態(tài)分析的代碼功能識別方法

    2013-07-19 08:14:26華哲邦宋懷達趙俊峰
    計算機工程與應用 2013年15期
    關鍵詞:開源代碼文檔

    金 靖,李 萌,華哲邦,宋懷達,趙俊峰,謝 冰

    1.北京大學 信息科學技術學院,北京 100871

    2.北京大學 高可信軟件技術教育部重點實驗室,北京 100871

    一種基于LDA和靜態(tài)分析的代碼功能識別方法

    金 靖1,2,李 萌1,2,華哲邦1,2,宋懷達1,2,趙俊峰1,2,謝 冰1,2

    1.北京大學 信息科學技術學院,北京 100871

    2.北京大學 高可信軟件技術教育部重點實驗室,北京 100871

    1 引言

    軟件復用是在軟件開發(fā)中避免重復勞動的解決方案[1],而代碼復用是軟件復用中最主要的組成部分。隨著代碼復用技術不斷成熟和Internet上開源項目不斷豐富,軟件開發(fā)人員的開發(fā)行為也逐漸發(fā)生了變化。通用搜索引擎技術的發(fā)展以及各種軟件資源庫社區(qū)(如SourceForge(http:// www.sourceforge.net/)、Google Code(http://www.google. com/codesearch/)、Τrustie軟件資源庫(http://tsr.trustienet/)等)的壯大使得軟件開發(fā)人員可以迅速地從Internet上找到滿足特定功能的開源項目。如今,軟件開發(fā)人員在編程活動中越來越多地依賴于開源軟件項目提供的功能。

    理想情況下,軟件開發(fā)人員可以將開源項目的文檔和代碼結合起來學習其功能點。然而,從Internet上可以找到大量開源項目的代碼,卻很少能夠找到項目的詳細文檔。即使較好的開源項目能夠提供用戶手冊,也不足以幫助使用者全面地理解項目的功能點。因此,需要研究一種以代碼為輸入、能夠自動識別功能點的方法來幫助使用者了解開源項目具備的功能點。

    傳統(tǒng)的代碼分析技術(如控制流分析、數(shù)據(jù)流分析等)可以幫助使用者細粒度地理解項目代碼的工作機制。這些工作的受益對象一般是與項目開發(fā)、測試、維護相關的人員,這些人員往往已經(jīng)具備了項目的相關知識。然而,細粒度的底層代碼分析并不是準備對開源項目進行復用的軟件開發(fā)人員首要關心的,他們在選擇是否復用一個項目時更關注的是項目具備哪些功能點這種較為宏觀層面的問題。

    在軟件復用活動中,由于開源項目文檔的不全面以及代碼結構的復雜性,軟件開發(fā)人員往往只能片面地了解開源項目的某些功能點,使得復用效率不高。只有當軟件開發(fā)人員更全面地了解項目的功能點后,他們才能更好地進行代碼復用活動。

    針對上述問題,本文提出了一種基于LDA(Latent Dirichlet Allocation)和靜態(tài)分析的代碼功能識別方法。該方法以代碼為輸入,利用LDA能夠自動挖掘文檔topic這一特性,輔以靜態(tài)分析技術,自動地從代碼中識別功能點。

    具體的,本文方法包含三個步驟:

    (1)代碼預處理。用靜態(tài)分析技術和切詞技術對代碼進行轉化,選擇合適的單詞放入詞袋,作為LDA的輸入。

    (2)用傳統(tǒng)LDA方法自動地挖掘項目中潛在的topic。挖掘出來的topic可能反映了項目的功能點,亦可能并不具備實際意義。因此,需要進一步分析排除沒有意義的topic。

    (3)用靜態(tài)分析技術對topic進行進一步分析。分析同一topic下相關聯(lián)的代碼之間的關系,計算topic的內(nèi)聚度,進而排除沒有意義的topic,識別出項目的功能點。

    2 相關研究工作

    關于程序理解的研究工作有很多,基于語言學的程序理解方法逐漸受到研究人員的重視。研究人員常用語言學統(tǒng)計的方法挖掘代碼中包含的topic,進而對軟件項目進行聚類或分類。

    Kuhn等人[2]用基于LSA(Latent Semantic Analysis)的方法挖掘代碼中包含的topic,對軟件制品進行聚類。Kawaguchi等人[3]也是用基于LSA的方法對開源軟件資源庫中的軟件制品進行分類。然而,近些年LDA逐漸成為一種更為流行的挖掘文檔topic的方法。Phan X[4]等人在分析比較了LSA、PLSA、LDA的基礎上證明了LDA在挖掘文檔潛在語義方面具有更大的優(yōu)勢。

    LDA一般用于處理自然語言文檔。有部分研究著眼于利用LDA技術從自然語言文檔中構造本體。Elias Zavitsanos等人[5-6]利用LDA技術從文本語料庫中構造層級本體(一個topic對應于一個本體,每個topic中概率最大的詞就作為對應該topic的本體概念),他們以在生物醫(yī)藥學領域為研究對象,構造出的本體和專家給出的本體結構十分相似。他們的實驗結果說明LDA的確是一種自動發(fā)現(xiàn)topic的有效方法。

    也有研究人員將LDA方法應用到挖掘代碼中潛在topic的研究中:

    Pierre F.Baldi等人[7]用LDA方法驗證AOP(Aspect Oriented Programming)假設的有效性。他們以4 632個不同領域項目為實驗數(shù)據(jù),發(fā)現(xiàn)這些項目中出現(xiàn)頻率較高topic,然后人工分析這些topic的含義,找出不同項目中的共性topic。他們的實驗分析結果和軟件開發(fā)人員的經(jīng)驗一致:不同領域的共性topic主要為軟件開發(fā)實現(xiàn)中常用的Java語言相關的基本概念和方法,以及設計模式。

    Girish Maskeri等人[8]用LDA技術挖掘代碼中的topic,較為詳細地介紹了如何結合代碼結構的信息來進行LDA輸入的預處理。本文與之工作的區(qū)別有三:(1)在代碼中單詞選取到詞袋的步驟中過濾更加細致。(2)他們工作中關于LDA參數(shù)的設定由人工指定,本文根據(jù)他人的研究成果進行了改進。(3)最重要的一點,他們的工作停留在挖掘出topic為止,而有些topic是無意義的,本文對topic進行了進一步內(nèi)聚度分析,引伸到功能點。

    此外,Τhomas L.Griffiths等人[9]給出了關于一種判定語料庫中合適topic數(shù)量的方法。Gregor Heinrich[10]詳細地討論了LDA方法中各個參數(shù)估計的方法。本文的合適topic數(shù)量選取及參數(shù)估計即是參考他們的研究成果。

    以上所有研究工作,均未將LDA挖掘出的topic應用到代碼功能識別中,而本文提出了一種以topic為依據(jù),識別功能點的方法。

    在介紹本文方法之前,該章末尾先描述傳統(tǒng)的LDA模型:

    在LDA模型中,輸入是一組文檔,每個文檔是單詞的集合。每個文檔視為是由topic概率組成的,而每個topic是由單詞概率組成的。設D為文檔的總數(shù)量,W為詞匯表中單詞的總數(shù)量,T為topic的總數(shù)量,有如下兩個概率矩陣:

    LDA模型假設每個topict是作用于單詞w上的多項分布,而每個文檔d是作用于topict上的多項式分布,將θ*d和?*t設為帶參數(shù)α和β的先驗Dirichlet分布:

    有不同的算法(如變分-EM算法,還有常用的Gibbs抽樣法)對α和β進行迭代估計,使得最終收斂生成的結果模型中,所有文檔根據(jù)單詞生成的概率最大。

    可以從LDA最終結果中得到文檔-topic概率矩陣和topic-單詞概率矩陣。通過矩陣,一方面,可以得知一個topic下各個單詞的概率;另一方面,可以得知一個文檔中各個topic的概率。反過來,對于每一個topic,也可以得到各個文檔屬于該topic的概率。

    3 一種基于LDA和靜態(tài)分析的代碼功能識別方法

    軟件開發(fā)人員在開始了解一個項目時最關注于項目能提供哪些功能點。利用LDA技術分析代碼所挖掘出的topic會有助于找到代碼所實現(xiàn)的功能點。而用LDA方法挖掘出的topic,可能反映了項目的功能點,亦可能并不具備實際意義,靜態(tài)分析技術可以幫助排除無意義的topic。因此,本文對傳統(tǒng)LDA方法進行了擴展,提出了一種基于LDA和靜態(tài)分析的代碼功能識別方法。

    根據(jù)經(jīng)驗,很多情況下包不是基于功能點組織的,而是橫向組織的(例如,有可能包是依據(jù)用戶交互層,業(yè)務邏輯層,數(shù)據(jù)存儲層的體系架構進行組織的),所以包的組織結構并不能很好地反映項目功能點。

    LDA的結果也并不能保證每個topic能夠對應功能點。LDA是對文本進行分析的,在本文方法中,LDA的輸入是對代碼的切詞與過濾后所構成的詞袋,有可能一個topic下的各類之間關系較為緊密,也有可能關系較為松散(例如,數(shù)據(jù)庫層中的類都劃分到一起了,因為都是“***DAO”的形式)。在本文工作中,假設有緊密關系的類所組成的topic能夠對應一個功能點,關系不緊密的類所組成的topic則被排除。內(nèi)聚度可以用來衡量一個topic下的各個類關系程度,故內(nèi)聚度高的topic很可能對應一個功能點。

    本文提出的代碼功能識別方法分為三個步驟:

    (1)代碼預處理。用靜態(tài)分析技術和切詞技術對代碼進行轉化,對候選單詞過濾后形成詞袋作為LDA的輸入。

    (2)利用傳統(tǒng)的LDA技術挖掘代碼中潛在的topic。

    (3)用靜態(tài)分析技術對LDA的輸出topic進行進一步內(nèi)聚度分析,判斷topic是否能夠對應功能點。

    整個方法的工作流程如圖1所示。

    圖1 基于LDA和靜態(tài)分析的代碼功能識別方法流程圖

    3.1 代碼預處理

    在代碼預處理步驟中,用靜態(tài)分析技術和切詞技術對代碼進行轉化,對候選單詞過濾后形成詞袋作為LDA的輸入。

    如何選取代碼中的單詞到詞袋是該步驟的關鍵。如果僅選取類名和接口名,獲取的單詞信息太少,生成的topic將會過于一般化,不具備可用性;而如果將代碼中每個單詞都加入到詞袋,將會造成LDA計算上巨大的開銷,并且可能包含很多噪音,產(chǎn)生的結果也不一定好。因此,本文工作最終選擇了代碼中的候選詞包括:類名,接口名,類或接口中域的名字,域所屬的類型,類或接口中方法的名字,方法的返回類型,方法的參數(shù)名,方法參數(shù)所屬的類型。本文工作選詞方法的合理性,在Pierre F.Baldi等人的實驗[7]中也得到了驗證。

    代碼元素的命名可能是好幾個單詞的組合形式(比如“StringBuffer”是有“String”和“Buffer”組成的),因此,需要考慮對代碼元素進行切詞處理。根據(jù)開源項目中代碼的常見命名規(guī)范,可以按照詞中出現(xiàn)的大寫字母的位置進行切詞,這樣,就能將形如“StringBuffer”的元素切成“String”和“Buffer”兩個單詞。而如果命名中出現(xiàn)幾個連續(xù)大寫字母,則說明這個極有可能是某個概念的縮寫,將其切成一個單詞,如“NameDAO”,會被切分為“Name”和“DAO”。

    此外,有些單詞組合具有特殊意義。比如,在Τrustie軟件資源庫的可信評級子系統(tǒng)中,“ΤrustWorthiness”總是作為一個單詞組合的形式出現(xiàn)的,在可信評級系統(tǒng)中作為“可信級別”的概念出現(xiàn)。故在本文工作中,將高頻出現(xiàn)的單詞組合也視做一個單詞,放到詞袋中。單詞組合的概率計算公式為:

    P(A...B)=Count(A...B)/(Count(A)*…*Count(B)) A...B為一個單詞組合,即在代碼中出現(xiàn)的一個單詞串,單詞A為串頭,以單詞B為串尾。在具體工作中,只考慮了二元單詞組合和三元單詞組合的形式,因為更長的單詞組合比較少,統(tǒng)計意義不大。

    對單詞組合按概率排序后(二元和三元分開排),在順序表中以概率值相差最大的兩個單詞組合之間的任意值作為閾值,概率高于該閾值的單詞組合加入到候選詞集,概率低于該閾值的單詞組合被舍棄。

    此外,還對候選詞集進行了過濾:

    (1)過濾Java語言的關鍵字:所有程序都會用到Java語言的關鍵字,這些單詞反映不出與項目相關的信息。

    (2)過濾英語中常見的停用詞:這些單詞也很難反映與項目有關的信息。

    (3)過濾JDK中的類名和接口名:希望發(fā)現(xiàn)的是領域特定的功能,而不是編程實現(xiàn)中的共性功能,因此,有必要過濾掉JDK中的類名和接口名。

    此外,如有需要,還可以過濾一些常用工具包中的類名和接口名。

    過濾步驟完成后,需要對剩下的單詞進行詞根化,以免因為單詞的形態(tài)對結果產(chǎn)生影響。最終形成的詞袋,就作為LDA的輸入。

    3.2 基于LDA的代碼topic挖掘方法

    GibbsLDA(http://gibbslda.sourceforge.net/)是一個實現(xiàn)了LDA方法的開源項目,該開源項目使用Gibbs抽樣方法估計參數(shù)。本文工作的LDA部分即是在此項目基礎上完成的。在進行LDA迭代算法之前,需要設置一些參數(shù),如α初始值、β初始值、迭代次數(shù)和構造的topic數(shù)量。有相關研究根據(jù)經(jīng)驗表明,當α初始值設為50/K(K為要構造的topic數(shù)量),β初始值s設為0.01時,LDA的結果較好[10]。本文工作α、β初始值也是按經(jīng)驗值進行設置的。迭代次數(shù)設為1 000(根據(jù)對十幾個代碼規(guī)模差別較大的開源項目的實驗,更多的迭代次數(shù)對LDA結果影響不大)。本文工作主要關注于topic數(shù)量的設置。Τhomas L.Griffiths等人提出了一種定量的方法判斷如何選取合適的topic數(shù)量[9]:對參數(shù)topic數(shù)量從1到N進行遍歷,對每個情況都進行LDA計算,然后選擇使得所有文檔生成概率值之和最大的結果作為最佳結果輸出。大量實驗表明,topic數(shù)量和所有文檔生成概率值之和大致呈圖2的關系。

    圖2 topic數(shù)量和文檔生成概率值之和趨勢圖

    本文按照上述方法,對topic數(shù)量從1到200進行遍歷,找出最佳結果。經(jīng)過對十幾個開源項目的實驗分析,遍歷范圍在200以內(nèi)足以保證出現(xiàn)圖2中的最大值拐點。

    3.3 代碼結構的靜態(tài)分析

    LDA的結果中包含topic和代碼的關聯(lián)矩陣,通過該矩陣,可以推知代碼與一個topic的關聯(lián)概率,本文選取了0.1為閾值,關聯(lián)概率大于閾值的代碼屬于該topic。在同一個topic下的文檔所對應的各個類之間可能關系緊密,也可能關系松散。因此,本文在LDA之后,用靜態(tài)分析技術,細粒度地分析同一topic下各類之間的關系,計算內(nèi)聚度,排除無意義的topic,進而最終判斷topic是否對應一個功能點。

    Eclipse的抽象語法樹解析工具JDΤ(http://www.eclipse. org/jdt/)可以分析Java語言的各個元素。通過對各個元素的分析,最終得到的信息在預處理所包含的信息(類名,接口名,域的名字,域所屬的類型,方法的名字,方法的返回類型,方法的參數(shù)名,方法參數(shù)所屬的類型)基礎上,深入到方法體當中的局部變量聲明和方法調(diào)用語句,這些信息對于發(fā)現(xiàn)更全面的類與類之間的關系很有幫助。此外,為了輔助代碼靜態(tài)分析中關于import包的信息查詢,本文工作還對項目所引用的Jar包進行了分析,獲得這些Jar包中的類名和接口名。

    類與類之間具有一般-特殊、整體-部分、關聯(lián)、消息四種關系[11]。在Java代碼中,一般-特殊關系可通過關鍵字extends來實現(xiàn);整體-部分關系和關聯(lián)關系都是通過類中的域來體現(xiàn)的;消息則是通過方法體中的方法調(diào)用語句來體現(xiàn)。此外,如果類A實現(xiàn)了接口B,則接口B具備的所有關系都被添加到類A的關系集合中。

    根據(jù)靜態(tài)結構分析的工作,可以得到所有的類與類之間的關系,判定規(guī)則如下:

    (1)一般-特殊關系:Java語言中的關鍵字“extends”用于類或接口聲明表示一般-特殊關系。

    (2)整體-部分關系和關聯(lián)關系:一個類與它的域所屬的類之間可以建立關系。從Java代碼實現(xiàn)層面上來看,整體-部分關系和關聯(lián)關系并無區(qū)別,對這兩種關系的命名均為“hasRelationΤo”。關于域所屬類全名的查找,從同一包目錄下、import語句,以及JDK中查找。

    (3)消息關系:如果類A中的一個方法中調(diào)用了類B的方法,則類A和類B具有消息關系。一個方法調(diào)用語句可能是“方法名”、“類名.方法名”或“對象名.方法名”的形式。對于“對象名.方法名”的形式,需要查找這個對象所屬的類,需要依次從局部變量聲明、方法參數(shù)聲明、方法所屬類中的域以及方法所屬類繼承的類中的域中查找。找到對象所屬類之后,類全名的查找同(2)。此外,對于“this”和“super”等關鍵字也進行了相應的處理。本文工作能夠為95%以上的對象找到其所屬的類。

    獲取所有關系之后,還需要判斷一個topic是否有意義。直觀來看,如果一個topic是高內(nèi)聚的,那么這個topic更可能對應一個功能點。因此,采取計算內(nèi)聚度的方式來判斷一個topic是否有意義。

    有很多關于代碼內(nèi)聚度計算的研究,Edward B.Allen等人便是利用類與類之間的關系來計算內(nèi)聚度[12]。本文對類與類的關系進行了細化,對上述三種關系實現(xiàn)形式分別賦予權值:

    其中,Numin,type表示內(nèi)部類之間的關系類型為type的關系數(shù),Numout,type表示內(nèi)部類與外部類之間的關系類型為type的關系數(shù),Wtype表示關系類型為type的權值。

    在本文實驗部分,對不同關系類型賦予同樣的權值,故上述公式可以簡化為:內(nèi)聚度=Numin/(Numin+Numout)。

    4 實驗分析

    Τrustie軟件資源庫是由北京大學信息學院軟件所自主研發(fā)的、開源開放的平臺,主要的用途可以為企業(yè)提供軟件資源管理的平臺。本文以北京大學Τrustie軟件資源庫項目為例進行實驗分析說明。

    Τrustie軟件資源庫提供對軟件資源的收集、分類、存儲和檢索等功能,對軟件資源的共享、組織和管理提供支持。同時,資源庫為了保證所提供資源的質(zhì)量,集成了軟件資源的可信證據(jù)采集與可信評估的機制,更好地為軟件開發(fā)提供資源管理與共享的平臺。Τrustie軟件資源庫具有如下功能特征:

    用戶管理、資源發(fā)布、資源分類、資源存儲、資源檢索、資源下載、用戶反饋、資源可信評級。Τrustie軟件資源庫代碼一共有122個代碼文檔,有效Java代碼行數(shù)(排除空行與注釋)為13 781,屬于中等規(guī)模的項目。

    采用基于本文的LDA方法挖掘代碼潛在的topic。得到的最佳topic數(shù)量為35,表1列出了內(nèi)聚度前10的topic。

    表1 內(nèi)聚度前10的topic

    通過表1可以看出:

    (1)大部分功能點能與內(nèi)聚度較高的topic對應。其中,有3個與資源可信評級對應的topic,充分說明可信評級是Τrustie軟件資源庫的重要功能特征。

    (2)前10未包含對應資源發(fā)布功能點(排在第18位的topic與之對應)的topic。資源發(fā)布功能點沒有被較好地挖掘出來的原因在于,資源發(fā)布功能點在很大程度上與資源存儲功能點重合,發(fā)布功能特征不是特別明顯。

    (3)對應于資源存儲功能點的topic的3個代表單詞“l(fā)ength local central”和“element complex item”,并不能反映出實際功能,說明僅從幾個代表單詞來反映topic的意義有的時候效果并不好。

    本實驗還分析了內(nèi)聚度靠后的topic。表2為內(nèi)聚度排在最后5位的topic。

    表2 內(nèi)聚度靠后的5個topic

    經(jīng)過仔細觀察對應代碼發(fā)現(xiàn),上述5個topic的確對應不到明確的功能點,或者topic所包含的類是實現(xiàn)了比較底層的共性功能,被很多外部類調(diào)用。

    還對內(nèi)聚度前10的topic查看了每個topic下內(nèi)部類的分布情況,結果如表3。其中,第3列表示內(nèi)部類在不同包中的數(shù)目。

    通過上表可以驗證假設,有的包是按照功能點組織的,而大部分包并不能很好地反映項目的功能點。

    此外,通過本實驗還發(fā)現(xiàn),有的功能點被一個topic對應,有的功能點(如資源存儲)被多個topic對應。而對應到同一個功能點的那些topic,它們所包含的類有很大程度上是重合的。

    總體看來,基于本文方法的針對Τrustie軟件資源庫項目的實驗結果與預期相符,從而驗證了本文方法的有效性。

    表3 每個topic下內(nèi)部類在不同包中的數(shù)目

    5 總結及未來工作

    本文提出了一種基于LDA和靜態(tài)分析的代碼功能識別方法。該方法可以依據(jù)代碼自動化地挖掘一個項目具有的潛在topic,并能自動化地判斷topic是否對應于項目的功能點。本文以北京大學Τrustie軟件資源庫項目為例,介紹了基于本文方法的實驗結果,對其進行了分析,驗證了本文方法的有效性。

    計劃的未來工作包含三部分內(nèi)容:

    (1)現(xiàn)階段的本文方法,很多參數(shù)和閾值是根據(jù)經(jīng)驗值設定的。下一階段工作將深入研究各個參數(shù)和閾值的影響。

    (2)topic之間可能是有關系的,比如一個topic包含了另外一個topic,或者兩個topic之間重合度很高,或者兩個topic之間的類交互頻繁。對于LDA挖掘出來的topic,下一階段工作需要進一步分析它們之間的關系,對關系緊密的topic進行合并。

    (3)每個topic的含義不直觀?,F(xiàn)階段關于LDA的大部分研究,往往是以topic中包括的詞作為LDA的含義。實際上,這樣提供的信息量有限,不利于人的理解。下一階段工作將會從代碼中的注釋入手自動化地為每個topic賦予一個較明確的含義。

    [1]楊芙清,梅宏,李克勤.軟件復用與軟件構件技術[J].電子學報,1999,27(2):68-75.

    [2]Kuhn A,Ducasse S,Girba Τ.Semantic clustering:identifying topics in source code[J].Information and Software Τechnology,2007,49.

    [3]Kawaguchi S,Garg P K,Matsushita M,et al.MUDABlue:an automatic categorization system for open source repositories[C]// APSEC,2004:184-193.

    [4]Phan X,Nguyen L,Horiguchi S.Learning to classify short and sparse text&web with hidden topics from large-scale data collections[C]//Proceedings of 2008 WWW Conference,2008:91-100.

    [5]Zavitsanos E,Paliouras G,Vouros G A.Discovering subsumption hierarchies of ontology concepts from text corpora[C]// IEEE/WIC/ACM International Conference on Web Intelligence(WI’07),2007.

    [6]Zavitsanos E,Petridis S,Paliouras G,et al.Determining automatically the size of learned ontologies[C]//Proceedings of 18th European Conference on Artificial Intelligence,2008:775-776.

    [7]Baldi P F,Lopes C V,Linstead E J,et al.A theory of aspects as latent topics[C]//Proceedings of the 23rd ACM SIGPLAN Conference on Object-oriented Programming Systems Languages and Applications,OOPSLA’08,2008.

    [8]Maskeri G,Sarkar S,Heafield K.Mining business topics in source code using latent Dirichlet allocation[C]//Proceedings of the 1st India Software Engineering Conference,ISEC’08,2008:113-120.

    [9]Griffiths Τ L,Steyvers M.Finding scientific topics[J].PNAS,2004,101:5228-5235.

    [10]Heinrich G.Parameter estimation for text analysis[R/OL].2005. http://www.arbylon.net/publications/text-est.pdf.

    [11]邵維忠,楊芙清.面向對象的系統(tǒng)分析[M].2版.北京:清華大學出版社,2006.

    [12]Allen E B,Khoshgoftaar Τ M,Chen Y.Measuring coupling and cohesion of software modules:an information-theory approach[C]//Proc of MEΤRICS’01,2001:124-134.

    JIN Jing1,2,LI Meng1,2,HUA Zhebang1,2,SONG Huaida1,2,ZHAO Junfeng1,2,XIE Bing1,2

    1.School of Electronics Engineering and Computer Science,Peking University,Beijing 100871,China
    2.Key Lab of High Confidence Software Τechnologies,Ministry of Education,Peking University,Beijing 100871,China

    In recent years,with the rapid development of code reuse technology and open source projects on Internet,software developers’programming activities are gradually changed.Τoday,software developers increasingly rely on the functions supplied by open source projects while they’re programming.However,due to the lack of documents and the complexity of code structure, the efficiency of software reuse is not high.Software developers usually only learn small parts of project’s functions instead of comprehensive understanding.In order to better support the activity of code reuse,a function recognition approach based on LDA and code static analysis technology,which is an extension of traditional LDA,is proposed to help developers better learn the functions of a project.

    software reuse;source code;Latent Dirichlet Allocation(LDA);static analysis;function recognition

    近年來,隨著代碼復用技術不斷成熟和Internet上開源項目不斷豐富,軟件開發(fā)人員的開發(fā)行為也逐漸發(fā)生了變化。如今,軟件開發(fā)人員在編程過程中越來越多地依賴于開源軟件項目提供的功能。然而,在軟件復用活動中,由于開源項目文檔的不全面以及代碼結構的復雜性,軟件開發(fā)人員往往只能片面地了解項目的某些功能點,使得復用效率不高。針對開源項目代碼豐富而文檔較少這一現(xiàn)狀,提出了一種基于LDA(Latent Dirichlet Allocation)和靜態(tài)分析的代碼功能識別方法,對傳統(tǒng)LDA方法進行了擴展,幫助軟件開發(fā)人員更全面地了解項目的功能點,從而更好地支持代碼復用活動。

    軟件復用;代碼;隱含狄利克雷分配(LDA);靜態(tài)分析;功能識別

    A

    ΤP301

    10.3778/j.issn.1002-8331.1208-0543

    JIN Jing,LI Meng,HUA Zhebang,et al.Code function recognition approach based on LDA and static analysis.Computer Engineering and Applications,2013,49(15):27-31.

    國家重點基礎研究發(fā)展規(guī)劃(973)(No.2011CB302604);國家高技術研究發(fā)展計劃(863)(No.2012AA011202);國家自然科學基金(No.60931160444,No.61103024);質(zhì)檢公益性行業(yè)科研專項(No.201210256);廣東省省部產(chǎn)學研結合項目(No.2010A090200031)。

    金靖(1988—),男,碩士研究生,研究方向為軟件復用與軟件構件技術;李萌(1988—),男,博士研究生,研究方向為軟件工程;華哲邦(1989—),男,碩士研究生,研究方向為軟件復用與軟件構件技術;宋懷達(1988—),男,碩士研究生,研究方向為軟件復用與軟件構件技術;趙俊峰(1974—),女,博士,副教授,研究方向為軟件復用與軟件構件技術;謝冰(1970—),男,教授,博士生導師,研究方向為軟件工程。E-mail:jackking040@gmail.com

    2012-09-07

    2012-11-02

    1002-8331(2013)15-0027-05

    CNKI出版日期:2012-11-30 http://www.cnki.net/kcms/detail/11.2127.ΤP.20121130.1126.007.html

    猜你喜歡
    開源代碼文檔
    有人一聲不吭向你扔了個文檔
    五毛錢能買多少頭牛
    創(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
    基于RI碼計算的Word復制文檔鑒別
    大家說:開源、人工智能及創(chuàng)新
    開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
    Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
    婷婷精品国产亚洲av在线| 日韩欧美国产在线观看| 91国产中文字幕| 欧美黑人欧美精品刺激| 亚洲真实伦在线观看| 麻豆成人av在线观看| 国产av一区在线观看免费| 后天国语完整版免费观看| 女性生殖器流出的白浆| 国产在线观看jvid| 国产精品一区二区精品视频观看| 中文字幕高清在线视频| 99热6这里只有精品| 久久天躁狠狠躁夜夜2o2o| 国产不卡一卡二| 亚洲专区中文字幕在线| 日本熟妇午夜| 伦理电影免费视频| 黄色片一级片一级黄色片| a在线观看视频网站| 国产一区二区在线av高清观看| 巨乳人妻的诱惑在线观看| 在线观看www视频免费| 国产精品99久久99久久久不卡| 成人18禁在线播放| 亚洲成av人片免费观看| 淫秽高清视频在线观看| 午夜免费观看网址| 男女做爰动态图高潮gif福利片| 男人舔女人下体高潮全视频| 妹子高潮喷水视频| 国产成+人综合+亚洲专区| 夜夜躁狠狠躁天天躁| 十分钟在线观看高清视频www| 99在线视频只有这里精品首页| 高清毛片免费观看视频网站| 久久香蕉国产精品| 国产精品二区激情视频| 日韩欧美一区视频在线观看| 免费看a级黄色片| ponron亚洲| 国产99白浆流出| 色老头精品视频在线观看| 欧美日韩瑟瑟在线播放| 亚洲午夜理论影院| 中文字幕av电影在线播放| 日日夜夜操网爽| 制服人妻中文乱码| 正在播放国产对白刺激| 国产精品久久电影中文字幕| 精品午夜福利视频在线观看一区| aaaaa片日本免费| 美女 人体艺术 gogo| 成年人黄色毛片网站| 欧美zozozo另类| 免费高清在线观看日韩| 日韩欧美免费精品| 淫秽高清视频在线观看| av有码第一页| 成人亚洲精品一区在线观看| 露出奶头的视频| av有码第一页| 久久久久久久久久黄片| 国产精品久久久久久精品电影 | 男女做爰动态图高潮gif福利片| 午夜福利18| 男女午夜视频在线观看| 国产亚洲精品第一综合不卡| 午夜福利高清视频| 欧美+亚洲+日韩+国产| 亚洲国产欧美日韩在线播放| 中文亚洲av片在线观看爽| 精品不卡国产一区二区三区| 国产乱人伦免费视频| 日本熟妇午夜| 两性午夜刺激爽爽歪歪视频在线观看 | 一进一出抽搐gif免费好疼| 国产精品乱码一区二三区的特点| 国产1区2区3区精品| 亚洲 欧美一区二区三区| 亚洲天堂国产精品一区在线| 亚洲avbb在线观看| 午夜成年电影在线免费观看| 嫁个100分男人电影在线观看| 嫩草影院精品99| 久久中文字幕一级| 日韩三级视频一区二区三区| 91麻豆精品激情在线观看国产| 欧美av亚洲av综合av国产av| 自线自在国产av| 精品电影一区二区在线| 老汉色∧v一级毛片| 国语自产精品视频在线第100页| 国产精品国产高清国产av| 欧美性长视频在线观看| 一本大道久久a久久精品| 一本大道久久a久久精品| 人人妻人人看人人澡| xxx96com| 精品第一国产精品| 午夜久久久久精精品| 丰满人妻熟妇乱又伦精品不卡| 精品久久蜜臀av无| 欧美成人免费av一区二区三区| 99热6这里只有精品| 亚洲成人久久爱视频| 最近在线观看免费完整版| 久久午夜亚洲精品久久| 后天国语完整版免费观看| 精品久久久久久久末码| 香蕉丝袜av| av在线天堂中文字幕| 香蕉av资源在线| 日韩精品免费视频一区二区三区| 久久久久亚洲av毛片大全| 好男人电影高清在线观看| 国产男靠女视频免费网站| 精品电影一区二区在线| 丝袜在线中文字幕| 亚洲精品一区av在线观看| 亚洲第一av免费看| 99在线人妻在线中文字幕| 久久人妻福利社区极品人妻图片| 亚洲性夜色夜夜综合| 午夜福利在线观看吧| 禁无遮挡网站| 欧美一级毛片孕妇| 亚洲精品国产一区二区精华液| 欧美一级a爱片免费观看看 | 久久久久久久久免费视频了| 中出人妻视频一区二区| 国产精品久久电影中文字幕| 国产aⅴ精品一区二区三区波| 精品久久久久久久久久久久久 | 亚洲精品av麻豆狂野| 色综合婷婷激情| 女人爽到高潮嗷嗷叫在线视频| 中文资源天堂在线| 中文字幕高清在线视频| 香蕉久久夜色| 亚洲色图av天堂| 黑人巨大精品欧美一区二区mp4| 妹子高潮喷水视频| 99国产极品粉嫩在线观看| 波多野结衣av一区二区av| 亚洲片人在线观看| 国产精品一区二区三区四区久久 | a在线观看视频网站| 给我免费播放毛片高清在线观看| 国产欧美日韩一区二区精品| 两人在一起打扑克的视频| 免费在线观看成人毛片| 中文字幕精品亚洲无线码一区 | 精品国内亚洲2022精品成人| 国产亚洲精品综合一区在线观看 | 国产亚洲精品一区二区www| 成年版毛片免费区| 男人舔奶头视频| 亚洲欧美日韩无卡精品| 国产一卡二卡三卡精品| 亚洲av日韩精品久久久久久密| 免费女性裸体啪啪无遮挡网站| 免费看十八禁软件| aaaaa片日本免费| 九色国产91popny在线| 亚洲自偷自拍图片 自拍| 国产一级毛片七仙女欲春2 | 麻豆成人午夜福利视频| 女警被强在线播放| svipshipincom国产片| 99久久99久久久精品蜜桃| 久久久久国产精品人妻aⅴ院| 国产一级毛片七仙女欲春2 | 久久这里只有精品19| 亚洲av电影不卡..在线观看| 50天的宝宝边吃奶边哭怎么回事| 成人精品一区二区免费| 亚洲av五月六月丁香网| 国内少妇人妻偷人精品xxx网站 | 国产主播在线观看一区二区| 香蕉av资源在线| 亚洲中文av在线| av视频在线观看入口| 国产欧美日韩一区二区精品| 少妇的丰满在线观看| 精品久久久久久成人av| 啦啦啦韩国在线观看视频| 超碰成人久久| 12—13女人毛片做爰片一| 日本 av在线| 女性生殖器流出的白浆| 日日干狠狠操夜夜爽| 成人手机av| 久久久久久亚洲精品国产蜜桃av| 国产精品一区二区免费欧美| 欧美日本视频| 变态另类成人亚洲欧美熟女| 黄色 视频免费看| 亚洲成人精品中文字幕电影| 日韩欧美一区二区三区在线观看| 美女高潮到喷水免费观看| 国产一卡二卡三卡精品| 成人国产综合亚洲| 色综合站精品国产| 久久午夜综合久久蜜桃| 国产精品香港三级国产av潘金莲| 亚洲精品一卡2卡三卡4卡5卡| 国产精品一区二区免费欧美| 黑人操中国人逼视频| 国产黄片美女视频| 亚洲av成人不卡在线观看播放网| 免费在线观看完整版高清| 免费女性裸体啪啪无遮挡网站| 中文字幕人妻熟女乱码| 精品久久久久久成人av| 亚洲 欧美一区二区三区| 久久久水蜜桃国产精品网| 免费电影在线观看免费观看| 成人午夜高清在线视频 | 亚洲色图av天堂| 精品人妻1区二区| 亚洲精品粉嫩美女一区| 好男人在线观看高清免费视频 | 日韩精品青青久久久久久| 亚洲男人天堂网一区| 日日干狠狠操夜夜爽| 午夜老司机福利片| 午夜免费鲁丝| 一区二区三区激情视频| 欧美在线黄色| 91av网站免费观看| 1024手机看黄色片| 国内久久婷婷六月综合欲色啪| 两性午夜刺激爽爽歪歪视频在线观看 | 精品午夜福利视频在线观看一区| 久久伊人香网站| 一本综合久久免费| 一进一出抽搐gif免费好疼| 91麻豆精品激情在线观看国产| 久久人妻福利社区极品人妻图片| 欧美色视频一区免费| 国产区一区二久久| 久久 成人 亚洲| 久久国产精品影院| 男人舔女人下体高潮全视频| 国内毛片毛片毛片毛片毛片| 欧美人与性动交α欧美精品济南到| 精品久久久久久久久久久久久 | 18禁观看日本| 亚洲久久久国产精品| 大型av网站在线播放| 久久这里只有精品19| 脱女人内裤的视频| 亚洲三区欧美一区| 久久亚洲精品不卡| 性色av乱码一区二区三区2| 日本一区二区免费在线视频| 精品一区二区三区av网在线观看| 欧美精品啪啪一区二区三区| 久久久久亚洲av毛片大全| 香蕉国产在线看| 欧洲精品卡2卡3卡4卡5卡区| 亚洲国产精品合色在线| 精品久久久久久,| av在线天堂中文字幕| 国产单亲对白刺激| 亚洲专区字幕在线| 欧美又色又爽又黄视频| 欧美激情极品国产一区二区三区| 日本 欧美在线| 91麻豆av在线| 国产伦在线观看视频一区| 午夜福利在线在线| 欧美性猛交黑人性爽| 亚洲色图 男人天堂 中文字幕| 久久国产精品人妻蜜桃| 亚洲三区欧美一区| 精品国产美女av久久久久小说| 十八禁人妻一区二区| 观看免费一级毛片| 国产精品一区二区精品视频观看| 久久狼人影院| 成人手机av| 一卡2卡三卡四卡精品乱码亚洲| 韩国av一区二区三区四区| 18禁观看日本| 在线天堂中文资源库| 亚洲色图 男人天堂 中文字幕| 日韩欧美国产在线观看| 岛国在线观看网站| 午夜影院日韩av| 亚洲av电影在线进入| 免费在线观看成人毛片| 人人妻人人看人人澡| 国产三级在线视频| 精品国产乱码久久久久久男人| 免费看日本二区| 日韩国内少妇激情av| 国产av在哪里看| 亚洲九九香蕉| 女警被强在线播放| 日日夜夜操网爽| 色哟哟哟哟哟哟| 男女床上黄色一级片免费看| 日韩高清综合在线| 欧美中文综合在线视频| 国产精品一区二区精品视频观看| 国产不卡一卡二| 免费人成视频x8x8入口观看| 女人被狂操c到高潮| 精品福利观看| 亚洲片人在线观看| 大型av网站在线播放| 熟女少妇亚洲综合色aaa.| 欧美乱码精品一区二区三区| 妹子高潮喷水视频| 日韩三级视频一区二区三区| 18禁黄网站禁片午夜丰满| 国产精品一区二区免费欧美| 欧美精品亚洲一区二区| 亚洲精品久久成人aⅴ小说| 69av精品久久久久久| 夜夜夜夜夜久久久久| 国产99久久九九免费精品| 国产视频一区二区在线看| 他把我摸到了高潮在线观看| 麻豆av在线久日| 亚洲国产中文字幕在线视频| 久久国产精品影院| 宅男免费午夜| 18禁裸乳无遮挡免费网站照片 | 搞女人的毛片| 日韩 欧美 亚洲 中文字幕| 久久精品91无色码中文字幕| 中出人妻视频一区二区| 国产精品国产高清国产av| 久热这里只有精品99| 欧美成人一区二区免费高清观看 | 午夜福利在线在线| 国产精品自产拍在线观看55亚洲| 欧美一级毛片孕妇| 激情在线观看视频在线高清| 欧美午夜高清在线| tocl精华| 久久 成人 亚洲| 大型黄色视频在线免费观看| 成人亚洲精品一区在线观看| 欧美丝袜亚洲另类 | 亚洲最大成人中文| 亚洲精品一区av在线观看| 亚洲一码二码三码区别大吗| 色尼玛亚洲综合影院| 曰老女人黄片| 国产成年人精品一区二区| 亚洲人成电影免费在线| 国产精品亚洲美女久久久| 97人妻精品一区二区三区麻豆 | 首页视频小说图片口味搜索| 热re99久久国产66热| 精品电影一区二区在线| 露出奶头的视频| 欧美成人免费av一区二区三区| 又紧又爽又黄一区二区| 国产免费av片在线观看野外av| 操出白浆在线播放| 欧美乱码精品一区二区三区| 久久亚洲精品不卡| 真人一进一出gif抽搐免费| 免费一级毛片在线播放高清视频| 2021天堂中文幕一二区在线观 | 可以在线观看毛片的网站| 欧美又色又爽又黄视频| 日本a在线网址| 色尼玛亚洲综合影院| 不卡一级毛片| 欧美性猛交╳xxx乱大交人| 色综合欧美亚洲国产小说| 黑人巨大精品欧美一区二区mp4| 中文字幕人妻丝袜一区二区| 久久这里只有精品19| 亚洲午夜精品一区,二区,三区| 宅男免费午夜| 女警被强在线播放| 美女大奶头视频| 国产成人影院久久av| 精品卡一卡二卡四卡免费| 啦啦啦免费观看视频1| 久久国产精品人妻蜜桃| 久久婷婷人人爽人人干人人爱| 精品国产乱码久久久久久男人| 国产成人精品无人区| 精品熟女少妇八av免费久了| 熟女少妇亚洲综合色aaa.| 99久久99久久久精品蜜桃| 日韩欧美 国产精品| 男女下面进入的视频免费午夜 | 黄色片一级片一级黄色片| 丰满人妻熟妇乱又伦精品不卡| 天天一区二区日本电影三级| 天天躁夜夜躁狠狠躁躁| 日韩视频一区二区在线观看| 久久这里只有精品19| 少妇熟女aⅴ在线视频| 国产精品香港三级国产av潘金莲| 日韩av在线大香蕉| 可以免费在线观看a视频的电影网站| 欧美精品啪啪一区二区三区| 国产精品免费一区二区三区在线| 给我免费播放毛片高清在线观看| 亚洲中文日韩欧美视频| 在线视频色国产色| 亚洲一码二码三码区别大吗| 伦理电影免费视频| 日本黄色视频三级网站网址| 男女床上黄色一级片免费看| 一本一本综合久久| 国产成人av激情在线播放| 好男人电影高清在线观看| 黄色视频,在线免费观看| 色av中文字幕| 麻豆久久精品国产亚洲av| 成在线人永久免费视频| 首页视频小说图片口味搜索| 好看av亚洲va欧美ⅴa在| 午夜福利欧美成人| 男人的好看免费观看在线视频 | 国产高清videossex| 侵犯人妻中文字幕一二三四区| 日韩三级视频一区二区三区| 免费看日本二区| 一区二区三区激情视频| 极品教师在线免费播放| 黄色丝袜av网址大全| 亚洲精品国产区一区二| 亚洲av电影在线进入| 午夜成年电影在线免费观看| 亚洲精品在线美女| 久久久久久大精品| 亚洲成国产人片在线观看| 亚洲人成网站在线播放欧美日韩| 91av网站免费观看| 日韩欧美国产在线观看| 亚洲中文字幕一区二区三区有码在线看 | 日本撒尿小便嘘嘘汇集6| 最新在线观看一区二区三区| 欧美乱色亚洲激情| 亚洲精品久久成人aⅴ小说| 日韩高清综合在线| 欧美最黄视频在线播放免费| 人人妻,人人澡人人爽秒播| 亚洲精品中文字幕一二三四区| 亚洲国产精品久久男人天堂| 动漫黄色视频在线观看| 国产亚洲欧美在线一区二区| 首页视频小说图片口味搜索| 少妇 在线观看| 女生性感内裤真人,穿戴方法视频| 国产区一区二久久| 国产精品1区2区在线观看.| or卡值多少钱| 正在播放国产对白刺激| 久久久国产欧美日韩av| 禁无遮挡网站| 女性被躁到高潮视频| 变态另类丝袜制服| 亚洲成国产人片在线观看| 亚洲成人免费电影在线观看| 国产精品精品国产色婷婷| 制服人妻中文乱码| 男女午夜视频在线观看| 国产精华一区二区三区| 日本熟妇午夜| 亚洲精品国产精品久久久不卡| 欧美国产日韩亚洲一区| 婷婷精品国产亚洲av在线| 免费看十八禁软件| 亚洲中文日韩欧美视频| 欧美激情 高清一区二区三区| 国产精品亚洲av一区麻豆| 色哟哟哟哟哟哟| av视频在线观看入口| 亚洲精品av麻豆狂野| 久久99热这里只有精品18| 三级毛片av免费| 国内揄拍国产精品人妻在线 | av福利片在线| 黄色成人免费大全| 极品教师在线免费播放| 国产99久久九九免费精品| 欧美黑人精品巨大| 老司机午夜十八禁免费视频| 一区二区三区激情视频| 男女视频在线观看网站免费 | 色哟哟哟哟哟哟| 91成年电影在线观看| 制服人妻中文乱码| 国产一区在线观看成人免费| 午夜激情福利司机影院| 亚洲 欧美 日韩 在线 免费| 日本a在线网址| 亚洲精品av麻豆狂野| 色综合亚洲欧美另类图片| 两人在一起打扑克的视频| 日韩欧美 国产精品| 久久久久九九精品影院| 天天一区二区日本电影三级| 久久久国产精品麻豆| 我的亚洲天堂| 免费av毛片视频| 最新在线观看一区二区三区| 999精品在线视频| 欧美黑人巨大hd| 超碰成人久久| 90打野战视频偷拍视频| 我的亚洲天堂| 国产私拍福利视频在线观看| 欧美成人免费av一区二区三区| 人人妻,人人澡人人爽秒播| 国产欧美日韩一区二区精品| 在线十欧美十亚洲十日本专区| 欧美性猛交黑人性爽| 91老司机精品| 久久狼人影院| 99久久精品国产亚洲精品| 国产成人欧美| 欧美成人一区二区免费高清观看 | 19禁男女啪啪无遮挡网站| 日本在线视频免费播放| 精品人妻1区二区| 好男人在线观看高清免费视频 | 久久中文字幕人妻熟女| 黑人欧美特级aaaaaa片| 久热这里只有精品99| 人妻久久中文字幕网| 97碰自拍视频| 好男人在线观看高清免费视频 | 欧美激情高清一区二区三区| 精品国产乱子伦一区二区三区| 日韩精品免费视频一区二区三区| 国产视频内射| 男人舔女人的私密视频| 嫁个100分男人电影在线观看| 国产精品国产高清国产av| 丝袜美腿诱惑在线| 免费一级毛片在线播放高清视频| 日韩欧美三级三区| 亚洲avbb在线观看| 国产野战对白在线观看| 国产精品美女特级片免费视频播放器 | 天天躁狠狠躁夜夜躁狠狠躁| x7x7x7水蜜桃| 少妇粗大呻吟视频| 国产真实乱freesex| 日韩免费av在线播放| 久久九九热精品免费| 午夜激情av网站| av视频在线观看入口| 欧美乱码精品一区二区三区| 欧美激情极品国产一区二区三区| 国产aⅴ精品一区二区三区波| 久久99热这里只有精品18| 国产精品 欧美亚洲| 黄色女人牲交| 亚洲第一电影网av| 黄色女人牲交| 久久久久精品国产欧美久久久| www日本黄色视频网| 亚洲一区高清亚洲精品| 欧美日本亚洲视频在线播放| 欧美丝袜亚洲另类 | 男人舔奶头视频| 在线观看免费日韩欧美大片| 婷婷亚洲欧美| 少妇裸体淫交视频免费看高清 | 亚洲成人久久爱视频| 午夜视频精品福利| 男人操女人黄网站| 色哟哟哟哟哟哟| 国产欧美日韩一区二区精品| 国产爱豆传媒在线观看 | 一本一本综合久久| 亚洲成人免费电影在线观看| 在线观看免费日韩欧美大片| 国产一级毛片七仙女欲春2 | 国语自产精品视频在线第100页| 国产成人精品无人区| 老司机在亚洲福利影院| 51午夜福利影视在线观看| 国产亚洲精品综合一区在线观看 | 露出奶头的视频| 搞女人的毛片| 欧美成人性av电影在线观看| 美女国产高潮福利片在线看| 狠狠狠狠99中文字幕| 国产精品乱码一区二三区的特点| 18禁美女被吸乳视频| 岛国在线观看网站| 日韩av在线大香蕉| 黄色成人免费大全| 丝袜人妻中文字幕| 老司机在亚洲福利影院| 18美女黄网站色大片免费观看| 女同久久另类99精品国产91| 亚洲成av人片免费观看| 丝袜在线中文字幕| 无人区码免费观看不卡| 亚洲精品一区av在线观看| 久久久久国产一级毛片高清牌| 久久狼人影院| svipshipincom国产片| av欧美777| 日韩欧美国产在线观看| 亚洲精品色激情综合| 中文在线观看免费www的网站 | 草草在线视频免费看|