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

    開(kāi)源對(duì)軟件工程的作用及關(guān)鍵搜索技術(shù)分析*

    2015-10-18 02:15:46曾國(guó)蓀同濟(jì)大學(xué)計(jì)算機(jī)科學(xué)及技術(shù)系上海0804國(guó)家高性能計(jì)算機(jī)工程技術(shù)中心同濟(jì)分中心上海0804
    關(guān)鍵詞:用戶方法

    張 康,曾國(guó)蓀(.同濟(jì)大學(xué) 計(jì)算機(jī)科學(xué)及技術(shù)系,上海 0804;.國(guó)家高性能計(jì)算機(jī)工程技術(shù)中心同濟(jì)分中心,上海 0804)

    開(kāi)源對(duì)軟件工程的作用及關(guān)鍵搜索技術(shù)分析*

    張 康1,曾國(guó)蓀2
    (1.同濟(jì)大學(xué) 計(jì)算機(jī)科學(xué)及技術(shù)系,上海 201804;2.國(guó)家高性能計(jì)算機(jī)工程技術(shù)中心同濟(jì)分中心,上海 201804)

    隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,開(kāi)源軟件正以前所未有的優(yōu)勢(shì)得以迅速發(fā)展?,F(xiàn)在的開(kāi)源軟件已經(jīng)成為軟件發(fā)展的主要流行趨勢(shì)。開(kāi)源軟件的成功對(duì)軟件產(chǎn)業(yè)起到了巨大的作用。同時(shí),由于目前開(kāi)源軟件數(shù)量急劇增加,迅速準(zhǔn)確地尋找到用戶所需的代碼成為一個(gè)關(guān)鍵問(wèn)題?,F(xiàn)有的代碼搜索引擎大都是基于文本的搜索,并未利用語(yǔ)法、語(yǔ)義信息,在搜索準(zhǔn)確性方面受到極大限制。因此,有學(xué)者提出利用代碼的語(yǔ)法和語(yǔ)義等信息輔助代碼搜索。從多個(gè)方面對(duì)開(kāi)源的作用做一個(gè)較全面的介紹,并對(duì)開(kāi)源代碼的關(guān)鍵搜索技術(shù)做一個(gè)簡(jiǎn)要綜述。

    開(kāi)源;復(fù)用;搜索;關(guān)鍵詞;語(yǔ)法;語(yǔ)義

    0 引言

    隨著網(wǎng)絡(luò)時(shí)代的來(lái)臨和開(kāi)源運(yùn)動(dòng)的發(fā)展,軟件的開(kāi)發(fā)模式、運(yùn)行環(huán)境和提供方式都發(fā)生了巨大改變。興起于20世紀(jì)90年代的開(kāi)源軟件取得了巨大成功,其開(kāi)發(fā)活動(dòng)具有開(kāi)放分享、頻繁發(fā)布等特點(diǎn),能夠有效匯聚軟件各利益相關(guān)方的創(chuàng)意和貢獻(xiàn),其自由松散的表象下隱藏著重要的軟件工程新理論,對(duì)軟件產(chǎn)業(yè)的發(fā)展和格局產(chǎn)生了深遠(yuǎn)的影響。目前,開(kāi)源軟件有著良好的發(fā)展態(tài)勢(shì)。開(kāi)源文化是人類(lèi)幾千年的智慧結(jié)晶,是一種必然的歷史趨勢(shì),這種發(fā)展趨勢(shì)是誰(shuí)也阻擋不了的。

    開(kāi)源軟件[1]就是在開(kāi)發(fā)源代碼許可證的規(guī)范下發(fā)布的軟件,以保障用戶自由使用軟件及接觸源代碼的權(quán)利,同時(shí)也保障了用戶自行修改、復(fù)制以及再分發(fā)的權(quán)利。開(kāi)源軟件的數(shù)量目前正在不斷大量增長(zhǎng),大量開(kāi)源軟件的出現(xiàn),對(duì)軟件工程的實(shí)施起到巨大作用,本文以開(kāi)源對(duì)軟件工程的作用和關(guān)鍵技術(shù)為研究點(diǎn),主要分析開(kāi)源對(duì)當(dāng)前軟件工程的作用和針對(duì)開(kāi)源代碼的關(guān)鍵搜索技術(shù)。

    1 開(kāi)源對(duì)軟件工程的作用

    1.1 基于開(kāi)源庫(kù)的瀏覽學(xué)習(xí)

    數(shù)量巨大的開(kāi)源庫(kù)對(duì)于程序員來(lái)說(shuō)是一座巨大的寶藏,源代碼融合了作者數(shù)十年的方法、經(jīng)驗(yàn)和教訓(xùn),對(duì)于初學(xué)者來(lái)說(shuō)不可多得的學(xué)習(xí)資源。

    對(duì)于初學(xué)者來(lái)說(shuō),開(kāi)源主要有以下兩個(gè)方面作用:

    (1)有助于從理論到實(shí)踐的平滑過(guò)渡。從理論到實(shí)踐是一個(gè)痛苦的過(guò)程,正是因?yàn)檫@種痛苦讓很多初學(xué)者望而卻步。

    (2)有助于初學(xué)者了解技術(shù)潮流。開(kāi)源項(xiàng)目往往沒(méi)有遺留系統(tǒng)的負(fù)擔(dān),比較有利于新技術(shù)和新想法的實(shí)現(xiàn)。初學(xué)者通過(guò)閱讀源碼可以緊跟這些新技術(shù)和新想法。

    1.2開(kāi)源有助于了解API使用方法

    在現(xiàn)代軟件行業(yè)中,越來(lái)越多的程序員依靠API庫(kù)來(lái)完成他們?nèi)粘5拈_(kāi)發(fā)任務(wù)。HOFFLNANN R[2]等人的研究指出,程序員在軟件開(kāi)發(fā)的過(guò)程中經(jīng)常需要調(diào)用到其他庫(kù)里的API。對(duì)于一個(gè)簡(jiǎn)單的API來(lái)說(shuō),通過(guò)一個(gè)使用例子,可以更加直觀地看到使用方法,這會(huì)讓用戶使用API變得更加快捷方便,省下了閱讀API文檔的過(guò)程,提高了開(kāi)發(fā)效率。

    通過(guò)示例代碼學(xué)習(xí)具體API的使用方法是開(kāi)發(fā)人員進(jìn)行軟件復(fù)用的高效手段。例如,Java程序員要使用排序函數(shù)sort,通常需要打開(kāi)文檔,找到 sort函數(shù),然后仔細(xì)查看文檔。這里使用開(kāi)源代碼的搜索引擎 krugle,在開(kāi)源代碼庫(kù)里輸入關(guān)鍵字“sort”,通過(guò)對(duì)照著搜索結(jié)果中調(diào)用 API的方法使用該 API,就會(huì)省下很多時(shí)間,提高開(kāi)發(fā)效率。

    1.3 開(kāi)源有利于代碼精確復(fù)用

    代碼復(fù)用可以說(shuō)是任何一個(gè)軟件企業(yè)都不能漠視的課題,因?yàn)閺?fù)用已有的代碼意味著開(kāi)發(fā)人員可以節(jié)省許多對(duì)代碼進(jìn)行測(cè)試和提升代碼質(zhì)量的時(shí)間。在軟件開(kāi)發(fā)中,軟件的每個(gè)部分幾乎都包括可復(fù)用的代碼塊。隨著開(kāi)源的流行,開(kāi)源代碼庫(kù)的數(shù)量的日益龐大,開(kāi)源代碼的數(shù)量可以說(shuō)是不計(jì)其數(shù)。如此龐大基數(shù)的代碼幾乎包含了各個(gè)方面的代碼??梢哉f(shuō)很多程序員正在寫(xiě)或者將要寫(xiě)的代碼都是代碼庫(kù)里已有的代碼,這就浪費(fèi)了大量的人力、物力。因此,開(kāi)源就是使得任何所需要的代碼幾乎可以復(fù)用。

    1.4 開(kāi)源有助于軟件的推廣

    十年前,開(kāi)源支持者在試圖推廣免費(fèi)軟件時(shí)陷入了困戰(zhàn),推廣實(shí)施的障礙包括軟件質(zhì)量、安全保障、后期支持等。然而十年后,開(kāi)源模式已經(jīng)被大眾接受,相當(dāng)一部分公司在使用開(kāi)源軟件,開(kāi)源甚至更加有助于軟件的推廣[3]。開(kāi)源已經(jīng)走過(guò)了從忽視到嘲笑到打擊到被大家接受的過(guò)程[4],究其原因,可以從以下三點(diǎn)來(lái)說(shuō)明:

    (1)注重安全的人更加傾向于開(kāi)源軟件。開(kāi)源可以讓大家更加清楚軟件背后到底在做哪些不為人知的事,會(huì)讓使用開(kāi)源軟件的人更加放心。

    (2)節(jié)約成本的人更加傾向于開(kāi)源軟件。在使用軟件時(shí)一個(gè)不可避免的因素就是用戶是否愿意為其付費(fèi)。隨著開(kāi)源軟件的質(zhì)量的提高,用戶更愿意使用一個(gè)安全的、高質(zhì)量的、便宜的開(kāi)源軟件。

    (3)開(kāi)源社區(qū)積攢了大量的人群。在開(kāi)源代管平臺(tái)上發(fā)布項(xiàng)目會(huì)發(fā)布得更快,軟件發(fā)布后很快就會(huì)被各種用戶使用、轉(zhuǎn)載,形成了一個(gè)無(wú)形的軟件“供需超市”。開(kāi)源社區(qū)內(nèi)不同背景、不同專(zhuān)長(zhǎng)的人匯集成一股集體的力量,對(duì)于開(kāi)源項(xiàng)目的推廣起到了重要的作用。正如圖1所示,開(kāi)發(fā)者和用戶通過(guò)社區(qū)學(xué)習(xí)知識(shí)、提升能力、提升知名度、擴(kuò)展人際圈子,企業(yè)通過(guò)社區(qū)可以提高企業(yè)知名度、找到合適的人才、推廣技術(shù)和產(chǎn)品、降低成本等,社區(qū)在開(kāi)源項(xiàng)目的推廣中起到了重要的作用。

    圖1 2社區(qū)的作用圖

    1.5 開(kāi)源有助于軟件的個(gè)性化定制

    開(kāi)源軟件能夠迅速推廣得益于個(gè)性化定制。個(gè)性化定制是用戶介入產(chǎn)品的生產(chǎn)過(guò)程,將指定的圖案和文字印刷到指定的產(chǎn)品上,用戶獲得自己定制的個(gè)人屬性強(qiáng)烈的商品。

    由于開(kāi)源的關(guān)系,軟件也可以個(gè)性化定制。開(kāi)源意味著任何人都可以去下載修改開(kāi)源軟件的源碼,制作出屬于自己的專(zhuān)屬軟件版本,而且可以將自己的個(gè)性化軟件進(jìn)行傳播。

    以往,軟件給人的思想是“給你什么你就有什么”,大多數(shù)專(zhuān)有軟件公司根據(jù)投資回報(bào)比來(lái)投資軟件,一些個(gè)性化的需求往往得不到他們的重視。然而,開(kāi)源流行開(kāi)后,個(gè)人或者企業(yè)可以添加自己想要的功能,這種個(gè)性化的定制往往使得開(kāi)源能夠更好地服務(wù)于個(gè)人或者企業(yè)。

    1.6 開(kāi)源有助于軟件質(zhì)量的分析

    軟件質(zhì)量是軟件產(chǎn)品的靈魂。關(guān)于開(kāi)源和閉源的軟件質(zhì)量的討論一直沒(méi)有停止過(guò)。閉源,相對(duì)來(lái)說(shuō),表面上是安全的,因?yàn)樗拇a是不公開(kāi)的,沒(méi)有高水平編程能力很難去破解,但它的缺點(diǎn)是本身因開(kāi)發(fā)人員思路的局限性會(huì)有很多漏洞,而自己又不知道,這就給了黑客作惡以可乘之機(jī)。

    開(kāi)源軟件由于源碼的開(kāi)放性,使得用戶和第三方評(píng)測(cè)者能夠直接通過(guò)代碼的分析了解軟件的內(nèi)部質(zhì)量情況,是一種直觀、精確的評(píng)測(cè)方式。此外,開(kāi)源軟件能集中群體的力量做到及時(shí)發(fā)現(xiàn)漏洞修補(bǔ)漏洞,可以集思廣益發(fā)揮群智群力的作用,讓開(kāi)源軟件迅速完善起來(lái)。

    2 源代碼搜索的關(guān)鍵技術(shù)分析

    2.1 基于字符串匹配的搜索技術(shù)

    2.1.1 基于關(guān)鍵詞的搜索

    對(duì)源代碼搜索而言,目前絕大多數(shù)的解決方案都可歸類(lèi)為兩種:一是借助于開(kāi)源代碼搜索工具或平臺(tái)如Github或者Sourceforge等;二是借助于通用搜索引擎。兩者都是基于關(guān)鍵詞的搜索。

    在基于關(guān)鍵詞的搜索中,主要采用了布爾搜索模型的搜索策略[5]。在布爾搜索中,用戶的查詢(xún)要求用普通的語(yǔ)言敘述,即用戶可完全按照自己的思維習(xí)慣提問(wèn)。其中的查詢(xún)要求(條件)A、B…可以分別用若干個(gè)標(biāo)引詞來(lái)表示,接著可以用布爾邏輯算符“∨”、“∧”、“﹁”將用戶的提問(wèn)“翻譯”成系統(tǒng)可以接受的形式。

    一般用tk表示標(biāo)引詞序列,dkn表示與tk有關(guān)的文獻(xiàn),則tk*={dk1,dk2,…,dkn}就可以用來(lái)表示與標(biāo)引詞tk有關(guān)的文獻(xiàn)全體組成的集合。令X(q)表示關(guān)于查詢(xún)q的檢出文獻(xiàn),則:

    (1)q=t,X(q)=t*

    (2)q=﹁t,X(q)=t*=Dt*

    (3)q=t1∨t2,X(q)=t1*∪t2*

    (4)q=t1∧t2,X(q)=t1*∩t2*

    很明顯,布爾邏輯運(yùn)算實(shí)際上就是集合之間的并、交、補(bǔ)運(yùn)算,也就是說(shuō),布爾邏輯檢索系統(tǒng)實(shí)際上是通過(guò)對(duì)若干個(gè)代碼文件集合(代碼文件集D或D的子集)的并、交、補(bǔ)運(yùn)算回答用戶提問(wèn)的。

    然而,這種方法局限性較大,不能充分利用代碼在語(yǔ)法結(jié)構(gòu)、語(yǔ)義等方面的特性,也無(wú)法保證查詢(xún)到的代碼與用戶查詢(xún)相關(guān)。

    2.1.2 基于代碼段的搜索

    盡管基于關(guān)鍵詞的搜索也在一定程度上幫助程序員復(fù)用源代碼,但是它還是會(huì)返回給用戶數(shù)量巨大的搜索結(jié)果,其中包括了很多用戶并不需要的結(jié)果。這是由于基于關(guān)鍵詞的搜索并未區(qū)分搜索的粒度,比如文件、類(lèi)或者是函數(shù),而僅僅是將匹配到的所有結(jié)果返回給用戶。因此,代碼搜索技術(shù)需要根據(jù)用戶需要返回不同粒度的結(jié)果?;谝褟?fù)用代碼的搜索技術(shù)[6]就是返回在過(guò)去曾經(jīng)復(fù)用過(guò)的代碼片段,可以根據(jù)用戶需求返回粒度較小的函數(shù)或者代碼段。

    在基于已復(fù)用代碼的搜索技術(shù)中,可以認(rèn)為,過(guò)去復(fù)用過(guò)的代碼很有可能會(huì)在將來(lái)再次被復(fù)用,因此返回給用戶的結(jié)果是在過(guò)去被復(fù)用過(guò)的代碼片段。該方法主要包括了代碼分析部分和代碼搜索部分。代碼分析部分探測(cè)將要被返回給用戶的重復(fù)代碼片段集合。代碼搜索部分返回給用戶的是與他們輸入相關(guān)的重復(fù)代碼片段。利用基于代碼段的搜索方法可以搜索得到更小的粒度,而不僅僅是代碼文件,滿足用戶對(duì)于搜索代碼段的需求。

    2.1.3 源代碼及時(shí)錄入及時(shí)搜索參考技術(shù)

    據(jù)調(diào)查表明,現(xiàn)代軟件開(kāi)發(fā)過(guò)程,開(kāi)發(fā)人員大約有19%的工作是在搜索代碼。開(kāi)發(fā)人員經(jīng)常需要參考Web上的代碼搜索結(jié)果來(lái)學(xué)習(xí)新技術(shù)或者輔助開(kāi)發(fā)工作[7]。通常情況下,開(kāi)發(fā)人員需要從IDE或者代碼編輯器切換到瀏覽器,在某個(gè)代碼搜索網(wǎng)站例如 github上搜索,搜索結(jié)果會(huì)出現(xiàn)很多結(jié)果,每個(gè)結(jié)果對(duì)應(yīng)著一個(gè)鏈接,開(kāi)發(fā)人員不得不一一打開(kāi)鏈接查看結(jié)果是否滿足需求,十分影響程序員的開(kāi)發(fā)效率。因此,源代碼實(shí)時(shí)錄入、實(shí)時(shí)搜索技術(shù)能夠幫助用戶改善這種狀況。

    源代碼即時(shí)錄入即時(shí)搜索技術(shù)旨在即時(shí)找到與用戶輸入代碼片段類(lèi)似或者相同的代碼段,并將其實(shí)時(shí)返回給用戶,以幫助用戶學(xué)習(xí)參考或者復(fù)用。源代碼即時(shí)錄入即時(shí)搜索技術(shù)并非是一種新的代碼搜索技術(shù),它根據(jù)用戶在編輯器中實(shí)時(shí)輸入的結(jié)果,來(lái)搜索和當(dāng)前用戶輸入的代碼類(lèi)似的代碼片段返回給用戶,輔助用戶進(jìn)行開(kāi)發(fā)。

    2.2 基于語(yǔ)法的源代碼搜索技術(shù)

    2.2.1 利用程序結(jié)構(gòu)的搜索方法

    與網(wǎng)頁(yè)文件搜索相比,代碼文件有著自己的特點(diǎn),而在傳統(tǒng)代碼搜索中還只是利用關(guān)鍵字進(jìn)行搜索,忽略代碼本身的特性,因此,有研究人員提出了基于程序結(jié)構(gòu)的源代碼搜索。

    在結(jié)構(gòu)化程序設(shè)計(jì)方法中,任何程序都可以用三種基本結(jié)構(gòu)(順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),如圖2所示)來(lái)表示,可以利用其程序結(jié)構(gòu)輔助搜索。

    圖2 三種基本結(jié)構(gòu)

    一方面,根據(jù)用戶的查詢(xún)輸入,生成所需的程序結(jié)構(gòu)的特征向量,這些結(jié)構(gòu)特征包括:順序結(jié)構(gòu)數(shù)、分支結(jié)構(gòu)數(shù)、循環(huán)結(jié)構(gòu)數(shù)等。另一方面,分析出開(kāi)源庫(kù)中的源代碼文件,得到程序結(jié)構(gòu)的特征向量,并建立數(shù)據(jù)庫(kù)。若兩個(gè)向量的相似度達(dá)到一定值,則說(shuō)明該向量對(duì)應(yīng)的代碼與用戶所需的程序結(jié)構(gòu)相似,將其返回給用戶。

    2.2.2 利用控制流圖的搜索方法

    隨后又有研究人員提出利用控制流圖輔助搜索。在結(jié)構(gòu)化程序設(shè)計(jì)方法中,程序是一系列過(guò)程的集合,而控制流圖是表示一個(gè)過(guò)程內(nèi)所有基本快執(zhí)行的可能流向和每個(gè)基本塊所對(duì)應(yīng)的語(yǔ)句表,能反映一個(gè)過(guò)程的實(shí)時(shí)執(zhí)行過(guò)程。因此,利用控制流圖來(lái)輔助搜索可以幫助提高精確度。

    在該搜索方法中,每個(gè)源代碼由一個(gè)控制流圖來(lái)表達(dá),每一個(gè)節(jié)點(diǎn)表示一個(gè)基本塊。利用從用戶輸入得到的信息,系統(tǒng)生成一個(gè)控制流圖,如果兩個(gè)控制流圖是同構(gòu)的,則可以認(rèn)為該控制流圖對(duì)應(yīng)的代碼即為用戶要搜索的結(jié)果[8]。例如圖3(a)中的代碼可以生成圖 3(b)所示的控制流圖。

    圖3 源代碼和對(duì)應(yīng)的控制流圖

    但是在利用控制流圖的搜索方法中,用戶需要輸入一個(gè)控制流圖,這無(wú)疑加重了用戶的使用負(fù)擔(dān),如何根據(jù)用戶簡(jiǎn)單的輸入自動(dòng)生成控制流圖值得研究。

    2.2.3 利用程序語(yǔ)法樹(shù)的搜索方法

    在2.2.1中,利用程序結(jié)構(gòu)進(jìn)行代碼搜索,然而Sourcerer[9]等搜索引擎比較簡(jiǎn)單粗糙地利用程序結(jié)構(gòu)信息(比如 if語(yǔ)句的個(gè)數(shù)、for循環(huán)結(jié)構(gòu)的個(gè)數(shù)等)能使搜索結(jié)果精確一些,但是并沒(méi)有深入全面地利用語(yǔ)法信息來(lái)輔助代碼搜索,而本文可以利用程序語(yǔ)法樹(shù)來(lái)輔助代碼搜索。

    語(yǔ)法樹(shù)是程序代碼的樹(shù)狀表示,它是形式化、規(guī)范化的程序語(yǔ)義表示,是程序設(shè)計(jì)者思想的形式化表示。語(yǔ)法樹(shù)是程序的編譯或者解釋過(guò)程中的一個(gè)中間數(shù)據(jù)結(jié)構(gòu),處于源代碼和中間語(yǔ)言代碼之間。源代碼太具體,中間語(yǔ)言代碼又過(guò)于抽象,而語(yǔ)法樹(shù)介于兩者之間,能夠形象地抽象出程序的結(jié)構(gòu)信息,為代碼的搜索提供更加準(zhǔn)確、全面的信息。例如如下代碼:

    這段代碼的語(yǔ)法樹(shù)如圖4所示。

    圖4 代碼的語(yǔ)法樹(shù)

    黃麗韶等人[10]在 Sourcerer的經(jīng)驗(yàn)上進(jìn)行了基于程序語(yǔ)法樹(shù)的源代碼搜索的研究,從語(yǔ)法結(jié)構(gòu)角度提出一種源代碼的搜索方法,構(gòu)造基于語(yǔ)法結(jié)構(gòu)的代碼過(guò)濾器,通過(guò)遍歷抽象語(yǔ)法樹(shù)來(lái)抽取源代碼的信息建立索引。

    2.3 基于語(yǔ)義的源代碼搜索技術(shù)

    2.3.1利用功能需求的源代碼搜索方法

    1998年夏威夷大學(xué)的 Woods等人提出了基于需求的代碼搜索方法,通過(guò)建立代碼的抽象數(shù)據(jù)描述來(lái)建立索引,之后通過(guò)一種需求描述(Plan)語(yǔ)言來(lái)描述軟件的功能需求。通過(guò)需求描述語(yǔ)言對(duì)功能需求的詳細(xì)描述,可以全面地得到各個(gè)功能的具體實(shí)現(xiàn)方式,代碼搜索引擎將該需求描述和代碼庫(kù)中的抽象數(shù)據(jù)描述進(jìn)行匹配,得到匹配后的代碼,通過(guò)一定的排序和過(guò)濾方式,實(shí)現(xiàn)了基于需求的搜索方法。該方法搜索的輸入比較繁雜,需要用戶給出各個(gè)過(guò)程的實(shí)現(xiàn)方法,使用起來(lái)會(huì)比較復(fù)雜。

    2.3.2 基于測(cè)試的源代碼搜索方法

    基于測(cè)試的源代碼搜索(TDCS)[11]是以測(cè)試用例作為用戶搜索的輸入來(lái)進(jìn)行搜索的一種源代碼搜索方法。由于測(cè)試用例可以用來(lái)描述系統(tǒng)中缺失的特征,因此測(cè)試用例對(duì)于代碼搜索來(lái)說(shuō)能夠提供更多的語(yǔ)義信息,也會(huì)讓代碼搜索結(jié)果更加準(zhǔn)確。

    TDCS確保測(cè)試用例描述了要被搜索的代碼的特征。在TDCS中,測(cè)試用例被設(shè)計(jì)用來(lái)描述系統(tǒng)中缺失的特征。開(kāi)發(fā)人員通過(guò)測(cè)試用例來(lái)搜索結(jié)果,該方法會(huì)根據(jù)測(cè)試用例來(lái)構(gòu)造出用戶的查詢(xún)輸入,根據(jù)該查詢(xún)輸入在開(kāi)源庫(kù)中進(jìn)行搜索,然后,將搜索得到的結(jié)果編織進(jìn)自己的代碼中。

    2.3.3 基于輸入輸出的源代碼搜索方法

    KATHRYN S[12]提出了一種新的代碼搜索方法,基于輸入輸出來(lái)進(jìn)行源代碼搜索。利用該方法,程序設(shè)計(jì)者只需編寫(xiě)輕量級(jí)的需求描述來(lái)定義輸入和期望的輸出。與現(xiàn)有的搜索不同的是,該方法利用 SMT(Satisfiability Modulo Theories)求解,對(duì)設(shè)計(jì)者提供的描述采用符號(hào)分析,自動(dòng)轉(zhuǎn)換為匹配的約束,從而在代碼倉(cāng)庫(kù)中識(shí)別程序或程序片段。

    整套方法的核心在于:對(duì)代碼倉(cāng)庫(kù)在獨(dú)立于用戶查詢(xún)的情況下進(jìn)行了離線的信息索引,索引使用獨(dú)特的符號(hào)分析,將程序的語(yǔ)義和描述其行為的約束進(jìn)行映射。

    2.4 其他源代碼搜索方法

    2.4.1 利用程序員行為輔助搜索

    程序員始終是軟件開(kāi)發(fā)活動(dòng)的主體,無(wú)論哪種源代碼搜索方法,都離不開(kāi)程序員,對(duì)程序員習(xí)慣進(jìn)行調(diào)查有助于改進(jìn)搜索方法和搜索體驗(yàn)。通過(guò)研究程序員習(xí)慣,然后填補(bǔ)程序員搜索活動(dòng)細(xì)節(jié),能夠輔助源代碼搜索技術(shù),幫助解決程序員搜索代碼面臨的困難。

    例如在沈玲等人[13]對(duì)于程序員搜索習(xí)慣的研究中發(fā)現(xiàn),程序員一般搜索范圍都很廣,產(chǎn)生很多不相關(guān)的結(jié)果?;谒麄兊挠^察,如果能在返回結(jié)果中包含上下文的信息將是非常有價(jià)值的。因此,在代碼搜索時(shí),如果能在搜索結(jié)果中提供上下文的信息,這將能讓程序員更快地做出是否相關(guān)的判斷。

    2.4.2 基于語(yǔ)法結(jié)構(gòu)和輸入輸出的搜索方法

    要提高代碼搜索的精度,不僅要從代碼的表層字符串含義入手,還要挖掘代碼的功能結(jié)構(gòu)和語(yǔ)義信息,這也是當(dāng)前代碼搜索的難點(diǎn)。通過(guò)分析語(yǔ)法樹(shù)和代碼的輸入輸出可以得到非常豐富的信息,進(jìn)而提高代碼搜索的精度。由此產(chǎn)生了結(jié)合語(yǔ)法結(jié)構(gòu)和輸入輸出的搜索方法。

    該方法通過(guò)分析語(yǔ)法樹(shù)得到代碼的邏輯結(jié)構(gòu)特征,通過(guò)分析源代碼的輸入和輸出信息得到程序的語(yǔ)義功能。將語(yǔ)法與語(yǔ)義信息結(jié)合起來(lái),可以提高搜索的精度。該方法結(jié)合了語(yǔ)法語(yǔ)義信息,為代碼搜索方法提供了新的思路。

    3 結(jié)論

    開(kāi)源軟件正在席卷全球,根據(jù)Black Duck公司提供的數(shù)據(jù),在過(guò)去的一年中,他們統(tǒng)計(jì)了5000個(gè)有開(kāi)源項(xiàng)目的網(wǎng)址,包括了1000億源代碼行,發(fā)現(xiàn)開(kāi)源項(xiàng)目的數(shù)目已經(jīng)翻了一番。

    傳統(tǒng)的基于關(guān)鍵字的源代碼搜索方法已經(jīng)不能滿足人們的需求,由此產(chǎn)生了各種其他的代碼搜索方法,希望更快更好地幫助用戶找到高質(zhì)量代碼。然而目前的源代碼搜索引擎大都是基于文本的搜索,沒(méi)有利用代碼在語(yǔ)法、語(yǔ)義等上的特性,在搜索準(zhǔn)確性方面受到極大的限制。針對(duì)這些現(xiàn)有流行的源代碼搜索引擎存在的問(wèn)題已經(jīng)有越來(lái)越多的學(xué)者投入了該領(lǐng)域的研究。未來(lái)筆者也會(huì)繼續(xù)深入研究開(kāi)源的相關(guān)技術(shù)。

    [1]徐哲,蔡建平.基于開(kāi)源軟件的軟件工程實(shí)施系統(tǒng)研究[J].微計(jì)算機(jī)信息,2009,25(9):178-180.

    [2]HOFFLNANN R,F(xiàn)OGARTY J,WELD D S.Assieme:finding and leveraging implicit references in a web search interface for programmars In proceedings of the 20th annual AC symposium on User interface software and technology[C].Newport,Rhode Island,USA,2007:13-22.

    [3]熊瑞萍,萬(wàn)江平.開(kāi)源軟件的突圍之路——關(guān)于開(kāi)源運(yùn)動(dòng)的若干思考[J].科技管理研究,2009(3):252-255.

    [4]謝世誠(chéng).“開(kāi)源十杰”Michael Tiemann來(lái)華開(kāi)博客[J].微型機(jī)與應(yīng)用,2007,26(11):22.

    [5]劉紅泉,張亮峰.布爾邏輯檢索模型的分析探討[J].現(xiàn)代情報(bào),2004(9):4-6.

    [6]ISHIHARA T,HOTTA K,HIGO Y,et al.Reusing reused code[J].WCRE 2013,Koblenz,Germany:ERA-Track,457-461.

    [7]陸晨.一種基于 Web資源的代碼范例搜索工具[J].科技資訊,2011(33):23-25.

    [8]BAJRACHARYA S,NGO T,LINSTEAD E,et al.Sourcerer:a search engine for open source code supporting structure-based search[C].Proceedings of International Conference on Object-Oriented Programming,2006:25-26.

    [9]陳新.基于程序控制流圖源代碼相似程度分析系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(3):144-147.

    [10]黃麗韶.基于語(yǔ)法結(jié)構(gòu)的源代碼搜索的研究[J].電腦與電信,2013(5):30-33,39.

    [11]LAZZARINI LEMOS O A,CARVALHO de P A,KONISHI G.Using thesaurus-based tag clouds to improve test-driven code search[J].VII Brazilian Symposium on Software Components,2013,46(1):99-108.

    [12]STOLEE K T,ELBAUM S,DOBOS D.Solving the search for source code[J].ACM Transactions on Software Engineering and Methodology,2014,23(3):1-45.

    [13]沈玲,黃熹,李艷陽(yáng).程序員搜索習(xí)慣的研究及對(duì)搜索工具開(kāi)發(fā)的啟示[J].中國(guó)高新技術(shù)企業(yè),2012(27):27-30.

    The role of open source for software engineering and the analysis of the key search technology

    Zhang Kang1,Zeng Guosun2
    (1.Department of Computer Science and Technology,Tongji University,Shanghai 201804,China;2.Tongji Branch,National Engineering&amp;Technology Center of High Performance Computer,Shanghai 201804,China)

    With the rapid development of network technology,open source software is developing rapidly.Open source software has now become the main trend of software development.The success of open source software has played a huge role in the software industry.Meanwhile,with the current sharp increasing in the number of open source software,finding the code you need has become a key issue.Existing code search engines mostly use text-based search technology.However,these search engines don′t take advantage of syntax,semantics.Therefore,the Search results are inaccurate.So,some scholars have proposed to use of the code syntax,semantics and other information to help code search.This article do a more comprehensive description of the role of open source from the many aspects,and make a review of the key open source search technology.

    open source;reuse;search;key words;grammar;semantics

    TP311

    A

    1674-7720(2015)24-0008-05

    張康,曾國(guó)蓀.開(kāi)源對(duì)軟件工程的作用及關(guān)鍵搜索技術(shù)分析[J].微型機(jī)與應(yīng)用,2015,34(24):8-12.

    2015-08-24)

    張康(1991-),通信作者,男,碩士研究生,主要研究方向:程序設(shè)計(jì)方法、并行計(jì)算。E-mail:zkdnfcf@163.com。

    863項(xiàng)目(2009AA012201);國(guó)家自然基金項(xiàng)目(61272107,61202173,61103068);上海市優(yōu)秀學(xué)科帶頭人計(jì)劃項(xiàng)目(10XD1404400);華為創(chuàng)新研究計(jì)劃項(xiàng)目(IRP-2013-12-03);高效能服務(wù)器和存儲(chǔ)技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室開(kāi)放基金項(xiàng)目(2014HSSA10)

    曾國(guó)蓀(1964-),男,博士,博士生導(dǎo)師,教授,主要研究方向:并行計(jì)算,軟件與信息服務(wù)。

    猜你喜歡
    用戶方法
    學(xué)習(xí)方法
    關(guān)注用戶
    可能是方法不對(duì)
    關(guān)注用戶
    關(guān)注用戶
    用對(duì)方法才能瘦
    Coco薇(2016年2期)2016-03-22 02:42:52
    四大方法 教你不再“坐以待病”!
    Coco薇(2015年1期)2015-08-13 02:47:34
    賺錢(qián)方法
    捕魚(yú)
    Camera360:拍出5億用戶
    久久青草综合色| 啦啦啦视频在线资源免费观看| 亚洲欧美清纯卡通| 亚洲图色成人| 亚洲男人天堂网一区| 一级毛片黄色毛片免费观看视频| 精品一区二区三区四区五区乱码 | 久久 成人 亚洲| 性色av一级| 久久精品熟女亚洲av麻豆精品| 国产熟女欧美一区二区| 18禁黄网站禁片午夜丰满| 成人18禁高潮啪啪吃奶动态图| 在现免费观看毛片| 精品国产一区二区三区四区第35| 久久人妻熟女aⅴ| 国产麻豆69| 日日夜夜操网爽| 在线观看www视频免费| 免费看不卡的av| 电影成人av| 又粗又硬又长又爽又黄的视频| 婷婷色综合www| 日本五十路高清| 成人免费观看视频高清| 视频区图区小说| 脱女人内裤的视频| 好男人电影高清在线观看| 人妻一区二区av| 日韩大码丰满熟妇| 成人18禁高潮啪啪吃奶动态图| 久热爱精品视频在线9| 国产淫语在线视频| 1024视频免费在线观看| 男女高潮啪啪啪动态图| 天堂俺去俺来也www色官网| 国产欧美日韩一区二区三 | 汤姆久久久久久久影院中文字幕| 黑人欧美特级aaaaaa片| 免费在线观看影片大全网站 | 国产精品三级大全| 国产亚洲av高清不卡| 一区二区日韩欧美中文字幕| 十八禁人妻一区二区| 丰满人妻熟妇乱又伦精品不卡| 丝袜脚勾引网站| av欧美777| 亚洲av欧美aⅴ国产| 一级片'在线观看视频| 日本欧美国产在线视频| 午夜福利乱码中文字幕| 超色免费av| 中文字幕最新亚洲高清| 美女视频免费永久观看网站| 国产免费现黄频在线看| 日本vs欧美在线观看视频| 国产成人精品久久二区二区免费| 丝袜喷水一区| 久久久亚洲精品成人影院| 啦啦啦在线观看免费高清www| 婷婷色综合www| 国产一区有黄有色的免费视频| 国产熟女欧美一区二区| 国产精品三级大全| 婷婷色av中文字幕| 久久精品人人爽人人爽视色| 成人国产av品久久久| 91麻豆av在线| 狂野欧美激情性bbbbbb| 精品人妻在线不人妻| 亚洲欧美日韩高清在线视频 | 国产精品一区二区精品视频观看| 免费在线观看完整版高清| 免费人妻精品一区二区三区视频| 黄片播放在线免费| 在线亚洲精品国产二区图片欧美| 99国产综合亚洲精品| 成人国产av品久久久| 自拍欧美九色日韩亚洲蝌蚪91| 2021少妇久久久久久久久久久| 在线观看一区二区三区激情| 久久99一区二区三区| 欧美日韩亚洲国产一区二区在线观看 | 天天躁日日躁夜夜躁夜夜| 伊人久久大香线蕉亚洲五| 午夜福利免费观看在线| 久久久久国产一级毛片高清牌| 亚洲一区中文字幕在线| 久久av网站| 成人黄色视频免费在线看| 国产av国产精品国产| 日韩制服丝袜自拍偷拍| 久久人妻熟女aⅴ| 一级片'在线观看视频| 欧美日韩av久久| kizo精华| 日本色播在线视频| 一本综合久久免费| 国产午夜精品一二区理论片| 亚洲天堂av无毛| 国产1区2区3区精品| 久久人人97超碰香蕉20202| 国产免费现黄频在线看| 国产精品人妻久久久影院| 美女国产高潮福利片在线看| 国产一卡二卡三卡精品| 一区二区av电影网| 亚洲精品国产av成人精品| 日本欧美视频一区| 久久性视频一级片| 午夜91福利影院| 日本91视频免费播放| 大型av网站在线播放| 欧美少妇被猛烈插入视频| 亚洲成人免费电影在线观看 | 我要看黄色一级片免费的| 欧美97在线视频| 亚洲激情五月婷婷啪啪| 色视频在线一区二区三区| 晚上一个人看的免费电影| 国产在线免费精品| 亚洲精品国产一区二区精华液| 少妇 在线观看| 一本一本久久a久久精品综合妖精| 69精品国产乱码久久久| 国产精品久久久久成人av| 久久精品熟女亚洲av麻豆精品| 18在线观看网站| 黄色a级毛片大全视频| 伊人久久大香线蕉亚洲五| 狠狠婷婷综合久久久久久88av| 久久久久视频综合| 国产无遮挡羞羞视频在线观看| 欧美激情极品国产一区二区三区| 91麻豆av在线| 欧美 日韩 精品 国产| 国产精品一区二区在线观看99| 国产成人欧美在线观看 | 99香蕉大伊视频| 亚洲国产欧美网| 国产免费又黄又爽又色| 免费观看a级毛片全部| 午夜日韩欧美国产| 午夜免费男女啪啪视频观看| 日本wwww免费看| 老司机深夜福利视频在线观看 | 又大又爽又粗| 丰满少妇做爰视频| 亚洲人成网站在线观看播放| 黄色片一级片一级黄色片| 中文字幕精品免费在线观看视频| 国产精品久久久人人做人人爽| 欧美成狂野欧美在线观看| 大片免费播放器 马上看| 国产亚洲av片在线观看秒播厂| 99国产精品一区二区蜜桃av | 久久久国产精品麻豆| 狂野欧美激情性xxxx| 水蜜桃什么品种好| 老汉色av国产亚洲站长工具| 午夜激情久久久久久久| 三上悠亚av全集在线观看| 亚洲九九香蕉| 久久人人爽av亚洲精品天堂| 丝袜喷水一区| 婷婷色综合大香蕉| 国产精品熟女久久久久浪| 蜜桃在线观看..| 日本一区二区免费在线视频| 亚洲欧美精品综合一区二区三区| 人人妻人人澡人人爽人人夜夜| 色综合欧美亚洲国产小说| 午夜两性在线视频| 51午夜福利影视在线观看| 久久影院123| 91字幕亚洲| 亚洲七黄色美女视频| 在线观看国产h片| 91字幕亚洲| 欧美精品一区二区大全| 久久热在线av| 国产亚洲精品第一综合不卡| 如日韩欧美国产精品一区二区三区| 大片免费播放器 马上看| 亚洲精品久久成人aⅴ小说| 男人操女人黄网站| 手机成人av网站| 中文字幕人妻丝袜一区二区| 国产精品免费大片| 新久久久久国产一级毛片| 色精品久久人妻99蜜桃| 最近手机中文字幕大全| 国产一区二区三区综合在线观看| 午夜久久久在线观看| 午夜视频精品福利| 免费看十八禁软件| 一本久久精品| 久久精品国产亚洲av涩爱| 爱豆传媒免费全集在线观看| 每晚都被弄得嗷嗷叫到高潮| 在线看a的网站| 色视频在线一区二区三区| 天天躁狠狠躁夜夜躁狠狠躁| 国产精品亚洲av一区麻豆| 一二三四在线观看免费中文在| 日韩,欧美,国产一区二区三区| 久久这里只有精品19| 九色亚洲精品在线播放| 欧美激情高清一区二区三区| 久久国产亚洲av麻豆专区| 夜夜骑夜夜射夜夜干| 宅男免费午夜| 成人三级做爰电影| 国产深夜福利视频在线观看| 麻豆av在线久日| 9191精品国产免费久久| 亚洲第一青青草原| 国产精品免费大片| 免费黄频网站在线观看国产| 亚洲天堂av无毛| 国产老妇伦熟女老妇高清| 十八禁网站网址无遮挡| 午夜激情久久久久久久| videos熟女内射| 大香蕉久久成人网| 下体分泌物呈黄色| 久久人妻福利社区极品人妻图片 | 99精国产麻豆久久婷婷| 国产99久久九九免费精品| 欧美97在线视频| 国产极品粉嫩免费观看在线| 欧美日韩黄片免| 国产伦人伦偷精品视频| 久久精品久久精品一区二区三区| 久久久欧美国产精品| 色婷婷av一区二区三区视频| 麻豆乱淫一区二区| 成年美女黄网站色视频大全免费| 热re99久久国产66热| 少妇被粗大的猛进出69影院| 精品久久蜜臀av无| 99久久人妻综合| 亚洲人成电影观看| 亚洲精品一卡2卡三卡4卡5卡 | 久久天躁狠狠躁夜夜2o2o | 婷婷色麻豆天堂久久| 一区二区三区乱码不卡18| 国产成人一区二区在线| 国产视频首页在线观看| 国产淫语在线视频| 可以免费在线观看a视频的电影网站| 黄色 视频免费看| 一级片免费观看大全| netflix在线观看网站| 熟女av电影| 777米奇影视久久| 久久久久久久国产电影| 国产精品成人在线| 亚洲专区国产一区二区| 大型av网站在线播放| 午夜福利视频精品| 黄色视频不卡| xxxhd国产人妻xxx| 高清视频免费观看一区二区| 欧美精品av麻豆av| 人妻 亚洲 视频| 久久久久久亚洲精品国产蜜桃av| 亚洲专区中文字幕在线| 婷婷色综合大香蕉| 国产精品久久久久久精品古装| 永久免费av网站大全| 中文字幕高清在线视频| 国产一区二区激情短视频 | 久久久久久免费高清国产稀缺| 亚洲七黄色美女视频| 亚洲成人手机| www.av在线官网国产| 亚洲精品国产色婷婷电影| 国产成人系列免费观看| 在线av久久热| 国产日韩欧美亚洲二区| 国产麻豆69| 蜜桃国产av成人99| 91国产中文字幕| 下体分泌物呈黄色| cao死你这个sao货| 亚洲一区中文字幕在线| 大话2 男鬼变身卡| 欧美国产精品va在线观看不卡| 久久精品人人爽人人爽视色| 国产成人av激情在线播放| h视频一区二区三区| 18禁裸乳无遮挡动漫免费视频| 午夜精品国产一区二区电影| 波多野结衣一区麻豆| 又紧又爽又黄一区二区| 1024视频免费在线观看| 国产精品久久久久久精品电影小说| 叶爱在线成人免费视频播放| 亚洲av片天天在线观看| 亚洲成色77777| 校园人妻丝袜中文字幕| 午夜福利,免费看| 国产成人啪精品午夜网站| 国产亚洲av片在线观看秒播厂| 日韩伦理黄色片| 精品国产超薄肉色丝袜足j| 欧美精品人与动牲交sv欧美| 欧美 亚洲 国产 日韩一| 视频区欧美日本亚洲| 亚洲精品久久午夜乱码| 十八禁网站网址无遮挡| 亚洲精品久久午夜乱码| 免费在线观看完整版高清| 免费av中文字幕在线| 国产在线观看jvid| 亚洲综合色网址| av在线app专区| 一区二区av电影网| 乱人伦中国视频| 女警被强在线播放| 欧美+亚洲+日韩+国产| 亚洲天堂av无毛| 一区二区三区激情视频| 免费人妻精品一区二区三区视频| 天堂俺去俺来也www色官网| 男女边摸边吃奶| 曰老女人黄片| 精品福利永久在线观看| 欧美日韩国产mv在线观看视频| 欧美激情极品国产一区二区三区| 日日摸夜夜添夜夜爱| 在线精品无人区一区二区三| av网站在线播放免费| 少妇精品久久久久久久| 最新在线观看一区二区三区 | 如日韩欧美国产精品一区二区三区| 秋霞在线观看毛片| 免费高清在线观看视频在线观看| 天堂俺去俺来也www色官网| 亚洲一区二区三区欧美精品| 午夜两性在线视频| 成年人黄色毛片网站| 亚洲熟女毛片儿| 18在线观看网站| 一级黄色大片毛片| 免费高清在线观看视频在线观看| 性色av一级| 一区二区三区精品91| 精品少妇一区二区三区视频日本电影| 欧美亚洲 丝袜 人妻 在线| 亚洲专区国产一区二区| 欧美日韩成人在线一区二区| 在线观看www视频免费| 一区二区三区精品91| 亚洲欧美激情在线| 91国产中文字幕| 天堂俺去俺来也www色官网| 亚洲精品久久久久久婷婷小说| 97精品久久久久久久久久精品| 母亲3免费完整高清在线观看| 9热在线视频观看99| 天天操日日干夜夜撸| 免费日韩欧美在线观看| 纵有疾风起免费观看全集完整版| 日韩 亚洲 欧美在线| 天天躁夜夜躁狠狠久久av| 水蜜桃什么品种好| 十八禁人妻一区二区| 一边摸一边做爽爽视频免费| 国产黄频视频在线观看| 丝袜在线中文字幕| 少妇人妻 视频| www.自偷自拍.com| 日本vs欧美在线观看视频| 精品亚洲乱码少妇综合久久| 在线av久久热| 国产精品香港三级国产av潘金莲 | 日本黄色日本黄色录像| 国产1区2区3区精品| videosex国产| 一本久久精品| 亚洲熟女毛片儿| 免费高清在线观看视频在线观看| 999精品在线视频| 69精品国产乱码久久久| 国产深夜福利视频在线观看| 首页视频小说图片口味搜索 | 亚洲情色 制服丝袜| 久久av网站| 我的亚洲天堂| 女人久久www免费人成看片| 国产免费视频播放在线视频| 99国产综合亚洲精品| 婷婷色综合www| 亚洲av日韩在线播放| 欧美日韩av久久| 亚洲一区二区三区欧美精品| 欧美日韩黄片免| 观看av在线不卡| 中文字幕亚洲精品专区| 亚洲伊人久久精品综合| 国产免费又黄又爽又色| 国产片内射在线| 久久av网站| 亚洲精品久久午夜乱码| 亚洲av电影在线进入| 午夜91福利影院| 狠狠婷婷综合久久久久久88av| www日本在线高清视频| 男女下面插进去视频免费观看| a 毛片基地| 亚洲精品久久久久久婷婷小说| 在线观看www视频免费| 欧美人与性动交α欧美精品济南到| 91字幕亚洲| 女人精品久久久久毛片| 在线观看免费视频网站a站| 丰满人妻熟妇乱又伦精品不卡| 18禁国产床啪视频网站| 亚洲精品av麻豆狂野| 免费高清在线观看日韩| 亚洲精品日本国产第一区| 久久免费观看电影| 免费看av在线观看网站| 国产一区二区在线观看av| 欧美av亚洲av综合av国产av| 久久久精品94久久精品| 久久精品国产亚洲av涩爱| 91精品伊人久久大香线蕉| 99精国产麻豆久久婷婷| 亚洲欧美中文字幕日韩二区| 欧美亚洲 丝袜 人妻 在线| 国产成人欧美| 99热网站在线观看| 一区福利在线观看| 亚洲情色 制服丝袜| 国产在线免费精品| 2021少妇久久久久久久久久久| 亚洲av欧美aⅴ国产| 亚洲三区欧美一区| bbb黄色大片| 天天躁狠狠躁夜夜躁狠狠躁| 精品一区在线观看国产| 九草在线视频观看| 高清欧美精品videossex| 美女大奶头黄色视频| 黄网站色视频无遮挡免费观看| 99香蕉大伊视频| 涩涩av久久男人的天堂| 国产精品三级大全| 久久久久精品人妻al黑| 亚洲欧美清纯卡通| 亚洲精品日韩在线中文字幕| 亚洲专区中文字幕在线| 777米奇影视久久| 亚洲视频免费观看视频| 久久 成人 亚洲| 少妇裸体淫交视频免费看高清 | 国产深夜福利视频在线观看| 午夜激情久久久久久久| 男女床上黄色一级片免费看| 欧美日韩国产mv在线观看视频| 99国产精品一区二区蜜桃av | 操美女的视频在线观看| 午夜福利乱码中文字幕| 看免费av毛片| 中文字幕另类日韩欧美亚洲嫩草| 亚洲专区国产一区二区| 国产淫语在线视频| 两人在一起打扑克的视频| 美女中出高潮动态图| 两个人看的免费小视频| 国产免费现黄频在线看| 9热在线视频观看99| 亚洲美女黄色视频免费看| 日韩制服丝袜自拍偷拍| 美女扒开内裤让男人捅视频| 国产精品二区激情视频| 欧美日韩国产mv在线观看视频| 人成视频在线观看免费观看| 黄色 视频免费看| 成人国产av品久久久| 中文字幕亚洲精品专区| 91麻豆av在线| 99re6热这里在线精品视频| 亚洲欧美一区二区三区久久| 美女大奶头黄色视频| 国产一级毛片在线| 爱豆传媒免费全集在线观看| 国产伦理片在线播放av一区| 亚洲国产最新在线播放| 麻豆av在线久日| 18禁观看日本| 国产精品免费大片| 欧美激情极品国产一区二区三区| 免费日韩欧美在线观看| 午夜av观看不卡| av天堂在线播放| 国产精品三级大全| 成人免费观看视频高清| a 毛片基地| 99香蕉大伊视频| 日本欧美视频一区| 精品少妇久久久久久888优播| 香蕉丝袜av| 亚洲欧美激情在线| 桃花免费在线播放| 国产91精品成人一区二区三区 | av国产精品久久久久影院| 久久人妻福利社区极品人妻图片 | 精品久久久久久电影网| 成人午夜精彩视频在线观看| 美女福利国产在线| av网站免费在线观看视频| 欧美 日韩 精品 国产| 国产一区亚洲一区在线观看| 国产精品二区激情视频| 欧美 亚洲 国产 日韩一| 中文欧美无线码| 97在线人人人人妻| 成人18禁高潮啪啪吃奶动态图| 成人亚洲欧美一区二区av| 久久国产精品影院| 日韩制服骚丝袜av| 久久天堂一区二区三区四区| 丰满少妇做爰视频| 大香蕉久久成人网| tube8黄色片| 精品一区二区三区av网在线观看 | 巨乳人妻的诱惑在线观看| 人人妻人人添人人爽欧美一区卜| 精品国产乱码久久久久久男人| 建设人人有责人人尽责人人享有的| 两人在一起打扑克的视频| 欧美老熟妇乱子伦牲交| 一本久久精品| 国产精品一国产av| 欧美97在线视频| 亚洲 欧美一区二区三区| 国产成人精品久久二区二区91| 每晚都被弄得嗷嗷叫到高潮| 熟女少妇亚洲综合色aaa.| 国产一区二区三区综合在线观看| 亚洲一区中文字幕在线| 国产极品粉嫩免费观看在线| 午夜福利一区二区在线看| 亚洲中文日韩欧美视频| 婷婷色麻豆天堂久久| 国产日韩欧美亚洲二区| 青青草视频在线视频观看| 成年美女黄网站色视频大全免费| 国产成人欧美| 国产精品三级大全| 国产精品一区二区在线观看99| 侵犯人妻中文字幕一二三四区| 国产精品秋霞免费鲁丝片| 免费看不卡的av| 国产在视频线精品| 亚洲天堂av无毛| 久久精品熟女亚洲av麻豆精品| 真人做人爱边吃奶动态| 这个男人来自地球电影免费观看| 91成人精品电影| 午夜免费鲁丝| 高清黄色对白视频在线免费看| 午夜精品国产一区二区电影| av一本久久久久| 最近中文字幕2019免费版| 一区二区三区激情视频| 大码成人一级视频| 欧美激情极品国产一区二区三区| 国产精品免费视频内射| 两人在一起打扑克的视频| 亚洲成av片中文字幕在线观看| 成年人午夜在线观看视频| 黄色片一级片一级黄色片| 国产欧美日韩一区二区三 | 韩国高清视频一区二区三区| 久久久久视频综合| 大香蕉久久网| 秋霞在线观看毛片| 爱豆传媒免费全集在线观看| 在线天堂中文资源库| 一二三四在线观看免费中文在| 操美女的视频在线观看| 一二三四社区在线视频社区8| 大片免费播放器 马上看| 满18在线观看网站| 天天躁夜夜躁狠狠躁躁| 搡老乐熟女国产| 欧美xxⅹ黑人| 自线自在国产av| 久久热在线av| 99国产精品一区二区蜜桃av | 亚洲欧洲日产国产| 精品国产一区二区三区久久久樱花| 超碰97精品在线观看| 一边亲一边摸免费视频| 国产免费现黄频在线看| 久久精品久久久久久久性| 日韩av免费高清视频| 成人亚洲精品一区在线观看| 一区二区三区激情视频| 国产亚洲欧美精品永久| 国产高清不卡午夜福利| 国产无遮挡羞羞视频在线观看| 熟女少妇亚洲综合色aaa.| 成在线人永久免费视频| 黄色 视频免费看| 精品一区在线观看国产| 成年美女黄网站色视频大全免费| 亚洲 国产 在线| 久久久久久久久免费视频了| 欧美精品人与动牲交sv欧美|