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

    數(shù)據(jù)驅(qū)動的軟件開發(fā)者智能協(xié)作技術(shù)

    2021-01-21 04:30:04張建孟祥鑫孫海龍王旭劉旭東
    大數(shù)據(jù) 2021年1期
    關(guān)鍵詞:開發(fā)者協(xié)作智能

    張建,孟祥鑫,孫海龍,王旭,劉旭東

    1. 軟件開發(fā)環(huán)境國家重點實驗室(北京航空航天大學(xué)),北京 100191;2. 北京航空航天大學(xué)大數(shù)據(jù)科學(xué)與腦機智能高精尖創(chuàng)新中心,北京 100191;3. 北京航空航天大學(xué)計算機學(xué)院,北京 100191

    1 引言

    軟件開發(fā)是以“開發(fā)者”為中心的智力密集型活動。盡管在模型驅(qū)動和人工智能等技術(shù)的推動下,部分開發(fā)任務(wù)可以實現(xiàn)一定程度的自動處理,但是由于軟件開發(fā)的高度復(fù)雜性,大多數(shù)開發(fā)任務(wù)尚難以自動完成,開發(fā)者依然是軟件開發(fā)過程中的核心要素。不僅如此,軟件開發(fā)的復(fù)雜性使得大部分軟件開發(fā)任務(wù)難以由單個開發(fā)人員獨立完成,通常需要開發(fā)者群體的共同協(xié)作。例如,據(jù)報道,Windows 7的開發(fā)涉及2 000多人共25個子團隊的協(xié)作。特別是,開源軟件、眾包等基于互聯(lián)網(wǎng)的軟件開發(fā)模式涉及的開發(fā)者數(shù)量龐大,且開發(fā)者相互之間了解有限,因此,建立開發(fā)者之間的高效協(xié)作成為更加迫切的需求。例如,開源社區(qū)GitHub擁有5 600多萬個注冊用戶,其中拉取請求(pull request)機制是GitHub倡導(dǎo)的社會化編程的核心內(nèi)容,但如果沒有推薦技術(shù)的支持,一個拉取請求得到用戶評論的平均時間會延長12天[1];軟件開發(fā)問答社區(qū)Stack Overflow匯聚了1 300多萬個用戶,但仍然有超過620萬個問題(約占總問題的30%)未得到有效回答,其主要原因是缺乏針對問題進行回答者推薦的支持??傊?,開發(fā)者群體在開發(fā)過程中的協(xié)作效率與效果在很大程度上影響著軟件的開發(fā)效率和質(zhì)量。因此,研究開發(fā)者的能力、行為及其相互影響,并提供相應(yīng)的協(xié)作支撐方法具有重要的意義。

    圖靈獎獲得者Frederick P. Brooks在其《人月神話》一書中明確指出:簡單地基于“人月”來度量和計劃軟件開發(fā)任務(wù)存在不 足[2]。例如,軟件開發(fā)成本會隨著開發(fā)人數(shù)和時間的變化而發(fā)生變化,但進度卻可能變緩甚至停滯。這充分說明,僅考慮開發(fā)者數(shù)量和開發(fā)時間而忽視開發(fā)任務(wù)的復(fù)雜性以及開發(fā)者的協(xié)作效率是不可行的。實際上,廣義的開發(fā)者群體協(xié)作主要研究以開發(fā)者為中心的軟件開發(fā)過程中各種要素之間的連接、交互和作用機理,以提升人與人、人與工具、人與數(shù)據(jù)、數(shù)據(jù)與工具之間的協(xié)作效率,從而提高軟件開發(fā)的效率和質(zhì)量。而狹義的群體協(xié)作主要指開發(fā)者群體之間的協(xié)作,一般體現(xiàn)在4個方面:直接的溝通與交流、開發(fā)任務(wù)的分配、開發(fā)結(jié)果的匯聚、開發(fā)資源的重用。在現(xiàn)有的軟件開發(fā)中,開發(fā)者之間的協(xié)作多依賴于開發(fā)者的主觀經(jīng)驗進行,協(xié)作效率低,缺乏智能化的支持。例如,在開發(fā)者的溝通與交流方面,交流的對象往往局限于開發(fā)團隊內(nèi)相互熟悉的人員,但是團隊外或者互聯(lián)網(wǎng)上可能存在大量潛在的協(xié)作者;在開發(fā)任務(wù)的分配上,一般由技術(shù)負(fù)責(zé)人依據(jù)其對開發(fā)人員和開發(fā)任務(wù)的主觀了解進行任務(wù)分配,缺乏客觀準(zhǔn)確的任務(wù)分配方法;在開發(fā)結(jié)果的匯聚上,多采用版本管理工具進行結(jié)果的聚合,這些工具假定每個開發(fā)者的貢獻是可信的,在出現(xiàn)錯誤甚至惡意貢獻的情況下,需要復(fù)雜的回滾等操作;在開發(fā)資源的重用方面,往往局限于開發(fā)團隊內(nèi)部積累的軟件資源庫,而缺乏對互聯(lián)網(wǎng)上更大范圍的資源的重用支持。因此,基于互聯(lián)網(wǎng)中的海量開發(fā)者相關(guān)數(shù)據(jù),近年來大量的工作研究了面向特定開發(fā)任務(wù)的開發(fā)者推薦和開發(fā)資源推薦。一方面,開發(fā)者推薦面向開發(fā)過程中的不同階段,推薦合適的開發(fā)人員,包括代碼評審者推薦[3-4]、開發(fā)者以及開發(fā)團隊推薦[5-7]等;另一方面,開發(fā)資源推薦推薦的是開發(fā)過程中需要的軟件資源,包括應(yīng)用程序接口(application programming interface,API)推薦[8]、代碼推薦[9-10]和代碼修復(fù)補丁推薦[11]等。然而,這類工作只關(guān)注與特定任務(wù)相關(guān)的歷史數(shù)據(jù),忽略了對開發(fā)者及其協(xié)作關(guān)系的分析,使得推薦性能受到限制。此外,目前還沒有形成系統(tǒng)化的軟件開發(fā)者智能協(xié)作環(huán)境,不能很好地支撐高效的軟件協(xié)作開發(fā)。

    針對軟件開發(fā)中開發(fā)者協(xié)作面臨的問題,本文以提高開發(fā)者的協(xié)作效率為目標(biāo),研究智能化的群體協(xié)作方法,并開發(fā)智能化的協(xié)作開發(fā)支撐環(huán)境。其核心是通過對互聯(lián)網(wǎng)及企業(yè)內(nèi)等積累的軟件開發(fā)大數(shù)據(jù)進行分析,對開發(fā)者的能力特征和歷史協(xié)作行為等進行定性和定量的分析,進而面向特定的軟件開發(fā)任務(wù)提供智能化的協(xié)作支持。首先,收集和匯聚大量的軟件開發(fā)數(shù)據(jù),學(xué)習(xí)開發(fā)者的能力特征,并挖掘其中隱含的協(xié)作關(guān)系,從而建立以開發(fā)者為中心的知識庫。第二,在此基礎(chǔ)上,一方面,根據(jù)開發(fā)者能力和行為等,突破開發(fā)者推薦和智能的任務(wù)分配關(guān)鍵技術(shù),提高軟件開發(fā)中開發(fā)者“顯式協(xié)作”的效率;另一方面,基于開發(fā)者關(guān)聯(lián)關(guān)系進行分析,突破軟件資源(代碼、問答等)智能推薦和重用關(guān)鍵技術(shù),以提高基于軟件資源的開發(fā)者“隱式協(xié)作”的效率。第三,在關(guān)鍵技術(shù)突破的基礎(chǔ)上,研發(fā)相應(yīng)的智能協(xié)作工具集,面向開發(fā)人員建立開放敏捷的自組織式協(xié)作支撐環(huán)境,實現(xiàn)智能任務(wù)分配和資源推薦等。

    總體來說,本文的主要貢獻如下:

    ● 提出了面向軟件開發(fā)的智能化群體協(xié)作的研究框架,給出了其中的核心研究問題;

    ● 提出了開發(fā)者能力模型與協(xié)作關(guān)系模型,并基于從互聯(lián)網(wǎng)上收集的軟件開發(fā)大數(shù)據(jù)構(gòu)建了開發(fā)者知識圖譜;

    ● 在開發(fā)者知識圖譜的基礎(chǔ)上,針對開發(fā)者的智能推薦和開發(fā)資源推薦,提出了若干關(guān)鍵技術(shù),并基于真實數(shù)據(jù)進行了實驗評估;

    ● 研制了一個智能協(xié)作開發(fā)支撐環(huán)境的系統(tǒng),并開展了應(yīng)用實踐。

    2 智能協(xié)作框架

    開發(fā)者協(xié)作一直是軟件開發(fā)中的關(guān)鍵問題。研究表明,在大的軟件開發(fā)項目中,開發(fā)人員花費70%以上的時間進行相互協(xié)作[12],同時也有研究表明,在有些大型軟件開發(fā)中,團隊性的活動占85%以上[13]。早期的軟件開發(fā)活動大多局限于企業(yè)內(nèi)部,因此相關(guān)的研究工作主要集中于提供諸如版本控制等工具來實現(xiàn)開發(fā)者共同開發(fā)軟件。隨著互聯(lián)網(wǎng)的發(fā)展和成熟,尤其是在社交媒體與社交網(wǎng)絡(luò)(social network)[14]被廣泛應(yīng)用到軟件開發(fā)中后,大量的研究開始集中于對基于互聯(lián)網(wǎng)軟件資源的開發(fā)者的協(xié)作分析[15-19]。

    本文在現(xiàn)有研究的基礎(chǔ)上,提出了智能協(xié)作支撐環(huán)境的框架:收集軟件開發(fā)者協(xié)作開發(fā)產(chǎn)生的多源異構(gòu)大數(shù)據(jù),提取出其中蘊含的軟件開發(fā)知識,并以知識圖譜的形式進行組織,進一步借助于搜索、推薦等技術(shù),將這些知識應(yīng)用于軟件開發(fā)活動,從而實現(xiàn)軟件開發(fā)者的智能協(xié)作,最終為提高軟件開發(fā)效率與質(zhì)量提供支撐。整體的研究框 架如圖1所示。

    圖1 面向軟件開發(fā)的智能化群體協(xié)作框架

    在該框架中,開發(fā)者相關(guān)知識是智能協(xié)作開發(fā)環(huán)境的關(guān)鍵所在。具體來講,圍繞開發(fā)者知識的提取與利用,需要解決4類關(guān)鍵問題。

    ● 數(shù)據(jù)源。從數(shù)據(jù)源增量爬取的數(shù)據(jù)是多源異構(gòu)的,這種原始數(shù)據(jù)包含雜亂無章的信息。這些信息對于推薦或搜索層來說價值很低,不能被直接使用,需要對這些數(shù)據(jù)進行有效管理和知識提取。

    ● 開發(fā)者知識庫??紤]到上層的軟件開發(fā)者知識需求,知識提取的技術(shù)主要包括兩種:開發(fā)者能力評估技術(shù)和開發(fā)者關(guān)系挖掘技術(shù)。開發(fā)者能力評估技術(shù)的核心是建立定性定量相結(jié)合的多維開發(fā)者能力模型,以全面地刻畫開發(fā)者的能力;開發(fā)者關(guān)系挖掘技術(shù)則主要依賴協(xié)作關(guān)系模型,包含開發(fā)者-開發(fā)者關(guān)系以及開發(fā)者-軟件資源的關(guān)聯(lián)關(guān)系。于是構(gòu)成了開發(fā)者能力、開發(fā)者關(guān)系以及開發(fā)資源的知識統(tǒng)一體,其表現(xiàn)形式為開發(fā)者知識圖譜。

    ● 推薦與搜索。構(gòu)建知識庫的目標(biāo)是將其中的知識應(yīng)用到軟件開發(fā)過程中,具體的方式包括面向智能協(xié)作的知識搜索以及知識推薦。其中,搜索技術(shù)既包括開發(fā)者及其關(guān)聯(lián)資源的搜索,也包括開發(fā)者的能力以及開發(fā)者之間的關(guān)系搜索;智能推薦是借助于開發(fā)者能力模型知識和協(xié)作關(guān)系模型的開發(fā)者推薦與開發(fā)資源推薦技術(shù)。

    ● 工具集。其主要包括開發(fā)者推薦和開發(fā)資源推薦工具,同時,在開發(fā)者使用這些工具進行軟件開發(fā)的過程中,通過開發(fā)行為監(jiān)控與感知,又能夠擴充或更新開發(fā)者知識圖譜中的知識。

    在開發(fā)者知識的驅(qū)動下,這4種關(guān)鍵技術(shù)問題形成了閉環(huán)的智能協(xié)作環(huán)境,即數(shù)據(jù)獲取→開發(fā)者知識庫的構(gòu)建→知識搜索與推薦→智能釋放工具集→開發(fā)者知識圖譜的更新。

    因此,智能協(xié)作的核心是對開發(fā)者知識的利用。本文提出了一種新的智能協(xié)作分析方法,即開發(fā)者知識圖譜(developer knowledge graph)。該方法結(jié)合了開發(fā)者能力建模和開發(fā)者協(xié)作分析的方法,形成了一體化的開發(fā)者協(xié)作知識網(wǎng)絡(luò),貫穿了整個智能協(xié)作環(huán)境。

    3 開發(fā)者知識圖譜

    開發(fā)者知識圖譜是將開發(fā)者作為知識結(jié)點、將開發(fā)者協(xié)作關(guān)系作為邊的知識圖譜。其中,結(jié)點描述了開發(fā)者的能力特征,邊描述了開發(fā)者之間的協(xié)作關(guān)系,因此定義開發(fā)者能力模型和開發(fā)者協(xié)作關(guān)系模型是構(gòu)建知識圖譜的關(guān)鍵。在本文的工作中,為了覆蓋更多的開發(fā)知識,筆者也將開發(fā)資源結(jié)點以及開發(fā)者與開發(fā)資源的關(guān)系納入了知識圖譜。

    3.1 開發(fā)者能力模型

    現(xiàn)有的開發(fā)者能力評估方法存在一些不足[20-22]:第一,大多數(shù)的能力評估方法只注重對開發(fā)者的開發(fā)語言技能的抽取與評分,具有一定的片面性;第二,現(xiàn)有方法沒有綜合考慮開發(fā)者在開發(fā)活動中表現(xiàn)出的個人貢獻與團隊合作能力;第三,開發(fā)者的能力不僅體現(xiàn)在個人編寫的代碼中,也體現(xiàn)在不同的開發(fā)活動(如問答、測試等)中。因此,如何提供一種通用的模型來刻畫各類型開發(fā)者的能力是需要解決的一個難題。

    針對以上問題,本文提出了一種新的開發(fā)者能力模型,從多個維度度量開發(fā)者的能 力,如圖2所示。

    本文刻畫了開發(fā)者能力的3個主要方面,并且基于度量的靈活性,建立了開發(fā)者能力樹。具體來說,樹的根結(jié)點為開發(fā)者能力,其子樹分別為專業(yè)技能(skill)、貢獻度(contribution)以及協(xié)作度(collaboration)。本文對能力的刻畫以統(tǒng)計方法為基礎(chǔ),該方法更適用于大型社區(qū)(如GitHub、Stack Overflow),且可解釋性較強。下面分別對這3個維度進行具體說明。

    專業(yè)技能表示開發(fā)者掌握的開發(fā)技能,包括編程語言、技術(shù)框架以及操作系統(tǒng)等,主要考察開發(fā)者在開發(fā)活動中是否具備某項技能以及能否符合任務(wù)需求,因此,以key:value的形式表示。這里key和value分別以定性和定量的方式表示開發(fā)者的專業(yè)技能掌握程度。例如,對于掌握J(rèn)ava、Python語言以及Spring框架并且熟悉Linux的開發(fā)者,其專業(yè)技能可以表示為{Java:6,Python:4,Spring:6,Linux:2}集合的形式。在該集合中,key為Java的技能的評分為6,在某種評分體系下,表示開發(fā)者能夠較熟練地掌握J(rèn)ava語言,其他技能依此類推。關(guān)于技能的抽取和評分,可以集成已有的研究方法。本文針對活躍在不同社區(qū)的開發(fā)者構(gòu)建了簡單易行的評分體系。例如,在Stack Overflow社區(qū)中,從開發(fā)者回答的問題中抽取出技能標(biāo)簽集合,記為Γ。對于每 個技能標(biāo)簽T∈Γ,找出開發(fā)者在該標(biāo)簽下的回答集合A=∪αi,每個回答有對應(yīng)的回答得分si,則開發(fā)者在該技能標(biāo)簽T下的技能得分為類似地,在其他社區(qū)中也主要采用基于統(tǒng)計分析的方式對開發(fā)者技能進行評估。

    貢獻度是指開發(fā)者在特定社區(qū)中對該社區(qū)作出的貢獻,主要考察開發(fā)者在社區(qū)中的活躍程度,同時也是對其熟練度的刻畫。這些貢獻指的是開發(fā)者的各項活動,如在GitHub開源社區(qū)中參與項目或提交代碼、在Stack Overflow問答社區(qū)中回答問題等。為了客觀地度量各個社區(qū)中開發(fā)者的貢獻,筆者首先抽取開發(fā)者不同貢獻的集合C={Ci|i=1,2,3,…,N}組成該開發(fā)者的貢獻的key集合,對于每一個key,即Ci,以屬于該key的活動集合的累加數(shù)目Vi組成在該key下的貢獻值。例如,開發(fā)者D在GitHub中提交了m次代碼,則其貢獻度表示為{commit:m},其他貢獻也是同樣的計算方式。

    協(xié)作度指開發(fā)者在特定社區(qū)的開發(fā)活動中與其他開發(fā)者的關(guān)聯(lián)關(guān)系,用于考察開發(fā)者與其他開發(fā)者之間的團隊協(xié)作能力。開發(fā)者在特定社區(qū)中共同完成任務(wù)或者互相關(guān)注(follow),形成了諸多關(guān)系,主要包括社交關(guān)系與協(xié)作關(guān)系。例如,在GitHub中,開發(fā)者可以關(guān)注其他開發(fā)者,也可以被關(guān)注,因此產(chǎn)生了較為緊密的社交關(guān)系。由于每個社區(qū)的協(xié)作方式存在差異,在計算協(xié)作度時仍然按照統(tǒng)計協(xié)作頻度的方式對開發(fā)者的協(xié)作能力進行評價,以保持模型的通用性。

    按照上述方法,能夠得到每個維度下的詳細(xì)評分。對于這些詳細(xì)評分,可按照該子樹的分支的權(quán)重進行加權(quán)計算得到整個維度的評分。以某個開發(fā)者的專業(yè)技能為例,假設(shè)其中包含N個技能標(biāo)簽的得分,記為P2、P3??紤]不同的側(cè)重點,每個維度又可以有權(quán)重μ1、μ2、μ3。于是,該開發(fā)者的總得分為:對應(yīng)的得分為按照某種任務(wù)需求,其技能權(quán)重為則其專業(yè)技能的整體得分為:

    同樣,可得到貢獻度和協(xié)作度維度下

    圖2 軟件開發(fā)者能力模型

    這項得分給出了開發(fā)者的整體能力。

    3.2 開發(fā)者協(xié)作關(guān)系模型

    開發(fā)者協(xié)作關(guān)系分析與開發(fā)者能力評估同等重要,它們都是知識凝練的結(jié)果。從宏觀的角度來看,本文的開發(fā)者協(xié)作關(guān)系的表示方法與開發(fā)者網(wǎng)絡(luò)是相似的。然而,現(xiàn)有的研究提出的開發(fā)者網(wǎng)絡(luò)僅僅是開發(fā)者協(xié)作關(guān)系模型的一部分,因為其往往只分析了某一種協(xié)作關(guān)系,如共同修改某一文件等。另外,現(xiàn)有方法也未對協(xié)作關(guān)系強度進行度量。

    本文提出了一種開發(fā)者協(xié)作模型,即抽象出的跨社區(qū)的協(xié)作關(guān)系模型,該模型在各個社區(qū)中均是適用的。其在知識圖譜中被表示為開發(fā)者結(jié)點之間的邊,這些邊包含的協(xié) 作關(guān)系如圖3所示。

    按照協(xié)作關(guān)系類型,將所有的協(xié)作關(guān)系劃分為三大類,分別是社交關(guān)系、直接協(xié)作與間接協(xié)作。在每個類型下又包含了詳細(xì)的協(xié)作關(guān)系,將關(guān)系類型和關(guān)系強度作為協(xié)作關(guān)系的屬性。在開發(fā)者的開發(fā)活動中,社交關(guān)系是指開發(fā)者之間的在特定社區(qū)中的人際關(guān)系。雖然與開發(fā)活動并不直接相關(guān),但是社交關(guān)系會對軟件開發(fā)效率產(chǎn)生重要影響。例如,社交關(guān)系又可以分為follow關(guān)系和in organization關(guān)系等,分別表示開發(fā)者之間的互相關(guān)注和開發(fā)者隸屬于同一個組織等。直接協(xié)作指開發(fā)者之間的直接交互關(guān)系,即兩個開發(fā)者面對同一任務(wù)需要緊密的溝通合作。例如開發(fā)者D1與開發(fā)者D2之間存在answer to和call API的關(guān)系,則分別表示D1回答了D2提出的問題、D1實現(xiàn)某些功能時調(diào)用了D2提供的接口,number表示這些協(xié)作的頻度。此外,開發(fā)者共同修改代碼文件、對同一代碼的開發(fā)和測試也屬于這種緊密型的協(xié)作關(guān)系,其他類似的協(xié)作關(guān)系還有很多。間接協(xié)作指開發(fā)者之間的間接交互關(guān)系。相對于直接協(xié)作來說,它是一種較弱的協(xié)作關(guān)系,但對于整體的開發(fā)任務(wù)也起到了一定的作用。例如開發(fā)者D1與開發(fā)者D2都回答了某個問題,或者都向某個開源項目提交了自己的代碼,則他們之間分別構(gòu)成了co-answer和co-commit的關(guān)系。同樣,這里number用來表示間接協(xié)作的關(guān)系發(fā)生的頻度。類似的協(xié)作關(guān)系還有眾包社區(qū)中開發(fā)者共同參與某一項目中的不同任務(wù)等。

    圖3 軟件開發(fā)者協(xié) 作關(guān)系模型

    此外,筆者還提出了眾包社區(qū)中開發(fā)者能力演化模型[23]、基于知識追蹤的眾包軟件開發(fā)者能力評估方法[24]、基于程序代碼分析的開發(fā)者能力刻畫方法[25]、實體級的開發(fā)者情感分析方法[26]和跨社區(qū)的軟件開發(fā)者畫像方法[27]等。

    4 基于開發(fā)者知識圖譜的智能推薦方法

    在大規(guī)模軟件開發(fā)歷史數(shù)據(jù)的基礎(chǔ)上,借助對開發(fā)者進行建模分析形成的開發(fā)者知識圖譜,可提供開發(fā)者推薦與開發(fā)資源推薦兩種智能服務(wù)。

    (1)開發(fā)者推薦

    解決當(dāng)前軟件團隊組織的相對固化、依靠主觀經(jīng)驗、準(zhǔn)確性不高問題的核心是根據(jù)任務(wù)特征實現(xiàn)開發(fā)者的動態(tài)檢索和智能推薦。因為開發(fā)任務(wù)具有自己的特性,開發(fā)者能力是復(fù)雜多維的,開發(fā)活動之間存在關(guān)聯(lián)依賴,所以開發(fā)者的智能推薦具有個性化需求、復(fù)雜度高的特點。本文將介紹面向編碼、測試以及軟件開發(fā)問答等任務(wù)的開發(fā)者智能推薦和任務(wù)分配方法,實現(xiàn)對軟件開發(fā)任務(wù)需求與開發(fā)者的智能匹配。基于開發(fā)者知識圖譜中的開發(fā)者能力建模與協(xié)作關(guān)系分析,結(jié)合傳統(tǒng)機器學(xué)習(xí)以及深度學(xué)習(xí)方法,筆者研究了開發(fā)者[28-31]、開發(fā)團隊[32]的智能推薦。例如,針對軟件問答社區(qū)中越來越多的問題無法得到及時回答導(dǎo)致的開發(fā)效率下降的情況,筆者提出了一種新的利用文本潛在隱含主題的回答者推薦方法[28],為了提高推薦的可信度和準(zhǔn)確率,利用開發(fā)者之間的協(xié)作關(guān)系優(yōu)化推薦效果,并以此為核心設(shè)計了一種有較高準(zhǔn)確率和可用性的面向軟件開發(fā)的回答者推薦系統(tǒng)。這里僅以眾包軟件開發(fā)為代表性案例(見第4.1節(jié)和第4.2節(jié)),詳細(xì)闡述其中的開發(fā)者以及開發(fā)團隊智能推薦技術(shù)。

    (2)開發(fā)資源推薦

    重用軟件開發(fā)社區(qū)中積累的開發(fā)資源(如代碼、問答知識等)是提高軟件開發(fā)效率的重要途徑,但這些資源語義結(jié)構(gòu)復(fù)雜、數(shù)據(jù)量大,使得已有的推薦方法準(zhǔn)確度不高、性能較低,同時資源的檢索質(zhì)量也較差,給開發(fā)者獲取開發(fā)資源帶來了很多困難。筆者通過檢索開發(fā)者知識圖譜中與開發(fā)者關(guān)聯(lián)的海量軟件資源數(shù)據(jù),提出了對這些結(jié)構(gòu)復(fù)雜的數(shù)據(jù)進行語義解析的方法,為開發(fā)者推薦在開發(fā)過程中所需要的資源,從而實現(xiàn)以開發(fā)資源為中心的隱式協(xié)作開發(fā)。具體來說,筆者研究了上下文感知的編程問答資源推薦[33]、面向高效編程的API使用模式推薦[34]、軟件問答社區(qū)中的Tag推薦[35]等技術(shù)。本文以面向高效編程的API使用模式推薦為例(見第4.3節(jié)),闡述開發(fā)者資源智能推薦技術(shù)。

    4.1 面向眾包軟件開發(fā)的開發(fā)團隊推薦技術(shù)

    近年來,基于互聯(lián)網(wǎng)的眾包軟件開發(fā)成為一種新型的軟件開發(fā)模式,為管理者提供了發(fā)布需求的平臺,也為開發(fā)者提供了自由選擇開發(fā)任務(wù)的機會。然而,相比于數(shù)據(jù)標(biāo)注等傳統(tǒng)任務(wù),軟件開發(fā)更加復(fù)雜,因此往往需要團隊協(xié)作?,F(xiàn)有的團隊推薦算法僅適用于管理者將任務(wù)指派給特定開發(fā)團隊的場景,不適用于眾包軟件開發(fā)任務(wù)場景。本文提出了一種基于開發(fā)者隊友選擇偏好的團隊推薦算法[32],根據(jù)軟件開發(fā)任務(wù)的技能需求與人員需求,考慮各開發(fā)者的隊友選擇偏好,為開發(fā)者推薦高協(xié)作意愿團隊,以確保團隊的組建成功率。

    本文的團隊推薦算法首先對開發(fā)者進行能力建模和親密度建模,然后對協(xié)作意愿影響因素建模,分析開發(fā)者隊友選擇偏好,基于開發(fā)者的隊友選擇偏好建模團隊協(xié)作意愿,設(shè)計一種基于貪心策略的近似算法,為開發(fā)者推薦高協(xié)作意愿的團隊,以確保團隊組建成功率,且適用于大規(guī)模眾包軟件開發(fā)平臺。本文個性化團隊推薦 算法框架如圖4所示,主要由以下3個模塊構(gòu)成。

    ● 數(shù)據(jù)模型:該模塊對開發(fā)者進行能力建模和親密度建模。

    ● 團隊協(xié)作意愿建模:該模塊首先給出協(xié)作意愿影響因素的數(shù)學(xué)表示,然后分析開發(fā)者的隊友選擇偏好,基于開發(fā)者的隊友選擇偏好建模團隊協(xié)作意愿。

    ● 近似算法:該近似算法基于貪心策略為開發(fā)者推薦高協(xié)作意愿的團隊,適用于大規(guī)模眾包軟件開發(fā)平臺。

    圖4 個性化團隊推薦算法框架

    實驗 結(jié)果表明,本文算法推薦結(jié)果明顯優(yōu)于親密度優(yōu)先(closeness first,CF)、能力提升優(yōu)先(expertise gain first,EGF)、能力差異優(yōu)先(expertise difference first,EDF)3個對比方法,本文算法推薦出的開發(fā)團隊存在更高的團隊協(xié)作意愿,保證了開發(fā)者的團隊組建成功率。本文同時考慮了影響團隊協(xié)作意愿的3個因素,而CF、EGF、EDF方法僅考慮了其中一個因素。Optimal方法的推薦結(jié)果是理論最優(yōu)解,該方法遍歷開發(fā)者集合以找到推薦的理論最優(yōu)解,但其算法時間復(fù)雜度為O(nN)(其中,n表示眾包開發(fā)者集合大小,N表示團隊規(guī)模),復(fù)雜度高,當(dāng)數(shù)據(jù)規(guī)模很大時,無法達到實時推薦的效果,不適用于大規(guī)模眾包軟件開發(fā)平臺。本文提出的近似算法在保證推薦有效性的同時,算法的時間復(fù)雜度為O(n·N)(其中,n表示眾包開發(fā)者集合大小,N表示團隊規(guī)模),確保了推薦的效率。

    4.2 基于元學(xué)習(xí)的眾包軟件開發(fā)者推薦方法

    盡管眾包軟件開發(fā)模式日益發(fā)展,但仍然存在一個典型的問題,即開發(fā)者與任務(wù)的匹配問題。對于具有嚴(yán)格的時間要求的軟件開發(fā)任務(wù),如何借助歷史數(shù)據(jù)評估開發(fā)者的能力并依此推薦可靠的開發(fā)者,以保障開發(fā)效率和質(zhì)量,成為研究的關(guān)鍵點。現(xiàn)在的眾包軟件開發(fā)者推薦方法僅能針對大數(shù)據(jù)集進行分析建模,缺乏對小數(shù)據(jù)集的研究。多標(biāo)簽分類需要大量的數(shù)據(jù)才能訓(xùn)練出一個非常優(yōu)秀的模型,這限制了該方法在數(shù)據(jù)量不足時的應(yīng)用。此外,基于用戶角色的數(shù)據(jù)角色預(yù)測方法需要使用用戶的歷史數(shù)據(jù),小數(shù)據(jù)集上的用戶歷史顯然太少,這導(dǎo)致難以訓(xùn)練模型?,F(xiàn)有技術(shù)也缺乏針對冷啟動問題的解決方法。在多標(biāo)簽形式的分類問題中,其基本假設(shè)為只有注冊次數(shù)高于一定閾值時才是可靠的,那些獲勝次數(shù)少的用戶會被過濾,導(dǎo)致有些用戶即使有能力完成任務(wù)也難以被算法推薦出來。而基于用戶角色的預(yù)測依舊需要大量的用戶歷史數(shù)據(jù)才能訓(xùn)練分類器,對于那些缺乏相應(yīng)歷史的用戶,則無法處理。

    本研究針對眾包軟件開發(fā)者推薦的問題,提出了一種基于元學(xué)習(xí)的眾包軟件開發(fā)者推薦方法[31],從而保證軟件質(zhì)量和 開發(fā)效率。如圖5所示,進行推薦時,所述方法中包含3個主要組件:用戶注冊行為預(yù)測器、用戶提交行為預(yù)測器、用戶獲勝行為預(yù)測器。這三者分別可以預(yù)測用戶的相應(yīng)行為,用戶提交行為預(yù)測器基于用戶注冊后的情況進行預(yù)測,而用戶獲勝行為預(yù)測器基于用戶提交后的情況進行預(yù)測,用戶注冊行為預(yù)測器的預(yù)測沒有任何先決條件。依據(jù)用戶獲勝行為預(yù)測器預(yù)測出的獲勝概率p,用戶注冊行為預(yù)測器和用戶提交行為預(yù)測器會相繼對預(yù)測出的注冊概率和提交概率不在前Top_R、Top_S的用戶的獲勝概率進行修改,R、S為0到1的閾值,可以人為設(shè)定。如果把獲勝概率p設(shè)為0,此時直接結(jié)束模型對該輸入的預(yù)測行為。對于這3個組件,采用元模型進行構(gòu)建,基礎(chǔ)學(xué)習(xí)模型使用Extrees、XGBoost、深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)3個算法,并依據(jù)原學(xué)習(xí)方法進行分析算法選擇。

    實驗結(jié) 果(見表1)表明,相比于協(xié)同過濾分類(collaborative filtering classification,CBC)、基于內(nèi)容的推薦(CrowdRex)、動態(tài)眾包工人決策支持(dynamic crowd worker decision support,DCW-DS)的方法,本文提出的元學(xué)習(xí)模型(policy model)能夠在眾包軟件開發(fā)平臺Topcoder上獲得當(dāng)前較高的推薦準(zhǔn)確率。其中,Acc@3表示Top-3的推薦準(zhǔn)確率,依此類推。MRR是國際上通用的對搜索/推薦算法進行評價的機制,即如果第一個結(jié)果即可匹配,則分?jǐn)?shù)為1;第二個結(jié)果匹配,則分?jǐn)?shù)為0.5;第n個結(jié)果匹配,則分?jǐn)?shù)為1/n;如果沒有匹配的結(jié)果,則分?jǐn)?shù)為0。單個方法在該數(shù)據(jù)集上的最終MRR分?jǐn)?shù)為所有匹配分?jǐn)?shù)的平均值。

    圖5 眾包開發(fā)者推薦的整體流程

    4.3 面向高效編程的API使用模式推薦技術(shù)

    開發(fā)者在開發(fā)過程中往往需要尋求其他開發(fā)者的幫助。開發(fā)者或者僅與熟悉的開發(fā)者溝通,或者通過互聯(lián)網(wǎng)提出問題,兩者的效率和質(zhì)量均得不到保障。為了提高隱式協(xié)作的效率,本文研究了API使用模式的智能推薦方法,即給定開發(fā)者需求,推薦其他開發(fā)者產(chǎn)生的相應(yīng)的API使用模式代碼。在根據(jù)自然語言自動生成代碼的問題上,目前有工作嘗試生成完整代碼,或者生成API序列。前者生成代碼的質(zhì)量往往比較低,很難達到直接可用的效果;而后者難以直接被用于補全源代碼。相比之下,包含API及其相關(guān)控制流語句的結(jié)構(gòu)(稱之為API使用模式)有適中的復(fù)雜度,并且可以提供足夠的代碼骨架信息來幫助開發(fā)者實現(xiàn)各種各樣的功能。根據(jù)自然語言查詢生成相關(guān)的API使用模式,既可以達到比較好的生成效果,又可以有效地幫助開發(fā)者。

    表1 研究方案在Topcoder數(shù)據(jù)集上 的性能對比

    本文針對由自然語言查詢生成API使用模式的問題,提出了一種新的API使用模式推薦技術(shù)[34]。本研究采用編碼器-解碼器模型,設(shè)計了API-MCTree解碼器模塊,并對該模型設(shè)計了訓(xùn)練和預(yù)測的算法。為了獲得<自然語言查詢,API使用模式>形式的數(shù)據(jù)對作為訓(xùn)練數(shù)據(jù),還需要獲得對應(yīng)API使用模式的自然語言查詢。根據(jù)Javadoc說明指導(dǎo),一個函數(shù)的注釋文檔的第一句可以作為當(dāng)前函數(shù)的簡短描述,因此抽取其中的第一句作為自然語言查詢。為了在學(xué)習(xí)過程中更好地表示API使用模式,每個API使用模式可以被看成一個有約束的樹形結(jié)構(gòu)。假設(shè)每種控制流結(jié)構(gòu)都有一種不同的顏色,稱這種有約束的樹為API-MCTree(API multi-colored tree)。本研究基于一種帶注意力機制的編碼器-解碼器模型。編碼器部分是基于循環(huán)神經(jīng)網(wǎng)絡(luò)模型的,具體使用的是長短期記憶(LSTM)單元,它可以以循環(huán)的方式一個接一個地處理自然語言的詞輸入,然后將自然語言序列編碼到一個固定大小的向量。解碼器根據(jù)自然語言向量c生成API-MCTree。對于API使用模式這種特殊的形式,本文設(shè)計了一種新型的解碼器,稱之為API-MCTree解碼器,如圖6所示。與序列解碼器不同,在時間步t,API-MCTree解碼器的隱藏狀態(tài)不僅依賴于上一個時間步t-1,也依賴于父親非終結(jié)符結(jié)點的信息。因而,在模型中采用了parent-feeding連接機制。在時間步t,將父親非終結(jié)符結(jié)點的隱藏狀態(tài)和輸入向量拼接在一起,然后把它們共同送入LSTM單元,基于輸出的隱藏狀態(tài)生成相應(yīng)的樹形API使用模式。

    圖6 API-MCTree解碼器

    為了驗證本文設(shè)計的API使用模式生成方法的有效性,分析模型中設(shè)計的合理性并與其他相關(guān)方法進行對比,筆者設(shè)計了相關(guān)的實驗進行評估。與其他相關(guān)工作的評價方式類似,使用BLEU-4來衡量生成的API使用模式的質(zhì)量,它可以量化候選序列和真實序列之間的相似度。筆者比較了本文方法和現(xiàn)有的4種方法。表2是這些方法在具體指標(biāo)上的表現(xiàn),可以看到,本文提出的方法擁有最高的BLEU分?jǐn)?shù)(44.90%)和最高的測試準(zhǔn)確度(37.45%)。通過和對比方法的比較可知,本文提出的方法有較好的效果,在自然語言查詢語義理解、API使用模式的語法和語義信息的捕捉和表達上具有不錯的能力。

    5 大規(guī)模開發(fā)者智能協(xié)作支撐環(huán)境

    如圖7所示,基于對開發(fā)者畫像、開發(fā)者推薦及開發(fā)資源推薦等關(guān)鍵技術(shù)的研究,筆者構(gòu)建了大規(guī)模開發(fā)者智能協(xié)作支撐環(huán)境,自下而上可分為5個層次。

    (1)數(shù)據(jù)源和數(shù)據(jù)管理

    開發(fā)了面向GitHub、Stack Overflow、Topcoder、CSDN、GitLab平臺的分布式爬蟲工具,獲取了源代碼、代碼注釋、項目文檔、開發(fā)者行為、技術(shù)問答、技術(shù)博客等海量開發(fā)數(shù)據(jù),并存儲到MySQL、MongoDB、Neo4j數(shù)據(jù)庫中(見表3)。

    (2)開發(fā)者知識庫

    定義了開發(fā)者知識庫的基本模型,從原始數(shù)據(jù)中提取開發(fā)結(jié)點與開發(fā)關(guān)系,以構(gòu)建開發(fā)者知識庫。開發(fā)結(jié)點包括開發(fā)者以及開發(fā)者的技能、效率、情感等信息,還包括開發(fā)資源及其主題、類別、質(zhì)量等信息;開發(fā)關(guān)系包含開發(fā)者間的社交、競爭、協(xié)作等關(guān)系信息。最終,建立起一個包含24億個結(jié)點、80.7億條邊的大規(guī)模開發(fā)者知識庫,其中包含4 397萬名開發(fā)者,數(shù)據(jù)總量達到13 TB(見表3)。

    表2 本文方法與現(xiàn)有方法的性能比較

    (3)智能推薦與搜索

    圖7 大規(guī)模軟件開發(fā)者智能協(xié)作支撐環(huán)境體系結(jié)構(gòu)

    根據(jù)已構(gòu)建的開發(fā)者知識庫,分別進行了開發(fā)者推薦、開發(fā)資源推薦、知識庫搜索3個方面的研究。對于開發(fā)者推薦,使用協(xié)同過濾、元學(xué)習(xí)模型、主題模型、協(xié)作關(guān)系感知等方法,對開發(fā)過程中不同階段任務(wù)的開發(fā)者分配模式進行了優(yōu)化;對于開發(fā)資源推薦,一方面通過開發(fā)行為上下文感知方法來捕獲開發(fā)者的行為特征,另一方面通過神經(jīng)網(wǎng)絡(luò)代碼表示與語法樹挖掘代碼語義等方法對相關(guān)代碼進行結(jié)構(gòu)化表示,最后綜合兩者作為輸入特征,基于知識庫中的資源與歷史協(xié)作關(guān)系進行資源推薦;對于知識庫搜索,對開發(fā)者與開發(fā)資源潛在主題的提取技術(shù)進行了研究,并輔以多種維度的排序返回方式,提高了搜索的精度。

    表3 系統(tǒng)中匯聚的主要軟件大數(shù)據(jù)情況

    (4)工具集

    基于以上智能推薦與搜索方法,開發(fā)了一系列智能開發(fā)工具集,包括開發(fā)者智能推薦工具集、開發(fā)者畫像工具集、開發(fā)資源推薦工具集、開發(fā)者搜索工具集和開發(fā)資源搜索工具集。

    ● 開發(fā)者智能推薦工具集包括代碼評審者、眾包開發(fā)者、問題(issue)解決者、問題回答者的推薦工具,這些工具能夠在開發(fā)過程中的不同階段優(yōu)化開發(fā)者的分配策略,以提高協(xié)作開發(fā)的效率。

    ● 開發(fā)者畫像工具集包含能力定量評估工具、技能特征刻畫工具與跨社區(qū)畫像集成工具,能夠從社區(qū)貢獻、協(xié)作能力、技能偏好、代碼質(zhì)量、開發(fā)者情感等維度對開發(fā)者能力做定性與定量分析,并且可以對同時使用多個開發(fā)平臺的開發(fā)者進行跨平臺開發(fā)能力的綜合展示。

    ● 開發(fā)資源推薦工具集包括Java編程助手工具與代碼自動生成工具,前者能夠根據(jù)開發(fā)者的開發(fā)行為特征推薦與代碼上下文相關(guān)的優(yōu)質(zhì)問答資源,后者能夠根據(jù)自然語言的需求描述,面向Java的JDK庫提供API調(diào)用序列的自動生成服務(wù),幫助進行簡單的函數(shù)功能設(shè)計。

    ● 開發(fā)者搜索工具集提供了基于基本信息與技能信息的兩種搜索模式,支持跨開發(fā)平臺搜索。

    ● 開發(fā)資源搜索工具集提供了基于資源主題的搜索模式,并可以對搜索結(jié)果依據(jù)技能標(biāo)簽進行聚類,幫助開發(fā)者更好地獲取所需的開發(fā)資源。

    圖8 開發(fā)者能力畫像

    圖9 開發(fā)者智能搜索

    最終,筆者將上述工具集成在大規(guī)模開發(fā)者智能協(xié)作支撐環(huán)境iCoOper平臺上,并且提供REST API服務(wù),圖8~圖10給出了該平臺的部分功能截圖。不同企業(yè)的開發(fā)管理平臺中的歷史開發(fā)數(shù)據(jù)具有結(jié)構(gòu)一致性,因此iCoOper平臺具有良好的可擴展性,能夠容易地嵌入更多企業(yè)的開發(fā)環(huán)境中。系統(tǒng)已在東軟集團股份有限公司和萬達信息股份有限公司等進行部署,系統(tǒng)直接與企業(yè)內(nèi)部代碼管理系統(tǒng)GitLab進行對接,自動獲取和分析企業(yè)內(nèi)部開發(fā)人員的相關(guān)數(shù)據(jù),構(gòu)建開發(fā)者知識圖譜,并實現(xiàn)了對開發(fā)者的畫像、搜索和推薦等支持,在智慧城市、互聯(lián)網(wǎng)金融等應(yīng)用項目的開發(fā)中進行了實際應(yīng)用。

    圖10 代碼評審者智能推薦

    6 結(jié)束語

    本文從軟件開發(fā)者的角度對軟件智能化開發(fā)進行了探索,介紹了開發(fā)者智能協(xié)作研究的思路和所開展的關(guān)鍵技術(shù)研究工作。首先,在對開發(fā)者能力評估模型和開發(fā)者協(xié)作關(guān)系模型進行了全面闡述后,提出了新的開發(fā)者協(xié)作分析方法,構(gòu)建了開發(fā)者知識圖譜。進一步,針對開發(fā)過程中存在的問題,本文提出了面向開發(fā)任務(wù)的開發(fā)者以及開發(fā)資源智能推薦算法。以這些關(guān)鍵技術(shù)為基礎(chǔ),構(gòu)建了一體化的智能協(xié)作開發(fā)環(huán)境,以期為提高軟件開發(fā)效率和質(zhì)量提供有效支撐。

    在未來工作中,一方面,由于本文研究的智能協(xié)作開發(fā)環(huán)境以輔助開發(fā)者進行軟件開發(fā)為主,筆者將按照自頂向下的研究方法繼續(xù)完善智能協(xié)作環(huán)境,通過深入理解開發(fā)者在開發(fā)過程中的需求以及掌握這種需求的變化,提供更多的面向多種開發(fā)任務(wù)的開發(fā)者推薦與開發(fā)資源推薦服務(wù),進一步改進智能推薦所依賴的開發(fā)者知識圖譜的開發(fā)者能力模型與開發(fā)者協(xié)作關(guān)系模型;另一方面,在本文提出的智能協(xié)作環(huán)境的基礎(chǔ)上,結(jié)合深度學(xué)習(xí)等方法研究并構(gòu)建更加智能化的開發(fā)者服務(wù)環(huán)境。

    猜你喜歡
    開發(fā)者協(xié)作智能
    團結(jié)協(xié)作成功易
    智能前沿
    文苑(2018年23期)2018-12-14 01:06:06
    智能前沿
    文苑(2018年19期)2018-11-09 01:30:14
    智能前沿
    文苑(2018年17期)2018-11-09 01:29:26
    智能前沿
    文苑(2018年21期)2018-11-09 01:22:32
    協(xié)作
    讀者(2017年14期)2017-06-27 12:27:06
    16%游戲開發(fā)者看好VR
    CHIP新電腦(2016年3期)2016-03-10 13:06:42
    協(xié)作
    讀寫算(下)(2016年9期)2016-02-27 08:46:31
    iOS開發(fā)者調(diào)查
    電腦迷(2015年8期)2015-05-30 12:27:10
    iOS開發(fā)者調(diào)查
    電腦迷(2015年4期)2015-05-30 05:24:09
    观看免费一级毛片| 91成人精品电影| 777米奇影视久久| 观看免费一级毛片| 中国国产av一级| 亚洲av中文av极速乱| 国产亚洲av片在线观看秒播厂| 18+在线观看网站| 最近手机中文字幕大全| 婷婷色综合大香蕉| 国产精品99久久久久久久久| 狂野欧美激情性bbbbbb| 欧美精品国产亚洲| 夜夜看夜夜爽夜夜摸| 亚洲精品乱码久久久v下载方式| 国产精品女同一区二区软件| 久久女婷五月综合色啪小说| 丝袜在线中文字幕| 视频中文字幕在线观看| 看非洲黑人一级黄片| 嘟嘟电影网在线观看| 午夜91福利影院| 亚洲欧洲精品一区二区精品久久久 | 丝袜脚勾引网站| 成人18禁高潮啪啪吃奶动态图 | 亚洲人与动物交配视频| 欧美日韩视频高清一区二区三区二| 国产在线视频一区二区| av黄色大香蕉| 中文字幕人妻熟人妻熟丝袜美| 久久久久久久大尺度免费视频| 国产成人aa在线观看| 午夜免费鲁丝| 成人18禁高潮啪啪吃奶动态图 | 亚洲精品日韩av片在线观看| 内射极品少妇av片p| 久久精品国产a三级三级三级| 韩国av在线不卡| 国产精品嫩草影院av在线观看| 亚洲va在线va天堂va国产| 天天躁夜夜躁狠狠久久av| 日日摸夜夜添夜夜添av毛片| 亚洲精品456在线播放app| 99九九在线精品视频 | 日日爽夜夜爽网站| av又黄又爽大尺度在线免费看| 亚洲真实伦在线观看| 男女边摸边吃奶| 精品国产露脸久久av麻豆| 一级毛片aaaaaa免费看小| 热re99久久国产66热| av免费在线看不卡| 亚洲美女视频黄频| 国产深夜福利视频在线观看| 丰满迷人的少妇在线观看| 久久精品国产亚洲av天美| 最新中文字幕久久久久| 狂野欧美激情性bbbbbb| 国产黄频视频在线观看| 妹子高潮喷水视频| 汤姆久久久久久久影院中文字幕| 午夜激情福利司机影院| 欧美日韩在线观看h| 亚洲av在线观看美女高潮| 日韩大片免费观看网站| 欧美三级亚洲精品| 成人午夜精彩视频在线观看| 午夜激情福利司机影院| 国产成人免费无遮挡视频| 精品午夜福利在线看| 99视频精品全部免费 在线| 精品久久久噜噜| 狂野欧美激情性bbbbbb| 国产免费视频播放在线视频| 国产成人免费无遮挡视频| 黑丝袜美女国产一区| 99久久精品一区二区三区| 九九爱精品视频在线观看| 韩国高清视频一区二区三区| 午夜精品国产一区二区电影| 五月玫瑰六月丁香| 免费少妇av软件| 国产精品国产三级国产专区5o| 国内精品宾馆在线| 99久久精品国产国产毛片| 99久久综合免费| 嫩草影院入口| 99久久综合免费| 亚洲欧美清纯卡通| 成年人午夜在线观看视频| 五月天丁香电影| 国产精品嫩草影院av在线观看| 国产黄片视频在线免费观看| 免费大片18禁| 男女国产视频网站| 国产伦精品一区二区三区视频9| 国产成人精品福利久久| 高清在线视频一区二区三区| 国产精品伦人一区二区| 性色av一级| 久久精品国产a三级三级三级| 久热这里只有精品99| 亚洲性久久影院| 一级毛片黄色毛片免费观看视频| 国内少妇人妻偷人精品xxx网站| av免费在线看不卡| 亚洲欧美日韩卡通动漫| 婷婷色av中文字幕| kizo精华| 我的老师免费观看完整版| 国产精品无大码| 久久久久久久久大av| 噜噜噜噜噜久久久久久91| 91精品伊人久久大香线蕉| 99热6这里只有精品| 国产男人的电影天堂91| 只有这里有精品99| 美女主播在线视频| 99久久中文字幕三级久久日本| 一级a做视频免费观看| 久久韩国三级中文字幕| 人妻系列 视频| 日韩视频在线欧美| 免费看不卡的av| 日韩熟女老妇一区二区性免费视频| 在线看a的网站| 免费观看a级毛片全部| 精品久久国产蜜桃| √禁漫天堂资源中文www| 一区二区三区四区激情视频| 丰满少妇做爰视频| 三级国产精品片| 青春草视频在线免费观看| 人妻制服诱惑在线中文字幕| 一级,二级,三级黄色视频| 国产成人91sexporn| 男女国产视频网站| av国产久精品久网站免费入址| 午夜激情福利司机影院| 午夜精品国产一区二区电影| 少妇的逼水好多| av网站免费在线观看视频| 亚洲自偷自拍三级| 大香蕉97超碰在线| 丁香六月天网| h日本视频在线播放| 亚洲一区二区三区欧美精品| 国产一区二区在线观看av| 日日爽夜夜爽网站| 国产无遮挡羞羞视频在线观看| 80岁老熟妇乱子伦牲交| 夜夜看夜夜爽夜夜摸| 国产真实伦视频高清在线观看| 一本—道久久a久久精品蜜桃钙片| 国产成人a∨麻豆精品| 国产精品99久久99久久久不卡 | 伊人久久精品亚洲午夜| 免费观看av网站的网址| 69精品国产乱码久久久| av有码第一页| av视频免费观看在线观看| 国产日韩欧美亚洲二区| 国产淫片久久久久久久久| 一级毛片电影观看| 少妇人妻久久综合中文| 亚洲真实伦在线观看| 亚洲电影在线观看av| 国产伦理片在线播放av一区| av专区在线播放| 久久精品久久久久久久性| 国产精品一区www在线观看| 最近2019中文字幕mv第一页| 麻豆乱淫一区二区| 久久国内精品自在自线图片| 久久久久网色| 国产美女午夜福利| 在线观看www视频免费| 欧美人与善性xxx| 黄片无遮挡物在线观看| √禁漫天堂资源中文www| 简卡轻食公司| 日韩一区二区视频免费看| 国产成人精品福利久久| 国产精品无大码| a级毛片免费高清观看在线播放| 午夜91福利影院| 国产精品久久久久久久久免| 久久这里有精品视频免费| 波野结衣二区三区在线| 天天躁夜夜躁狠狠久久av| 亚洲精品乱久久久久久| 一级毛片我不卡| 亚洲精品国产av蜜桃| 蜜桃在线观看..| 久久久久久久久久人人人人人人| av网站免费在线观看视频| 亚洲伊人久久精品综合| 激情五月婷婷亚洲| 亚洲国产色片| 观看免费一级毛片| 天堂中文最新版在线下载| 丰满人妻一区二区三区视频av| 精品久久久精品久久久| 在线观看www视频免费| 人人妻人人看人人澡| 日本黄大片高清| 日韩大片免费观看网站| 亚洲综合精品二区| 亚洲国产毛片av蜜桃av| 国产精品.久久久| 又大又黄又爽视频免费| 热re99久久国产66热| 黑人巨大精品欧美一区二区蜜桃 | 99久久综合免费| 三上悠亚av全集在线观看 | 欧美另类一区| 国产淫片久久久久久久久| 秋霞伦理黄片| 夫妻性生交免费视频一级片| 一区在线观看完整版| 日韩成人av中文字幕在线观看| 国产精品伦人一区二区| 黄色一级大片看看| 五月伊人婷婷丁香| videossex国产| 欧美97在线视频| 在线看a的网站| 少妇人妻久久综合中文| 人人妻人人添人人爽欧美一区卜| 国产乱来视频区| 午夜福利,免费看| 亚洲av中文av极速乱| 亚洲av电影在线观看一区二区三区| 国产日韩欧美视频二区| 日韩在线高清观看一区二区三区| 午夜福利在线观看免费完整高清在| 亚洲精品视频女| 丰满迷人的少妇在线观看| 国产精品久久久久久精品古装| 91成人精品电影| 亚洲精品一二三| 自拍偷自拍亚洲精品老妇| 国产精品三级大全| 国产精品熟女久久久久浪| 亚洲美女搞黄在线观看| 少妇高潮的动态图| 欧美bdsm另类| 啦啦啦视频在线资源免费观看| 在线亚洲精品国产二区图片欧美 | 久久久久久久久久成人| 久久久国产精品麻豆| 国产精品国产三级专区第一集| 国产伦精品一区二区三区视频9| 黄色怎么调成土黄色| av在线播放精品| 曰老女人黄片| 国产精品久久久久久精品古装| 在线精品无人区一区二区三| 久久亚洲国产成人精品v| 蜜臀久久99精品久久宅男| 免费高清在线观看视频在线观看| 久久久精品94久久精品| 日本欧美国产在线视频| 日韩欧美一区视频在线观看 | 涩涩av久久男人的天堂| 国产一区二区在线观看日韩| 国产精品一二三区在线看| 亚洲av日韩在线播放| 热re99久久国产66热| 国产毛片在线视频| 成人特级av手机在线观看| 一个人免费看片子| 久久久久精品久久久久真实原创| 妹子高潮喷水视频| 亚洲精品久久久久久婷婷小说| 一本大道久久a久久精品| 黄色一级大片看看| av国产精品久久久久影院| 日韩一区二区视频免费看| 视频区图区小说| 在线观看www视频免费| 纵有疾风起免费观看全集完整版| 最后的刺客免费高清国语| 久久久久久久久久成人| 9色porny在线观看| 亚洲欧美成人精品一区二区| 精品一区在线观看国产| 青春草视频在线免费观看| 亚洲综合色惰| 高清在线视频一区二区三区| 精品国产一区二区久久| 国产爽快片一区二区三区| 蜜臀久久99精品久久宅男| 国产片特级美女逼逼视频| 亚洲成人av在线免费| 在线观看美女被高潮喷水网站| 国产欧美日韩精品一区二区| 一边亲一边摸免费视频| 亚洲三级黄色毛片| 亚洲综合色惰| 十八禁高潮呻吟视频 | 天美传媒精品一区二区| 青春草视频在线免费观看| 国产一区二区在线观看av| 香蕉精品网在线| 亚洲精品自拍成人| 在线 av 中文字幕| 国产免费福利视频在线观看| 久久午夜福利片| 十八禁网站网址无遮挡 | 一个人看视频在线观看www免费| 午夜久久久在线观看| 又黄又爽又刺激的免费视频.| 日韩不卡一区二区三区视频在线| 熟妇人妻不卡中文字幕| 日韩伦理黄色片| 妹子高潮喷水视频| 午夜av观看不卡| 久久精品国产亚洲网站| 免费高清在线观看视频在线观看| 日韩一区二区三区影片| 国产亚洲5aaaaa淫片| av女优亚洲男人天堂| 精品熟女少妇av免费看| 午夜老司机福利剧场| 免费大片黄手机在线观看| 一级二级三级毛片免费看| av专区在线播放| 中文精品一卡2卡3卡4更新| 亚洲国产精品国产精品| www.色视频.com| 亚洲美女搞黄在线观看| 精品久久久久久电影网| 亚洲av在线观看美女高潮| 久久精品久久久久久噜噜老黄| 免费看日本二区| 这个男人来自地球电影免费观看 | 秋霞伦理黄片| 欧美另类一区| 国产欧美日韩精品一区二区| 欧美国产精品一级二级三级 | 国产日韩一区二区三区精品不卡 | 蜜桃在线观看..| 最新中文字幕久久久久| 欧美 亚洲 国产 日韩一| 久久狼人影院| 最新的欧美精品一区二区| 欧美日韩视频高清一区二区三区二| 欧美日韩亚洲高清精品| 在线精品无人区一区二区三| 国产极品天堂在线| 少妇裸体淫交视频免费看高清| 女的被弄到高潮叫床怎么办| 国产精品一区二区三区四区免费观看| 成人国产av品久久久| 国产探花极品一区二区| 国产精品无大码| 2021少妇久久久久久久久久久| 美女脱内裤让男人舔精品视频| 亚洲高清免费不卡视频| 黄色一级大片看看| 好男人视频免费观看在线| 成人亚洲精品一区在线观看| 精品少妇内射三级| 久久国产精品大桥未久av | 热99国产精品久久久久久7| 99精国产麻豆久久婷婷| 大香蕉97超碰在线| 中文天堂在线官网| 秋霞在线观看毛片| 久久99蜜桃精品久久| 久久99热6这里只有精品| 国产黄色免费在线视频| 另类精品久久| 国产熟女午夜一区二区三区 | 十八禁网站网址无遮挡 | 肉色欧美久久久久久久蜜桃| 久久国内精品自在自线图片| 永久网站在线| 国产精品99久久99久久久不卡 | 国产亚洲最大av| 秋霞伦理黄片| 亚洲国产精品一区三区| 久久亚洲国产成人精品v| 久久综合国产亚洲精品| 久久精品国产亚洲av涩爱| 免费大片18禁| 女人久久www免费人成看片| 青青草视频在线视频观看| 99re6热这里在线精品视频| 校园人妻丝袜中文字幕| 日韩熟女老妇一区二区性免费视频| 男男h啪啪无遮挡| 国产精品.久久久| 六月丁香七月| 精品熟女少妇av免费看| 国产精品一区www在线观看| 久久免费观看电影| 三级国产精品片| 日本av免费视频播放| 香蕉精品网在线| 国内揄拍国产精品人妻在线| 精品亚洲成国产av| 国产欧美另类精品又又久久亚洲欧美| 国产色婷婷99| 男女国产视频网站| 精品人妻熟女毛片av久久网站| 最近中文字幕高清免费大全6| www.av在线官网国产| 一二三四中文在线观看免费高清| 美女脱内裤让男人舔精品视频| 中文字幕精品免费在线观看视频 | 亚洲av二区三区四区| 亚洲成人手机| 熟女电影av网| 精品人妻熟女av久视频| 只有这里有精品99| 99热这里只有精品一区| 99热网站在线观看| 国产淫语在线视频| 久久ye,这里只有精品| 国产精品不卡视频一区二区| 久久6这里有精品| 国产在线免费精品| 欧美日韩国产mv在线观看视频| 插逼视频在线观看| 精品人妻熟女av久视频| 91aial.com中文字幕在线观看| 美女视频免费永久观看网站| 亚洲欧美成人综合另类久久久| 久久精品国产a三级三级三级| 中国三级夫妇交换| 免费人成在线观看视频色| 国产高清国产精品国产三级| 九草在线视频观看| 亚洲综合精品二区| 久久久亚洲精品成人影院| 国产视频内射| 国产欧美日韩综合在线一区二区 | 日本色播在线视频| av线在线观看网站| 一边亲一边摸免费视频| 亚洲性久久影院| 卡戴珊不雅视频在线播放| 熟女电影av网| 最近的中文字幕免费完整| 日本av免费视频播放| 成年av动漫网址| 中国三级夫妇交换| 人人妻人人看人人澡| 久久久久久久精品精品| .国产精品久久| 一本大道久久a久久精品| 久久久久久久久久久久大奶| 婷婷色av中文字幕| 少妇人妻久久综合中文| 秋霞伦理黄片| 嫩草影院新地址| 大陆偷拍与自拍| 国产精品熟女久久久久浪| 亚洲av国产av综合av卡| 一本—道久久a久久精品蜜桃钙片| 久久久久久久亚洲中文字幕| 国产高清国产精品国产三级| 成人免费观看视频高清| 五月天丁香电影| 国产极品天堂在线| 亚洲美女搞黄在线观看| 大片电影免费在线观看免费| 久久av网站| 嫩草影院入口| 成人毛片a级毛片在线播放| 一级黄片播放器| av免费观看日本| 中文在线观看免费www的网站| av又黄又爽大尺度在线免费看| 午夜免费男女啪啪视频观看| 一二三四中文在线观看免费高清| 亚洲欧美精品自产自拍| 免费黄色在线免费观看| 免费播放大片免费观看视频在线观看| 精品亚洲成a人片在线观看| 国产亚洲91精品色在线| a级片在线免费高清观看视频| 久久97久久精品| 亚洲电影在线观看av| 亚洲欧美一区二区三区国产| 国产一区二区在线观看日韩| 在线观看一区二区三区激情| 日韩强制内射视频| 人人妻人人澡人人爽人人夜夜| 2021少妇久久久久久久久久久| 最新的欧美精品一区二区| 国产爽快片一区二区三区| 在线观看三级黄色| 亚洲久久久国产精品| 大片免费播放器 马上看| 91久久精品电影网| 特大巨黑吊av在线直播| 18禁裸乳无遮挡动漫免费视频| 人人妻人人看人人澡| 久久国产亚洲av麻豆专区| 亚洲国产精品一区二区三区在线| 国产精品国产三级国产专区5o| 日韩不卡一区二区三区视频在线| 一级毛片aaaaaa免费看小| 亚洲精品久久午夜乱码| 亚洲国产日韩一区二区| 久久精品久久精品一区二区三区| 亚洲,欧美,日韩| 久久人人爽av亚洲精品天堂| 免费少妇av软件| 国产成人精品婷婷| 国产日韩欧美在线精品| 最近最新中文字幕免费大全7| 国产91av在线免费观看| 日本色播在线视频| 少妇 在线观看| 一级,二级,三级黄色视频| 久久久久精品性色| .国产精品久久| 午夜免费鲁丝| 99re6热这里在线精品视频| 国产精品女同一区二区软件| 欧美变态另类bdsm刘玥| 国产成人精品婷婷| 久久久国产欧美日韩av| 色吧在线观看| 涩涩av久久男人的天堂| 一区二区三区精品91| 色视频www国产| 自拍偷自拍亚洲精品老妇| 国产日韩欧美视频二区| 久久久亚洲精品成人影院| 在线 av 中文字幕| 国产成人精品无人区| 日韩一区二区三区影片| 欧美bdsm另类| 中文在线观看免费www的网站| 美女国产视频在线观看| 黄色欧美视频在线观看| 亚洲色图综合在线观看| 亚洲av欧美aⅴ国产| 欧美日韩亚洲高清精品| 国产男女内射视频| 日韩成人伦理影院| 日日摸夜夜添夜夜爱| 91久久精品电影网| 狠狠精品人妻久久久久久综合| 有码 亚洲区| 久久久久国产网址| 亚洲国产色片| 最黄视频免费看| av专区在线播放| 男男h啪啪无遮挡| 亚洲一区二区三区欧美精品| 十八禁高潮呻吟视频 | 亚洲精品一二三| 国语对白做爰xxxⅹ性视频网站| 国产亚洲5aaaaa淫片| 观看免费一级毛片| 校园人妻丝袜中文字幕| 国产成人精品无人区| 如何舔出高潮| 亚州av有码| 欧美激情国产日韩精品一区| 日本欧美国产在线视频| 国产一区二区在线观看日韩| 日韩欧美一区视频在线观看 | 22中文网久久字幕| 熟妇人妻不卡中文字幕| 国产亚洲最大av| 国产av码专区亚洲av| 人妻系列 视频| www.色视频.com| 亚洲性久久影院| 老司机影院成人| 久久精品久久久久久噜噜老黄| 国产在线男女| 亚洲va在线va天堂va国产| 在线观看免费日韩欧美大片 | 国产av码专区亚洲av| 国产精品久久久久久精品古装| 久久久国产一区二区| 伦理电影大哥的女人| 久久人人爽人人片av| 97超视频在线观看视频| 九草在线视频观看| 亚洲精品第二区| 亚洲精品乱久久久久久| 欧美高清成人免费视频www| 免费观看的影片在线观看| 久久久午夜欧美精品| 久久久a久久爽久久v久久| 啦啦啦中文免费视频观看日本| 日韩av不卡免费在线播放| av在线app专区| 一级毛片久久久久久久久女| 纵有疾风起免费观看全集完整版| 国产深夜福利视频在线观看| 国产精品女同一区二区软件| 国产女主播在线喷水免费视频网站| 亚洲图色成人| 国产综合精华液| 久久久久久久久久久久大奶| 精品人妻一区二区三区麻豆| 人人澡人人妻人| 午夜福利网站1000一区二区三区| 久久精品国产a三级三级三级| 久久综合国产亚洲精品| 交换朋友夫妻互换小说| 十八禁高潮呻吟视频 | 成年美女黄网站色视频大全免费 | 亚洲经典国产精华液单| 少妇熟女欧美另类|