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

    基于大數(shù)據(jù)的軟件智能化開發(fā)方法與環(huán)境

    2021-01-21 04:29:50謝冰彭鑫尹剛李宣東魏峻孫海龍9
    大數(shù)據(jù) 2021年1期
    關(guān)鍵詞:智能化智能

    謝冰,彭鑫,尹剛,李宣東,魏峻,孫海龍9,0

    1. 北京大學(xué)信息科學(xué)技術(shù)學(xué)院,北京 100871;2. 復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200438;3. 上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室,上海 200438;4. 綠色計(jì)算產(chǎn)業(yè)聯(lián)盟,北京 100036;5. 湖南智擎科技有限公司,湖南 長(zhǎng)沙 410073;6. 計(jì)算機(jī)軟件新技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室(南京大學(xué)),江蘇 南京 210023;7. 中國(guó)科學(xué)院大學(xué),北京 100190;8. 中國(guó)科學(xué)院軟件研究所,北京 100190;9. 軟件開發(fā)環(huán)境國(guó)家重點(diǎn)實(shí)驗(yàn)室(北京航空航天大學(xué)),北京 100191;10. 北京航空航天大學(xué)計(jì)算機(jī)學(xué)院,北京 100191

    1 引言

    以開源軟件為代表的互聯(lián)網(wǎng)軟件開發(fā)具有邊界開放、群體分散、交付頻繁、知識(shí)復(fù)雜等特征。與此同時(shí),企業(yè)軟件開發(fā)也逐漸轉(zhuǎn)向以開發(fā)運(yùn)維一體化(DevOps)為特征的云化開發(fā)平臺(tái)。這些網(wǎng)絡(luò)化開發(fā)方式產(chǎn)生了包含源代碼、缺陷報(bào)告、版本歷史、測(cè)試用例等在內(nèi)的全生命周期數(shù)據(jù)[1]。例如,開源軟件社區(qū)GitHub已經(jīng)集聚了超過2.7億個(gè)軟件項(xiàng)目,軟件開發(fā)問答網(wǎng)站Stack Overflow已經(jīng)積累了超過1 700萬個(gè)與軟件開發(fā)相關(guān)的問題。這些數(shù)據(jù)中蘊(yùn)含的規(guī)律可以通過統(tǒng)計(jì)和機(jī)器學(xué)習(xí)等技術(shù)進(jìn)行吸收和泛化,用于構(gòu)造各種智能化的軟件工程工具[2]。

    智能化軟件開發(fā)一直是軟件工程追求的核心目標(biāo)之一。學(xué)術(shù)界著名的以軟件開發(fā)智能化為核心主題的自動(dòng)化軟件工程(ASE)會(huì)議始于20世紀(jì)80年代。近年來,在軟件工程領(lǐng)域頂級(jí)會(huì)議ICSE、FSE等中出現(xiàn)了越來越多基于數(shù)據(jù)、知識(shí)驅(qū)動(dòng)的開發(fā)智能化技術(shù)研究。例如,于2001年發(fā)起的軟件倉(cāng)庫挖掘會(huì)議(MSR)已經(jīng)得到了廣泛關(guān)注,并開啟了一個(gè)重要的軟件工程研究子領(lǐng)域。2010年,Robillard M P等人[3]綜述了軟件工程中的智能推薦系統(tǒng),指出這些系統(tǒng)在大范圍的軟件開發(fā)活動(dòng)(如代碼復(fù)用、軟件維護(hù)等)中顯著地提升了軟件開發(fā)者的工作效率與質(zhì)量。

    軟件開發(fā)中的知識(shí)獲取與應(yīng)用一直是產(chǎn)業(yè)界關(guān)注的焦點(diǎn)之一。軟件開發(fā)問答網(wǎng)站Stack Overflow利用專家回答的群智機(jī)制,提供了大量軟件開發(fā)問題的答案。Eclipse和Visual Studio等集成開發(fā)環(huán)境(integrated development environment,IDE)都提供了代碼自動(dòng)補(bǔ)全功能。此后流行的IntelliJ IDEA則將智能編碼支持作為特色,提供了智能化代碼規(guī)范檢查、自動(dòng)生成Java規(guī)范的基礎(chǔ)方法框架、自動(dòng)補(bǔ)充方法或類代碼框架等智能推薦支持。近年來,Eclipse和Visual Studio都在云開發(fā)平臺(tái)方面取得了突破,在云端可以匯集大量開發(fā)數(shù)據(jù),為更高層次的基于大數(shù)據(jù)的開發(fā)智能化提供了基礎(chǔ)平臺(tái)。

    國(guó)內(nèi)主要軟件工程研究團(tuán)隊(duì)在此方面也開展了大量的研究工作。北京大學(xué)2012年提出了知識(shí)驅(qū)動(dòng)的軟件復(fù)用方法;南京大學(xué)在基于數(shù)據(jù)的軟件分析、測(cè)試方面進(jìn)行了算法、工具和實(shí)踐研究;中國(guó)科學(xué)院軟件研究所基于云平臺(tái)和數(shù)據(jù)分析技術(shù),在軟件運(yùn)行時(shí)測(cè)試和演化方面開展研究;北京航空航天大學(xué)在開源軟件數(shù)據(jù)的基礎(chǔ)上研究了開發(fā)人員推薦問題;國(guó)防科技大學(xué)在開源數(shù)據(jù)收集和知識(shí)獲取方面進(jìn)行了大量的工作,維護(hù)并運(yùn)行了Trustie社區(qū)和網(wǎng)絡(luò)群體化軟件開發(fā)環(huán)境。國(guó)內(nèi)的浪潮通用軟件有限公司、金蝶軟件(中國(guó))有限公司等也在獲取開發(fā)人員操作、數(shù)據(jù)等方面研發(fā)了相應(yīng)的工具環(huán)境;CSDN和OSCHINA等在軟件開發(fā)技術(shù)論壇、代碼托管和軟件資源匯聚方面建立了大規(guī)模的社區(qū)。

    當(dāng)前,軟件智能化開發(fā)成為熱點(diǎn)的關(guān)鍵原因在于新時(shí)代帶來的技術(shù)發(fā)展的新環(huán)境:開源及企業(yè)軟件開發(fā)產(chǎn)生了大數(shù)據(jù)源,機(jī)器學(xué)習(xí)和信息檢索技術(shù)的發(fā)展提供了知識(shí)獲取的核心支撐,企業(yè)領(lǐng)域工程的廣泛實(shí)踐積累了大量的領(lǐng)域資源。然而,作為智能化軟件開發(fā)基礎(chǔ)的軟件開發(fā)數(shù)據(jù)具有規(guī)模巨大、碎片分散、快速膨脹的特點(diǎn)。在此基礎(chǔ)上實(shí)現(xiàn)智能化軟件開發(fā)支持仍然需要解決一系列基礎(chǔ)性的數(shù)據(jù)采集分析以及知識(shí)抽取利用等方面的問題,并以智能推薦、問答等方式提升軟件開發(fā)工具的智能程度,提高軟件開發(fā)的質(zhì)量和效率。在此基礎(chǔ)上,智能化的軟件工具可以基于數(shù)據(jù)和知識(shí)向開發(fā)人員提供推薦、檢索和問答等方面的智能化支持。

    圍繞相關(guān)方面,學(xué)術(shù)界和工業(yè)界已經(jīng)開展了大量的技術(shù)研究和實(shí)踐探索。然而,從總體方法論和技術(shù)體系來看,目前的研究和實(shí)踐探索仍然局限于特定的技術(shù)關(guān)注點(diǎn),使用的數(shù)據(jù)都是針對(duì)特定問題本身進(jìn)行采集的,缺少大數(shù)據(jù)環(huán)境支撐的跨領(lǐng)域智能化技術(shù)研究,也沒有形成完善的技術(shù)體系和環(huán)境。為此,筆者團(tuán)隊(duì)在國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目“基于大數(shù)據(jù)的軟件智能開發(fā)方法和環(huán)境”的支持下,圍繞軟件工程大數(shù)據(jù)的匯聚組織、知識(shí)表示提煉、軟件工具智能化和智能開發(fā)服務(wù)環(huán)境等關(guān)鍵技術(shù)開展研究工作,建立基于大數(shù)據(jù)的軟件智能化開發(fā)技術(shù)體系,研發(fā)關(guān)鍵性的軟件智能化開發(fā)工具,形成“人-工具-數(shù)據(jù)”融合的新一代軟件智能化開發(fā)技術(shù)體系和環(huán)境,并構(gòu)建軟件智能化開發(fā)云平臺(tái)。本項(xiàng)目構(gòu)建的基于大數(shù)據(jù)的軟件智能化開發(fā)方法和環(huán)境面向萬眾創(chuàng)新的社會(huì)需求,運(yùn)行服務(wù)大眾的公共服務(wù)平臺(tái);針對(duì)企業(yè)創(chuàng)新能力提升,提供智能化的企業(yè)軟件開發(fā)環(huán)境。

    本文將從系統(tǒng)架構(gòu)、核心技術(shù)、應(yīng)用效果3個(gè)方面介紹基于大數(shù)據(jù)的軟件智能化開發(fā)方法與環(huán)境。

    2 系統(tǒng)架構(gòu)

    基于大數(shù)據(jù)的軟件智能化開發(fā)方法與環(huán)境整體技術(shù)架構(gòu)如圖1所示。整個(gè)方法體系和環(huán)境以開源及企業(yè)軟件項(xiàng)目代碼倉(cāng)庫、交付制品、部署和運(yùn)維監(jiān)控等多種類型的軟件開發(fā)數(shù)據(jù)源為基礎(chǔ),包含軟件大數(shù)據(jù)匯聚及知識(shí)提煉、軟件智能化開發(fā)支持、軟件智能化開發(fā)服務(wù)3個(gè)層次。其中,軟件大數(shù)據(jù)匯聚及知識(shí)提煉通過自動(dòng)化的方法采集和匯聚各種類型的軟件開發(fā)數(shù)據(jù),形成自生長(zhǎng)的多源異構(gòu)軟件大數(shù)據(jù)環(huán)境,在此基礎(chǔ)上,以知識(shí)圖譜、經(jīng)驗(yàn)案例、分類器、規(guī)則、模板等多種形式提煉和抽取各種軟件開發(fā)知識(shí)。軟件智能化開發(fā)支持從軟件構(gòu)造、測(cè)試驗(yàn)證、群體協(xié)作、運(yùn)維演化4個(gè)重要的方面構(gòu)建相應(yīng)的工具平臺(tái)和支撐環(huán)境,為相應(yīng)的軟件開發(fā)活動(dòng)提供智能化支持。軟件智能化開發(fā)服務(wù)基于以軟件倉(cāng)庫為中心的分布式智能化開發(fā)環(huán)境集成技術(shù),構(gòu)建軟件智能化開發(fā)云環(huán)境運(yùn)行體系結(jié)構(gòu)與集成框架,實(shí)現(xiàn)高可擴(kuò)展的智能開發(fā)環(huán)境集成與部署,從而建立面向公眾和企業(yè)的軟件智能化開發(fā)服務(wù)平臺(tái)。

    圖1 基于大數(shù)據(jù)的軟件智能化開發(fā)方法和環(huán)境整體架構(gòu)

    (1)軟件大數(shù)據(jù)匯聚及知識(shí)提煉

    基于主動(dòng)感知、定向采集、多源關(guān)聯(lián)、增量檢測(cè)等技術(shù),構(gòu)建軟件工程大數(shù)據(jù)處理體系結(jié)構(gòu)與支撐系統(tǒng),形成自生長(zhǎng)的多源異構(gòu)軟件大數(shù)據(jù)環(huán)境。建立軟件大數(shù)據(jù)的數(shù)據(jù)分類和數(shù)據(jù)匯聚、收集和整理技術(shù)體系,研發(fā)了相應(yīng)的采集、存儲(chǔ)和服務(wù)平臺(tái),原始數(shù)據(jù)、處理后數(shù)據(jù)以及元數(shù)據(jù)等不同類型的數(shù)據(jù)涵蓋開發(fā)、交付、應(yīng)用等不同階段。在此基礎(chǔ)上,利用自然語言處理、深度學(xué)習(xí)、數(shù)據(jù)挖掘、優(yōu)化搜索等智能化技術(shù),建立軟件開發(fā)智能推薦技術(shù)研究體系,基于源數(shù)據(jù)提煉知識(shí)圖譜、代碼模式、主題模型等核心軟件知識(shí),形成一批智能推薦、問答技術(shù)與工具。

    (2)軟件智能化開發(fā)支持

    圍繞軟件開發(fā)中的軟件構(gòu)造、測(cè)試驗(yàn)證、群體協(xié)作、運(yùn)維演化4個(gè)重要方面,分別形成相應(yīng)的智能化工具體系,提供數(shù)據(jù)驅(qū)動(dòng)的智能化推薦和優(yōu)化技術(shù)。

    ● 在軟件構(gòu)造方面,構(gòu)建以代碼庫為核心的軟件構(gòu)造大數(shù)據(jù)環(huán)境以及相應(yīng)的軟件構(gòu)造知識(shí)分析和提煉方法,提供軟件構(gòu)造智能問答、軟件開發(fā)知識(shí)圖譜可視化、代碼生成與補(bǔ)全、自動(dòng)化重構(gòu)推薦等智能化軟件構(gòu)造支持。

    ● 在測(cè)試驗(yàn)證方面,采用機(jī)器學(xué)習(xí)、啟發(fā)式搜索、自然語言理解等智能化途徑,面向測(cè)試用例生成、代碼模型檢驗(yàn)、靜態(tài)分析缺陷警報(bào)確認(rèn)、程序缺陷定位和修復(fù)等軟件質(zhì)量保障的多個(gè)方面提供復(fù)雜軟件測(cè)試與驗(yàn)證智能化支持。

    ● 在群體協(xié)作方面,基于軟件大數(shù)據(jù)的收集與分析構(gòu)建了軟件開發(fā)者知識(shí)庫,形成基于多源軟件大數(shù)據(jù)的開發(fā)者知識(shí)庫體系結(jié)構(gòu),提供基于學(xué)習(xí)曲線的開發(fā)者能力動(dòng)態(tài)刻畫方法和跨社區(qū)的開發(fā)者畫像等智能化支持,同時(shí)構(gòu)建了大規(guī)模開發(fā)者智能協(xié)作支撐環(huán)境。

    ● 在運(yùn)維演化方面,匯聚了以 Docker鏡像為代表的大規(guī)模開發(fā)運(yùn)維一體化數(shù)據(jù),形成了自生長(zhǎng)、可追溯的領(lǐng)域數(shù)據(jù)集合。通過智能化持續(xù)集成與持續(xù)部署流水線系統(tǒng)等一系列工具系統(tǒng),形成了面向開發(fā)運(yùn)維一體化的運(yùn)行演化智能支撐環(huán)境,提升了開發(fā)運(yùn)維一體化過程的動(dòng)態(tài)調(diào)節(jié)能力。

    (3)軟件智能化開發(fā)服務(wù)

    在軟件智能化開發(fā)技術(shù)與工具的基礎(chǔ)上,通過以軟件倉(cāng)庫為中心的分布式智能化開發(fā)環(huán)境集成技術(shù),構(gòu)建軟件智能化開發(fā)云環(huán)境運(yùn)行體系結(jié)構(gòu)與集成框架,實(shí)現(xiàn)高可擴(kuò)展的智能開發(fā)環(huán)境集成與部署,建立面向公眾和企業(yè)的軟件智能化開發(fā)服務(wù)平臺(tái)。目前已經(jīng)基于Trustie平臺(tái),通過提升改進(jìn)形成了軟件智能化開發(fā)服務(wù)環(huán)境平臺(tái)IntelligentDE,同時(shí)基于Eclipse Che架構(gòu)實(shí)現(xiàn)了智能化推薦工具的整體集成。最終建立的軟件智能化開發(fā)服務(wù)平臺(tái)面向公眾提供網(wǎng)絡(luò)化的智能化開發(fā)服務(wù),同時(shí)面向企業(yè)提供私有化部署的智能化開發(fā)支持。

    3 核心技術(shù)

    基于大數(shù)據(jù)的軟件智能化開發(fā)方法與環(huán)境包括7個(gè)方面的核心技術(shù):軟件大數(shù)據(jù)匯聚、軟件知識(shí)提煉、智能化軟件構(gòu)造、智能化測(cè)試驗(yàn)證、智能化協(xié)作、智能化運(yùn)維演化、智能化開發(fā)服務(wù)環(huán)境。

    3.1 軟件大數(shù)據(jù)匯聚

    軟件工程大數(shù)據(jù)以代碼、文檔、開發(fā)記錄等文本為主體,語義豐富。通過對(duì)當(dāng)前軟件工程領(lǐng)域的數(shù)據(jù)進(jìn)行分析,從數(shù)據(jù)類型、數(shù)據(jù)格式、數(shù)據(jù)用途和所屬的軟件生命周期階段等多個(gè)方面進(jìn)行歸納,建立了綜合互聯(lián)的軟件工程大數(shù)據(jù)分類體系(如圖2所示),以支持多維度、多譜系、貫通性的軟件知識(shí)提煉和智能釋放。該體系包括開發(fā)數(shù)據(jù)、交付數(shù)據(jù)和應(yīng)用數(shù)據(jù)三大類,分別又細(xì)分為多個(gè)子類,并將該分類體系與當(dāng)前的多種軟件倉(cāng)庫、社區(qū)和論壇的具體數(shù)據(jù)格式建立了映射。

    圍繞軟件工程大數(shù)據(jù)分類體系,面向智能開發(fā)服務(wù)建立了貫穿數(shù)據(jù)源、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理與數(shù)據(jù)服務(wù)的全鏈條軟件大數(shù)據(jù)框架,實(shí)現(xiàn)對(duì)海量軟件工程數(shù)據(jù)的采集、分析和應(yīng)用等全鏈條管理。整個(gè)軟件工程大數(shù)據(jù)管理框架與環(huán)境包括數(shù)據(jù)源、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理與數(shù)據(jù)實(shí)例4個(gè)層次。

    ● 數(shù)據(jù)源:軟件工程大數(shù)據(jù)涵蓋開發(fā)、發(fā)布、應(yīng)用、運(yùn)維等不同過程、不同類型和不同源的數(shù)據(jù),包括版本庫、代碼倉(cāng)庫、配置制品、軟件鏡像等。通過相應(yīng)的爬蟲可以實(shí)現(xiàn)對(duì)這些多源異構(gòu)數(shù)據(jù)的實(shí)時(shí)、增量抓取和匯聚。

    ● 數(shù)據(jù)存儲(chǔ):主要實(shí)現(xiàn)對(duì)大規(guī)模異構(gòu)軟件工程大數(shù)據(jù)的高效存儲(chǔ)和訪問。

    ● 數(shù)據(jù)處理:圍繞特定的任務(wù)和目標(biāo),將存儲(chǔ)的數(shù)據(jù)按需展開,并進(jìn)行相應(yīng)的處理,形成軟件知識(shí)庫,如軟件知識(shí)圖譜通過數(shù)據(jù)解析、融合等技術(shù)進(jìn)行數(shù)據(jù)的二次加工和處理;通過分析不同數(shù)據(jù)類型之間的關(guān)聯(lián)和依賴、基于圖數(shù)據(jù)庫等存儲(chǔ)技術(shù)構(gòu)建軟件領(lǐng)域知識(shí)圖譜,進(jìn)一步通過數(shù)據(jù)按需展開機(jī)制有效降低存儲(chǔ)資源的占用情況。

    圖2 軟件工程大數(shù)據(jù)分類體系

    ● 數(shù)據(jù)實(shí)例:通過豐富的接口和服務(wù),針對(duì)不同的需求與應(yīng)用提供相應(yīng)的數(shù)據(jù)服務(wù),針對(duì)不同類型的數(shù)據(jù),對(duì)外提供不同的數(shù)據(jù)服務(wù),包括以項(xiàng)目為中心的數(shù)據(jù)服務(wù)、以測(cè)試為目標(biāo)的數(shù)據(jù)服務(wù)、以人為中心的數(shù)據(jù)服務(wù)、以運(yùn)維為目標(biāo)的數(shù)據(jù)服務(wù)等。

    在此基礎(chǔ)上,針對(duì)網(wǎng)頁數(shù)據(jù)、版本庫數(shù)據(jù)、缺陷庫數(shù)據(jù)等,提出了主動(dòng)感知、定向采集、多源關(guān)聯(lián)和增量檢測(cè)等一系列關(guān)鍵技術(shù),設(shè)計(jì)構(gòu)建如圖3所示的分布式數(shù)據(jù)采集處理框架,部署了分布式爬蟲,實(shí)現(xiàn)了基于網(wǎng)頁爬蟲和應(yīng)用程序接口(application programming interface,API)的數(shù)據(jù)獲取、數(shù)據(jù)包下載等多種收集方式。

    其主要特點(diǎn)如下:

    ● 構(gòu)建了大規(guī)模多類型的分布式爬蟲,實(shí)現(xiàn)對(duì)全球數(shù)十個(gè)開源社區(qū)的代碼倉(cāng)庫、開發(fā)歷史及軟件知識(shí)等類型數(shù)據(jù)的主動(dòng)感知、定向采集和增量更新;

    ● 對(duì)于異構(gòu)的代碼數(shù)據(jù)和代碼歷史提交等數(shù)據(jù),基于Git版本管理工具實(shí)現(xiàn)了差異分析和增量拉取;

    ● 對(duì)于軟件知識(shí)數(shù)據(jù),通過對(duì)不同網(wǎng)站帖子的歷史瀏覽等數(shù)據(jù)進(jìn)行分析,形成帖子的關(guān)注度衰減模型,從而基于該模型確定對(duì)每個(gè)網(wǎng)站帖子的更新抓取頻率。

    采用實(shí)時(shí)監(jiān)測(cè)、元數(shù)據(jù)本地存儲(chǔ)、按需獲取與構(gòu)建的模式,在兼顧可控性和效費(fèi)比的情況下,針對(duì)不同類型數(shù)據(jù)的軟件數(shù)據(jù)進(jìn)行匯聚、收集和整理,實(shí)現(xiàn)對(duì)全球PB級(jí)開源數(shù)據(jù)(包括原始數(shù)據(jù)、處理后數(shù)據(jù)以及元數(shù)據(jù))的自主掌控。采用分散存儲(chǔ)、平臺(tái)匯聚的模式提供共享管理和在線訪問統(tǒng)一入口,部署于UCloud和阿里云等公有云,并提供統(tǒng)一的匯聚數(shù)據(jù)說明和訪問入口。在此基礎(chǔ)上,建立了如下3個(gè)軟件工程大數(shù)據(jù)獲取與服務(wù)平臺(tái)。

    (1)全球開源軟件檢索與分析平臺(tái)OSSEAN

    針對(duì)軟件問答社區(qū)、開源軟件項(xiàng)目、軟件開發(fā)工具、開發(fā)者等類型的數(shù)據(jù)進(jìn)行了匯聚和收集整理,構(gòu)建了面向全球開源軟件的檢索與分析平臺(tái)OSSEAN。其包括3層:數(shù)據(jù)獲取層、數(shù)據(jù)分析層、數(shù)據(jù)展示層。其中,數(shù)據(jù)獲取層完成數(shù)據(jù)的采集工作,為平臺(tái)提供高效、穩(wěn)定、持續(xù)、準(zhǔn)確的數(shù)據(jù)服務(wù);數(shù)據(jù)分析層對(duì)數(shù)據(jù)獲取層獲取的頁面信息進(jìn)行抽取,提取出每個(gè)頁面中的關(guān)鍵信息,并對(duì)抽取結(jié)果進(jìn)行驗(yàn)證,同時(shí)通過數(shù)據(jù)挖掘?qū)Τ槿〉臄?shù)據(jù)進(jìn)行分析(例如社區(qū)關(guān)聯(lián)、軟件評(píng)估等);數(shù)據(jù)展示層對(duì)得到的數(shù)據(jù)處理結(jié)果按照平臺(tái)展示的數(shù)據(jù)格式進(jìn)行處理,并將處理結(jié)果存放于數(shù)據(jù)緩沖池中,為平臺(tái)的展示提供數(shù)據(jù)支持。目前,OSSEAN的數(shù)據(jù)獲取模塊已覆蓋全球20多個(gè)主要開源社區(qū),通過持續(xù)監(jiān)控,實(shí)時(shí)抓取了超過 1 400萬個(gè)開源項(xiàng)目/倉(cāng)庫元數(shù)據(jù)以及超過2 000萬條在線討論數(shù)據(jù),同時(shí)提供了開源軟件分析、檢索、排序以及熱點(diǎn)話題分析等服務(wù)。

    圖3 分布式數(shù)據(jù)采集處理框架

    (2)軟件工程大數(shù)據(jù)共享平臺(tái)SBD

    依托Trustie平臺(tái),采用開放共享、分散存儲(chǔ)、平臺(tái)匯聚、按需獲取的方式,設(shè)計(jì)和制定了多源異構(gòu)的統(tǒng)一的大數(shù)據(jù)門戶,形成大規(guī)模軟件工程大數(shù)據(jù)共享平臺(tái)SBD。共享平臺(tái)采用分散存儲(chǔ)、平臺(tái)匯聚的模式提供共享管理和在線訪問統(tǒng)一入口,平臺(tái)部署于UCloud和阿里云,提供匯聚數(shù)據(jù)說明及訪問入口。目前,平臺(tái)通過原始數(shù)據(jù)、處理后數(shù)據(jù)以及元數(shù)據(jù)等形式實(shí)現(xiàn)了對(duì)涵蓋開發(fā)、交付、應(yīng)用等不同階段的軟件工程數(shù)據(jù)的跟蹤、獲取,為軟件工程研究、智能化開發(fā)工具等提供不同類型的數(shù)據(jù)和服務(wù)。

    (3)軟件交付制品獲取與管理平臺(tái)RAISE

    針對(duì)Docker鏡像設(shè)計(jì)了一種海量數(shù)據(jù)匯聚、管理、知識(shí)抽取[4]和質(zhì)量評(píng)價(jià)的系統(tǒng)化方案和服務(wù),實(shí)現(xiàn)了增量式、高并發(fā)的Docker數(shù)據(jù)匯聚和管理方法,支持對(duì)Docker Hub上百萬級(jí)Docker數(shù)據(jù)的自動(dòng)獲取與增量更新,實(shí)現(xiàn)了數(shù)據(jù)的可發(fā)現(xiàn)和可追蹤。研發(fā)了面向軟件交付制品(Docker鏡像)的數(shù)據(jù)獲取與在線管理服務(wù)平臺(tái)RAISE,以提高制品質(zhì)量、制品統(tǒng)一管理和實(shí)現(xiàn)高效復(fù)用為目標(biāo),提供多維度的Docker制品信息統(tǒng)計(jì)與可視化展示,支持Docker鏡像的分析、檢索、排行、評(píng)價(jià)和修復(fù)推薦等。

    3.2 軟件知識(shí)提煉

    為了實(shí)現(xiàn)智能化軟件開發(fā)目標(biāo),需要通過多種手段從這些數(shù)據(jù)中提煉軟件知識(shí),形成智能化軟件開發(fā)支撐能力。針對(duì)這一目標(biāo),以機(jī)器學(xué)習(xí)、知識(shí)圖譜、數(shù)據(jù)挖掘、信息可視化等智能化技術(shù)為基礎(chǔ),以檢索、推薦、問答、查錯(cuò)等服務(wù)形式為呈現(xiàn)方式,形成了一系列軟件知識(shí)提煉與應(yīng)用方法體系。其中,基于機(jī)器學(xué)習(xí)和知識(shí)圖譜這兩種主要的智能化分析技術(shù)形成的軟件開發(fā)知識(shí)提煉方法與技術(shù)體系分別如圖4和圖5所示。

    圖4 基于機(jī)器學(xué)習(xí)的軟件開發(fā)知識(shí)提煉方法與技術(shù)體系

    基于機(jī)器學(xué)習(xí)(含深度學(xué)習(xí))的智能化分析以源代碼、軟件開發(fā)庫、項(xiàng)目開發(fā)文檔、眾包開發(fā)網(wǎng)站、眾包問答、API文檔等軟件開發(fā)數(shù)據(jù)為基礎(chǔ),通過訓(xùn)練數(shù)據(jù)準(zhǔn)備和模型訓(xùn)練形成具備智能化推薦能力的服務(wù)形態(tài)。其中訓(xùn)練數(shù)據(jù)準(zhǔn)備和模型選擇是關(guān)鍵。訓(xùn)練數(shù)據(jù)準(zhǔn)備階段的目的是從原始的軟件開發(fā)數(shù)據(jù)中抽取符合智能化推薦能力需要的訓(xùn)練樣本,例如針對(duì)API使用代碼推薦的API/控制單元與代碼上下文的對(duì)照關(guān)系、針對(duì)缺陷修復(fù)分派推薦的缺陷報(bào)告與修復(fù)者及所屬模塊的對(duì)照關(guān)系等。為此,本項(xiàng)目通過程序分析、信息抽取和過濾等多種分析方法,從原始軟件開發(fā)數(shù)據(jù)中抽取相關(guān)信息,并形成包含所需對(duì)照關(guān)系的訓(xùn)練樣本。在模型選擇上,本項(xiàng)目廣泛使用了先進(jìn)的深度學(xué)習(xí)技術(shù),包括面向API使用代碼推薦的Tree-LSTM模型、面向缺陷修復(fù)分派推薦的biRNN模型等。此外,本項(xiàng)目也使用了基于聚類的無監(jiān)督學(xué)習(xí)等傳統(tǒng)技術(shù),以適應(yīng)不同的數(shù)據(jù)規(guī)模和應(yīng)用場(chǎng)景。

    圖5 基于知識(shí)圖譜的軟件開發(fā)知識(shí)提煉方法與技術(shù)體系

    軟件是人類思維的抽象,反映著人們對(duì)客觀世界的認(rèn)識(shí)。軟件開發(fā)是高度知識(shí)化的過程。軟件代碼、文檔、數(shù)據(jù)等都體現(xiàn)著人們的認(rèn)知知識(shí)。這些知識(shí)具有結(jié)構(gòu)化和普遍關(guān)聯(lián)的特點(diǎn),同時(shí)廣泛分布在不同的軟件數(shù)據(jù)中。作為描述知識(shí)的一種基礎(chǔ)性表述方式,知識(shí)圖譜能夠顯式地定義基于概念實(shí)體間關(guān)聯(lián)關(guān)系建立起來的知識(shí)體系。大部分人類知識(shí)體系采用專家編撰(如領(lǐng)域知識(shí)圖譜)或是群智編寫(如Google Knowledge)的方式。軟件領(lǐng)域相關(guān)知識(shí)若采用群智或?qū)<揖帉懛绞剑瑫?huì)存在工作量大、質(zhì)量難以保證的問題。本項(xiàng)目確定了基于多源異構(gòu)軟件數(shù)據(jù)自動(dòng)獲取、整理相應(yīng)軟件知識(shí)圖譜的技術(shù)目標(biāo),并在利用知識(shí)圖譜進(jìn)行推理、匹配等方面展開研究,有效獲取了軟件知識(shí),為一系列相關(guān)智能化支持功能提供了支撐。

    基于知識(shí)圖譜的軟件開發(fā)知識(shí)提煉方法與技術(shù)體系具體包括軟件項(xiàng)目圖譜和API知識(shí)圖譜等。其中,軟件項(xiàng)目圖譜自動(dòng)構(gòu)造與問答系統(tǒng)SnowGraph(software knowledge graph)[5]采取了一種以源代碼為核心、多種信息抽取方法相結(jié)合的方式實(shí)現(xiàn)軟件知識(shí)圖譜的自動(dòng)構(gòu)造,并基于插件機(jī)制支持面向新數(shù)據(jù)源和新知識(shí)的擴(kuò)展。與其他主流軟件知識(shí)圖譜進(jìn)行對(duì)比,SnowGraph在以下幾個(gè)方面具有優(yōu)勢(shì):以源代碼為核心,采取多種信息抽取的方法協(xié)同進(jìn)行知識(shí)圖譜的全自動(dòng)化構(gòu)造;采用插件機(jī)制,使得知識(shí)圖譜對(duì)其他數(shù)據(jù)源的軟件相關(guān)數(shù)據(jù)具備很好的通用性和可擴(kuò)展性,能夠?qū)ξ磥砜赡艹霈F(xiàn)的新的知識(shí)需求、知識(shí)來源,以及知識(shí)抽取、關(guān)聯(lián)、提煉等進(jìn)行支持;數(shù)據(jù)來源多樣、廣泛關(guān)聯(lián)、語義豐富,實(shí)體類型和關(guān)系類型豐富,在對(duì)應(yīng)的軟件知識(shí)表示和知識(shí)利用上具備更好的效果。

    SnowGraph還實(shí)現(xiàn)了基于知識(shí)圖譜的問答服務(wù)[5]。針對(duì)事實(shí)型問題,SnowGraph提出了一套基于推理子圖的自然語言-形式化查詢轉(zhuǎn)化方法;對(duì)于復(fù)雜的自然語言提問,SnowGraph提出了一套基于知識(shí)圖譜的語義匹配機(jī)制,經(jīng)過Stack Overflow實(shí)際數(shù)據(jù)集的檢驗(yàn)可知,其比傳統(tǒng)信息檢索技術(shù)更準(zhǔn)確。值得一提的是,通過分析開源軟件API之間的語義關(guān)聯(lián),并構(gòu)造開源軟件項(xiàng)目知識(shí)圖譜,項(xiàng)目提出了問答文檔中關(guān)鍵代碼元素與用戶查詢之間的相似度匹配方法,實(shí)驗(yàn)表明,該方法在軟件問答文檔的檢索準(zhǔn)確性上超過了Stack Overflow自身的檢索工具,能夠幫助開發(fā)者更快速地定位到相關(guān)問答內(nèi)容。

    SnowGraph的系統(tǒng)框架如圖6所示。該系統(tǒng)遵循數(shù)據(jù)-信息-知識(shí)-智慧(datainformation-knowledge-wisdom,DIKW)的層次體系:對(duì)于一個(gè)待復(fù)用的軟件項(xiàng)目,以自動(dòng)化方法對(duì)其中的多源異構(gòu)數(shù)據(jù)進(jìn)行處理,將分散、非結(jié)構(gòu)化的信息提煉為廣泛關(guān)聯(lián)、語義性強(qiáng)的知識(shí),并以知識(shí)圖譜的形式進(jìn)行表示;在此基礎(chǔ)上,將知識(shí)圖譜融入機(jī)器對(duì)無結(jié)構(gòu)文本的處理過程之中,進(jìn)而為復(fù)用者提供準(zhǔn)確有效的智能問答服務(wù),從而提高軟件復(fù)用過程的效率與質(zhì)量。

    3.3 智能化軟件構(gòu)造

    智能化軟件構(gòu)造主要面向編碼、代碼評(píng)審、代碼重構(gòu)這3種主要的軟件構(gòu)造活動(dòng),分別提供智能化代碼輔助完成、代碼變更差異分析和智能化自動(dòng)重構(gòu)功能。

    (1)智能化代碼輔助完成

    圖6 軟件項(xiàng)目知識(shí)圖譜自動(dòng)構(gòu)造支持平臺(tái)的系統(tǒng)框架

    軟件開發(fā)人員經(jīng)常依賴于各種通用API(例如JDK、Android中的API)來完成開發(fā)任務(wù)。但是這類API數(shù)量眾多,開發(fā)人員難以熟知所有API的功能及其使用場(chǎng)合。如何在具體的代碼上下文中選擇合適的API,并按照正確的方式使用,是開發(fā)人員經(jīng)常遇到的難題。為此,項(xiàng)目團(tuán)隊(duì)提出了一種基于上下文分析及深度學(xué)習(xí)的代碼生成式補(bǔ)全方法[6],如圖7所示。該方法采用Tree-LSTM模型,并采用一種基于抽象代碼樹結(jié)構(gòu)的代碼表示。其中,結(jié)點(diǎn)表示抽象的API使用語句、變量聲明、賦值語句或控制結(jié)構(gòu),邊表示它們之間的控制流關(guān)系。

    該方法的預(yù)測(cè)模型訓(xùn)練主要包括語句模型訓(xùn)練和參數(shù)模型構(gòu)建兩部分。語句模型訓(xùn)練以訓(xùn)練數(shù)據(jù)源代碼中的方法為單位構(gòu)造訓(xùn)練樣本,主要思路是在代碼的不同位置上移除一部分代碼,得到由代碼上下文與待預(yù)測(cè)代碼構(gòu)成的訓(xùn)練樣本。在此基礎(chǔ)上,將所有訓(xùn)練樣本抽象樹結(jié)構(gòu)表示中的每一個(gè)結(jié)點(diǎn)所表示的抽象API映射為向量,然后將所有訓(xùn)練樣本輸入Tree-LSTM進(jìn)行訓(xùn)練,得到語句模型。參數(shù)模型訓(xùn)練基于訓(xùn)練數(shù)據(jù)中的代碼抽象樹結(jié)構(gòu)中的數(shù)據(jù)依賴路徑進(jìn)行統(tǒng)計(jì)分析,計(jì)算每個(gè)結(jié)點(diǎn)與候選API推薦結(jié)點(diǎn)產(chǎn)生數(shù)據(jù)依賴的概率。概率越高,其結(jié)點(diǎn)表示的變量越有可能成為候選API推薦中的參數(shù)。

    該方法的代碼推薦流程包括以下步驟:

    ● 用戶輸入包含待完成代碼的程序;

    ● 根據(jù)用戶的輸入,運(yùn)行語句模型和參數(shù)模型,給出API推薦結(jié)果;

    ● 用戶根據(jù)API推薦結(jié)果進(jìn)行選擇;

    ● 根據(jù)用戶的選擇更新當(dāng)前用戶輸入的程序。

    (2)代碼變更差異分析

    在代碼評(píng)審、代碼合并以及回歸測(cè)試過程中,開發(fā)人員需要花費(fèi)大量的時(shí)間來理解代碼變更,代碼變更差異分析是一種常用的輔助理解手段。針對(duì)現(xiàn)有的基于文本和語法樹的方法的不足,項(xiàng)目團(tuán)隊(duì)提出了一個(gè)新的基于抽象語法樹的代碼差異分析方法ClDIFF[7]。該方法在傳統(tǒng)的基于抽象語法樹的代碼差異分析結(jié)果上進(jìn)行抽象和總結(jié),大大減少了基于抽象語法樹差異的編輯序列大小,同時(shí)可以抽取高層代碼差異及其之間的關(guān)聯(lián)關(guān)系。

    圖7 基于深度學(xué)習(xí)的代碼生成式補(bǔ)全方法[6]

    ClDIFF的設(shè)計(jì)框架中主要包含3個(gè)步驟,如圖8所示。首先是“預(yù)處理”步驟,即將變更前后的代碼源文件轉(zhuǎn)換成抽象語法樹,并通過哈希值比較,去除沒有發(fā)生變化的聲明結(jié)點(diǎn),從而提高后續(xù)代碼差異分析的效率;然后是“簡(jiǎn)潔代碼差異的生成”步驟,即利用傳統(tǒng)的基于抽象語法樹的代碼差異分析方法生成細(xì)粒度的代碼差異(即抽象語法樹結(jié)點(diǎn)的編輯操作序列),并對(duì)序列中的編輯操作在語句或者聲明級(jí)別上進(jìn)行聚合和歸納,從而生成更簡(jiǎn)潔的代碼差異(例如,增加一個(gè)條件判斷的代碼塊);最后是“簡(jiǎn)潔代碼差異的關(guān)聯(lián)”步驟,即利用啟發(fā)式方法在生成的代碼差異之間建立5種預(yù)定義的關(guān)聯(lián)關(guān)系(例如,3個(gè)新增的條件判斷代碼塊是一樣的)。

    (3)智能化自動(dòng)重構(gòu)

    軟件重構(gòu)是提高軟件質(zhì)量的一種重要技術(shù)手段。它在不改變軟件外部行文特性的情況下,通過優(yōu)化、調(diào)整軟件的內(nèi)部結(jié)構(gòu)來提高軟件的質(zhì)量,尤其是軟件的可讀性和可擴(kuò)展性。目前IDE對(duì)軟件重構(gòu)的自動(dòng)化支持僅限于重構(gòu)的執(zhí)行環(huán)節(jié),對(duì)于重構(gòu)機(jī)會(huì)的發(fā)掘與重構(gòu)方案的推薦則沒有強(qiáng)力的工具支撐。在實(shí)際軟件構(gòu)造的過程中,經(jīng)常出現(xiàn)實(shí)現(xiàn)代碼與理想高層設(shè)計(jì)不一致的問題,這就需要結(jié)合業(yè)務(wù)邏輯和設(shè)計(jì)知識(shí)給出理想的設(shè)計(jì)。因此,項(xiàng)目團(tuán)隊(duì)提出了一種基于高層設(shè)計(jì)及搜索算法的自動(dòng)化重構(gòu)方法[8],并開發(fā)了高層設(shè)計(jì)驅(qū)動(dòng)的軟件自動(dòng)化重構(gòu)工具。針對(duì)在長(zhǎng)期演化過程中發(fā)生設(shè)計(jì)質(zhì)量退化的復(fù)雜軟件系統(tǒng),該方法能夠通過高層設(shè)計(jì)與代碼的自動(dòng)映射提供交互式的重構(gòu)建議,及時(shí)識(shí)別設(shè)計(jì)演進(jìn)過程中的腐化苗頭,從而提高軟件系統(tǒng)的設(shè)計(jì)質(zhì)量,保障設(shè)計(jì)的平滑演進(jìn)。

    3.4 智能化測(cè)試驗(yàn)證

    智能化測(cè)試驗(yàn)證的目標(biāo)是基于軟件開發(fā)和維護(hù)過程形成的各類軟件工程數(shù)據(jù)和機(jī)器學(xué)習(xí)等智能化途徑,突破軟件測(cè)試和驗(yàn)證技術(shù)面臨的障礙,控制相關(guān)問題的復(fù)雜性,提高相關(guān)技術(shù)與工具的有效性和可擴(kuò)展性。

    基于程序運(yùn)行信息、缺陷報(bào)告、編程經(jīng)驗(yàn)交流信息、靜態(tài)分析警報(bào)、技術(shù)文檔、歷史修復(fù)記錄、用戶評(píng)價(jià)等軟件開發(fā)和演化過程中產(chǎn)生的數(shù)據(jù),采用機(jī)器學(xué)習(xí)、啟發(fā)式搜索、自然語言理解等智能化途徑,圍繞測(cè)試、驗(yàn)證、分析、調(diào)試和修復(fù)等軟件質(zhì)量保障環(huán)節(jié),針對(duì)測(cè)試用例生成、代碼模型檢驗(yàn)、靜態(tài)分析警報(bào)確認(rèn)、程序缺陷定位和修復(fù)信息推薦中的難點(diǎn)問題展開研究工作[9-11],具體包括:

    ● 在測(cè)試用例生成方面,針對(duì)現(xiàn)有技術(shù)難以處理非線性運(yùn)算、浮點(diǎn)運(yùn)算、第三方函數(shù)調(diào)用等程序復(fù)雜特征的難點(diǎn),提出基于智能搜索的復(fù)雜軟件測(cè)試用例生成技術(shù);

    ● 在代碼模型檢驗(yàn)方面,針對(duì)現(xiàn)有技術(shù)難以應(yīng)對(duì)源代碼驗(yàn)證的規(guī)模和復(fù)雜性問題,提出基于不可行路徑分析與學(xué)習(xí)的智能化有界模型檢驗(yàn)技術(shù);

    ● 在靜態(tài)分析警報(bào)確認(rèn)方面,針對(duì)靜態(tài)分析警報(bào)數(shù)量非常大、目前基本上靠人工處理的難題,提出靜態(tài)分析缺陷警報(bào)智能化分析與確認(rèn)技術(shù);

    圖8 基于抽象語法樹的代碼差異分析設(shè)計(jì)框架

    ● 在程序缺陷定位方面,針對(duì)現(xiàn)有技術(shù)的定位精度和效率不高的問題,提出基于缺陷報(bào)告與歷史修復(fù)記錄的軟件代碼缺陷智能定位技術(shù);

    ● 在程序缺陷修復(fù)信息推薦方面,針對(duì)現(xiàn)有技術(shù)的修復(fù)推薦準(zhǔn)確度不高的問題,提出基于社區(qū)問答網(wǎng)站的軟件缺陷修復(fù)信息智能推薦技術(shù)。

    3.5 智能化協(xié)作

    軟件開發(fā)作為以開發(fā)者為中心的智力活動(dòng),開發(fā)者協(xié)作始終是影響軟件開發(fā)效率和質(zhì)量的重要問題之一。基于大數(shù)據(jù)的軟件開發(fā)智能協(xié)作以提高開發(fā)者的協(xié)作效率為目標(biāo),建立基于多源軟件大數(shù)據(jù)的開發(fā)者知識(shí)庫體系結(jié)構(gòu)以及開發(fā)者能力評(píng)估和關(guān)系挖掘、開發(fā)者智能推薦、軟件資源智能推薦等智能協(xié)作關(guān)鍵技術(shù)體系,通過學(xué)習(xí)開發(fā)者的能力特征、挖掘隱含的協(xié)作關(guān)系,建立以開發(fā)者為中心的知識(shí)庫。在此基礎(chǔ)上,根據(jù)開發(fā)者能力和行為等進(jìn)行開發(fā)者的推薦和智能的任務(wù)分配,基于開發(fā)者關(guān)聯(lián)進(jìn)行軟件資源(代碼、問答等)的智能推薦和重用,從而實(shí)現(xiàn)軟件的智能協(xié)作開發(fā)。智能化協(xié)作技術(shù)體系如圖9所示。

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

    圖9 智能化協(xié)作技術(shù)體系

    針對(duì)基于多源軟件大數(shù)據(jù)的開發(fā)者知識(shí)庫體系結(jié)構(gòu),實(shí)現(xiàn)了面向GitHub、Stack Overflow、Topcoder、CSDN 4個(gè)互聯(lián)網(wǎng)軟件平臺(tái)及東軟集團(tuán)股份有限公司、萬達(dá)信息股份有限公司等企業(yè)內(nèi)部代碼管理平臺(tái)中開發(fā)大數(shù)據(jù)的分布式增量爬取工具,實(shí)現(xiàn)對(duì)多源異構(gòu)的軟件開發(fā)大數(shù)據(jù)的獲取和存儲(chǔ);實(shí)現(xiàn)面向開發(fā)者特征和關(guān)系挖掘分析的分布式處理架構(gòu),支持增量式數(shù)據(jù)的實(shí)時(shí)分析處理,構(gòu)建了包含4 397萬名開發(fā)者、24億個(gè)結(jié)點(diǎn)、80.7億條協(xié)作關(guān)系的知識(shí)庫;研制了面向開發(fā)者和開發(fā)資源的高效管理技術(shù)和管理工具,實(shí)現(xiàn)對(duì)開發(fā)者和資源關(guān)聯(lián)關(guān)系的高效存儲(chǔ)、維護(hù)、更新及檢索。

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

    針對(duì)開發(fā)者能力評(píng)估和關(guān)系挖掘技術(shù),提出了基于學(xué)習(xí)曲線的開發(fā)者能力動(dòng)態(tài)刻畫方法[12]、跨社區(qū)的開發(fā)者畫像方法[13]和開發(fā)者情感分析方法[14];建立了定性定量相結(jié)合的多維開發(fā)者能力模型,從17個(gè)維度對(duì)開發(fā)者的能力進(jìn)行全面刻畫;建立開發(fā)者協(xié)作關(guān)系模型,主要包含開發(fā)者-開發(fā)者社交關(guān)系、直接協(xié)作關(guān)系和間接協(xié)作關(guān)系;實(shí)現(xiàn)了開發(fā)者的能力評(píng)估技術(shù)和工具,能夠?qū)崿F(xiàn)對(duì)開發(fā)者能力屬性的定性判斷或量化計(jì)算;實(shí)現(xiàn)了協(xié)作關(guān)系模型研制相應(yīng)的挖掘分析技術(shù)和工具,建立了開發(fā)者-開發(fā)者與開發(fā)者-資源之間的量化關(guān)聯(lián)。

    (3)推薦與搜索

    針對(duì)面向開發(fā)任務(wù)的開發(fā)者智能推薦,提出了基于元學(xué)習(xí)的眾包開發(fā)者推薦方法[15]、團(tuán)隊(duì)協(xié)作能力評(píng)估指標(biāo)以及開發(fā)者團(tuán)隊(duì)推薦方法[16];提出了面向GitHub的代碼評(píng)審者推薦[17]、面向Stack Overflow的問題回答者推薦、面向Topcoder的眾包開發(fā)者推薦、面向企業(yè)GitLab的問題解決者推薦等關(guān)鍵技術(shù),并開發(fā)了相應(yīng)的支撐工具,形成了軟件開發(fā)者智能推薦工具集,極大地提高了自組織模式下的軟件開發(fā)效率。

    (4)工具集

    針對(duì)基于開發(fā)者關(guān)聯(lián)的軟件資源推薦,提出了基于深度神經(jīng)網(wǎng)絡(luò)的程序代碼向量化表示方法[18],提高了代碼克隆等任務(wù)處理的準(zhǔn)確性;實(shí)現(xiàn)了基于開發(fā)者行為偏好與上下文信息的開發(fā)資源智能推薦工具集,包含Java編程助手工具和代碼API自動(dòng)生成工具[19],輔助開發(fā)者進(jìn)行代碼、問答、缺陷修復(fù)方案等軟件資源的高效獲取。

    基于以上研究工作,項(xiàng)目團(tuán)隊(duì)建立了開發(fā)者關(guān)聯(lián)分析的智能協(xié)作工具集合,初步形成了大規(guī)模軟件智能協(xié)作開發(fā)支撐環(huán)境iCoOper平臺(tái),該平臺(tái)已在阿里云服務(wù)器上穩(wěn)定運(yùn)行超過1年。

    3.6 智能化運(yùn)維演化

    快速響應(yīng)變化并持續(xù)交付是面向互聯(lián)網(wǎng)軟件(特別是云應(yīng)用)開發(fā)運(yùn)維追求的主要目標(biāo)之一。傳統(tǒng)軟件過程存在軟件生命周期“開發(fā)部署-運(yùn)行演化”兩階段割裂,各階段數(shù)據(jù)匯聚與知識(shí)提煉、關(guān)聯(lián)、運(yùn)用程度低下的問題,無法實(shí)現(xiàn)正向過程自動(dòng)化與反饋調(diào)節(jié)智能化相融合的一體化開發(fā)與運(yùn)維,最終影響軟件開發(fā)運(yùn)維的效率和質(zhì)量。

    針對(duì)上述問題,以軟件開發(fā)運(yùn)維中多源異構(gòu)數(shù)據(jù)匯聚和領(lǐng)域知識(shí)提煉方法為基礎(chǔ),結(jié)合多種知識(shí)運(yùn)用技術(shù),提升軟件開發(fā)與運(yùn)維有機(jī)集成的智能化程度,通過開發(fā)運(yùn)維一體化的軟件過程實(shí)現(xiàn)軟件生命周期各階段的無縫集成,最終實(shí)現(xiàn)正向過程自動(dòng)化與反饋調(diào)節(jié)智能化相融合的開發(fā)運(yùn)維一體化智能支撐環(huán)境。該環(huán)境使用Docker技術(shù)和Kubernetes集群管理技術(shù)搭建基礎(chǔ)設(shè)施環(huán)境,集成項(xiàng)目研發(fā)的多個(gè)工具系統(tǒng),覆蓋了數(shù)據(jù)匯聚管理[20]、知識(shí)抽取[4]、運(yùn)維支撐技術(shù)與持續(xù)集成(continuous integration,CI)/持續(xù)交付(continuous delivery,CD)過程管理3個(gè)方面,涉及開發(fā)運(yùn)維一體化中的部署配置[21]、測(cè)試評(píng)估[22-23]和運(yùn)行演化等多個(gè)軟件生命周期階段,有助于提升開發(fā)運(yùn)維一體化中的智能化程度和過程調(diào)節(jié)能力。

    該環(huán)境實(shí)現(xiàn)了開發(fā)運(yùn)維從“事件驅(qū)動(dòng)的單向自動(dòng)化處理模式”向“傳統(tǒng)模式與知識(shí)驅(qū)動(dòng)的反饋調(diào)節(jié)模式相結(jié)合”的轉(zhuǎn)換。開發(fā)運(yùn)維一體化框架基于“實(shí)時(shí)分析、閉環(huán)調(diào)節(jié)、在線演化、持續(xù)交付”的體系,實(shí)現(xiàn)了知識(shí)驅(qū)動(dòng)的自調(diào)節(jié)開發(fā)運(yùn)維一體化框架,支持大規(guī)模云應(yīng)用的持續(xù)交付。相比于已有的技術(shù)和研究工作,該框架具有過程靈活定制、執(zhí)行適應(yīng)性自動(dòng)調(diào)節(jié)的能力。如圖10所示,其實(shí)現(xiàn)途徑和機(jī)制具體包括:

    ● 面向CI/CD過程的實(shí)時(shí)監(jiān)測(cè)與智能分析,形成智能決策方法;

    ● 基于智能決策的過程適應(yīng)性調(diào)節(jié),形成閉環(huán)調(diào)節(jié)機(jī)制;

    ● 閉環(huán)調(diào)節(jié)驅(qū)動(dòng)構(gòu)件開發(fā)與應(yīng)用組裝的持續(xù)演化,支撐從“構(gòu)件”到“應(yīng)用”的高效持續(xù)交付。

    3.7 智能化開發(fā)服務(wù)環(huán)境

    軟件智能化開發(fā)服務(wù)環(huán)境突破以軟件倉(cāng)庫為中心的分布式智能化開發(fā)環(huán)境集成技術(shù),構(gòu)建軟件智能化開發(fā)云環(huán)境運(yùn)行體系結(jié)構(gòu)與集成框架,實(shí)現(xiàn)高可擴(kuò)展的智能開發(fā)環(huán)境集成與部署。圍繞軟件開發(fā)制品和活動(dòng)的完整數(shù)據(jù),設(shè)計(jì)智能化開發(fā)環(huán)境的集成方法與工具,包括運(yùn)行環(huán)境集成和桌面開發(fā)環(huán)境的集成機(jī)制、基于Eclipse Che的架構(gòu)設(shè)計(jì)與交互技術(shù),以及智能化開發(fā)工具管理中心,設(shè)計(jì)實(shí)現(xiàn)了以軟件項(xiàng)目版本管理為中心,以Trustie平臺(tái)為基礎(chǔ),基于版本庫串聯(lián)Trustie的協(xié)同開發(fā)環(huán)境、Che在線編程環(huán)境以及DevOps運(yùn)行部署環(huán)境,實(shí)現(xiàn)按需接入、高可擴(kuò)展的智能化開發(fā)體系架構(gòu)。依托該架構(gòu),協(xié)同開發(fā)、在線編程和部署運(yùn)維等智能化工具和服務(wù)均可以基于插件模式快速集成,并形成智能化開發(fā)環(huán)境。

    在面向創(chuàng)新實(shí)踐的軟件智能化開發(fā)公共服務(wù)平臺(tái)方面,面向創(chuàng)新實(shí)踐和安全可控需求,突破智能化推薦等關(guān)鍵技術(shù),構(gòu)建面向開放創(chuàng)新和人才培養(yǎng)的軟件智能化開發(fā)公共服務(wù)平臺(tái),支撐我國(guó)開源生態(tài)的建設(shè)。本項(xiàng)目針對(duì)開源生態(tài)中軟件資源和知識(shí)資源呈現(xiàn)的多層次、多維度特性,研究了面向協(xié)同開發(fā)社區(qū)的代碼貢獻(xiàn)者推薦算法、基于多維特征的開源項(xiàng)目個(gè)性化推薦方法,以及跨項(xiàng)目的貢獻(xiàn)審查者推薦方法等技術(shù)。在此基礎(chǔ)上,面向國(guó)家基礎(chǔ)及前沿技術(shù)安全可控和自主創(chuàng)新的重大需求,依托智能開發(fā)技術(shù)與工具,構(gòu)建形成了開源模式的開放創(chuàng)新服務(wù)環(huán)境和大規(guī)模開放在線實(shí)踐(massive open online practice,MOOP)模式的人才培養(yǎng)服務(wù)環(huán)境,圍繞大規(guī)模開放創(chuàng)新實(shí)踐和人才培養(yǎng)開展了大規(guī)模的應(yīng)用和服務(wù)。

    圖10 自調(diào)節(jié)的開發(fā)運(yùn)維一體化

    在軟件智能化企業(yè)開發(fā)支撐技術(shù)與服務(wù)平臺(tái)方面,研發(fā)企業(yè)大型軟件資源庫和領(lǐng)域知識(shí)圖譜,為企業(yè)智能化軟件開發(fā)提供支撐技術(shù)與服務(wù)平臺(tái)。項(xiàng)目匯聚涵蓋需求、設(shè)計(jì)、開發(fā)、測(cè)試、運(yùn)行、運(yùn)維、支持服務(wù)等軟件全生命周期的數(shù)據(jù)資源,突破了裝備制造和智能倉(cāng)儲(chǔ)領(lǐng)域的知識(shí)庫構(gòu)建技術(shù),研發(fā)了面向企業(yè)管理軟件的智能化云開發(fā)服務(wù)環(huán)境。在此基礎(chǔ)上,浪潮通用軟件有限公司集成項(xiàng)目研究成果搭建的智能化企業(yè)開發(fā)平臺(tái)有效提升了現(xiàn)有開發(fā)方法和平臺(tái)的智能化水平。同時(shí),應(yīng)用項(xiàng)目研發(fā)的軟件工程教育平臺(tái)開展企業(yè)研發(fā)人員的培訓(xùn),可有效提升研發(fā)人員的開發(fā)實(shí)踐能力,降低企業(yè)的運(yùn)營(yíng)成本。

    4 應(yīng)用效果

    面向公眾的軟件智能開發(fā)服務(wù)平臺(tái)通過銜接高校、科研機(jī)構(gòu)、軟件園區(qū)、軟件企業(yè)等利益相關(guān)方,降低軟件開發(fā)門檻、釋放軟件開發(fā)潛力,推動(dòng)軟件驅(qū)動(dòng)的“產(chǎn)學(xué)研用”創(chuàng)新創(chuàng)業(yè)生態(tài)的構(gòu)建。

    在多源異構(gòu)軟件工程大數(shù)據(jù)的匯聚與管理方面,研究并建立了覆蓋“開發(fā)-交付-應(yīng)用”的軟件生命全周期的數(shù)據(jù)分類體系,突破主動(dòng)感知、定向采集、多源關(guān)聯(lián)、增量檢測(cè)等關(guān)鍵技術(shù),構(gòu)建了自生長(zhǎng)的軟件工程大數(shù)據(jù)共享平臺(tái)SBD。SBD以原始數(shù)據(jù)、處理后數(shù)據(jù)以及元數(shù)據(jù)等形式匯聚了全球主流開源社區(qū)的開源軟件項(xiàng)目、軟件問答討論、軟件開發(fā)工具、Docker鏡像、開發(fā)者等不同類型的數(shù)據(jù);通過對(duì)數(shù)據(jù)源進(jìn)行感知與監(jiān)測(cè),利用元數(shù)據(jù)分析比對(duì)等技術(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)變化的感知和追蹤,實(shí)現(xiàn)持續(xù)演化的軟件工程大數(shù)據(jù)的增量式獲取,提升對(duì)開源軟件大數(shù)據(jù)的掌控能力。目前,平臺(tái)上可跟蹤和獲得的數(shù)據(jù)總量超過1.5 PB,其中集中存儲(chǔ)約25 TB,分散存儲(chǔ)約217 TB,實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)約1 278 TB。

    在數(shù)據(jù)與工具開源方面,針對(duì)Apache開源軟件基金會(huì)中的192個(gè)開源軟件項(xiàng)目(共計(jì)482.48 GB軟件項(xiàng)目數(shù)據(jù)),分別構(gòu)建了相應(yīng)的軟件項(xiàng)目知識(shí)圖譜。以Apache Lucene項(xiàng)目的知識(shí)圖譜為例,共抽取出了378 897個(gè)實(shí)體,以及這些實(shí)體之間的1 902 683條關(guān)聯(lián)關(guān)系;在此基礎(chǔ)上,對(duì)外提供了軟件項(xiàng)目智能問答服務(wù)。開發(fā)者可以提出自然語言問題,系統(tǒng)基于知識(shí)推理在知識(shí)圖譜以及項(xiàng)目文檔中進(jìn)行搜索,并給出答案。同時(shí),項(xiàng)目將項(xiàng)目團(tuán)隊(duì)自主研發(fā)的、自主可控的35項(xiàng)智能開發(fā)工具與相關(guān)軟件數(shù)據(jù)進(jìn)行了匯聚整理,開源到木蘭開源社區(qū)。

    在國(guó)內(nèi)開源生態(tài)建設(shè)方面,項(xiàng)目支持GCC建成了面向“開放計(jì)算架構(gòu)+開源軟件技術(shù)”的中國(guó)綠色計(jì)算開源技術(shù)和產(chǎn)品開發(fā)社區(qū),匯聚了國(guó)內(nèi)的企業(yè)團(tuán)隊(duì)和大眾貢獻(xiàn)者;基于Trustie構(gòu)建的中國(guó)綠色計(jì)算開源技術(shù)已經(jīng)發(fā)展成我國(guó)最大的ARM開源開發(fā)和創(chuàng)新社區(qū),有效支持了產(chǎn)、學(xué)、研、用各界的開源開發(fā)和評(píng)測(cè)活動(dòng);支持新一代人工智能產(chǎn)業(yè)技術(shù)創(chuàng)新聯(lián)盟OpenI啟智開源社區(qū)的建設(shè),推動(dòng)人工智能領(lǐng)域開源開放協(xié)同創(chuàng)新生態(tài)的構(gòu)建;支持的可控開源創(chuàng)造行動(dòng)是我國(guó)2020年啟動(dòng)的重大創(chuàng)新體系建設(shè)計(jì)劃,核心是激活和匯聚開放群體智慧和貢獻(xiàn),構(gòu)建一種可持續(xù)發(fā)展的生態(tài)。

    在科學(xué)研究創(chuàng)新方面,項(xiàng)目有效地幫助了micROS機(jī)器人操作系統(tǒng)團(tuán)隊(duì)、NuBot國(guó)際頂尖機(jī)器人競(jìng)技團(tuán)隊(duì)、Trustie群體化軟件開發(fā)研究團(tuán)隊(duì)等解決了智能化軟件開發(fā)和持續(xù)性質(zhì)量改進(jìn)等難題。

    在高校實(shí)踐教學(xué)方面,智能化實(shí)踐學(xué)習(xí)平臺(tái)頭歌(EduCoder)支撐產(chǎn)教各界開發(fā)了超過6.9萬個(gè)在線計(jì)算機(jī)訓(xùn)練項(xiàng)目、391萬個(gè)開源代碼倉(cāng)庫,各類師生和開發(fā)者超過80萬人,提供實(shí)踐課程3 900余門。此外,項(xiàng)目還參與支撐了3屆“全國(guó)高校綠色計(jì)算創(chuàng)新大賽”,參賽人數(shù)總量超過2萬人次。

    5 結(jié)束語

    圍繞基于大數(shù)據(jù)的軟件智能開發(fā)方法和環(huán)境,項(xiàng)目團(tuán)隊(duì)提出了一套大數(shù)據(jù)驅(qū)動(dòng)的軟件智能化開發(fā)方法,涉及軟件開發(fā)多個(gè)主要過程中的智能化支撐技術(shù)。項(xiàng)目團(tuán)隊(duì)研發(fā)了一批軟件智能化開發(fā)工具原型系統(tǒng),在基于知識(shí)圖譜的軟件開發(fā)問題復(fù)雜查詢、數(shù)據(jù)驅(qū)動(dòng)的測(cè)試、智能化群體協(xié)作、智能化開發(fā)運(yùn)行一體化決策等方面均提供了基于軟件大數(shù)據(jù)的智能推薦和開發(fā)支持?;趯?duì)國(guó)際開源軟件社區(qū)級(jí)技術(shù)的整體分析和研究,項(xiàng)目團(tuán)隊(duì)建立了一套互聯(lián)網(wǎng)及開源軟件數(shù)據(jù)資源的獲取匯聚技術(shù)和方法,以及融合利用技術(shù)方案,目前可以跟蹤和獲取超過1.5 PB的軟件工程數(shù)據(jù),分析監(jiān)測(cè)了392萬個(gè)開源軟件,為全球開源領(lǐng)域的4 397萬名開發(fā)人員建立了畫像,提升了我國(guó)對(duì)此類數(shù)據(jù)的掌控能力。

    在前期國(guó)家計(jì)劃形成的軟件資源共享與群智開發(fā)平臺(tái)基礎(chǔ)上,項(xiàng)目團(tuán)隊(duì)進(jìn)一步發(fā)展了軟件開發(fā)中的數(shù)據(jù)智能支撐功能,形成了較為完善的云化開發(fā)平臺(tái),并對(duì)外提供公共服務(wù)。目前,開源開發(fā)平臺(tái)注冊(cè)的各類用戶約41.5萬人,開源項(xiàng)目1.5萬個(gè);開源教育平臺(tái)匯聚了5.4萬個(gè)開源訓(xùn)練項(xiàng)目,293萬個(gè)開源代碼倉(cāng)庫,來自982所高校與企業(yè)的1.1萬名注冊(cè)教師、33.2萬名注冊(cè)學(xué)生和開發(fā)者,提供實(shí)踐課程1 600余門。在6家大型軟件開發(fā)企業(yè)中取得了一批應(yīng)用示范的成果,顯著提高了軟件企業(yè)的生產(chǎn)效率和質(zhì)量;形成了一個(gè)自主可控的軟件開發(fā)共享服務(wù)的技術(shù)框架,并基于此方案支持了一批國(guó)內(nèi)開源社區(qū)的支撐環(huán)境建設(shè),包括“云計(jì)算與大數(shù)據(jù)”重點(diǎn)專項(xiàng)的集成平臺(tái)的環(huán)境建設(shè)。

    猜你喜歡
    智能化智能
    智能化戰(zhàn)爭(zhēng)多維透視
    軍事文摘(2022年19期)2022-10-18 02:41:14
    大型公共建筑智能化系統(tǒng)造價(jià)控制
    智能化的“世界觀”
    印刷智能化,下一站……
    智能制造 反思與期望
    智能前沿
    文苑(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
    智能制造·AI未來
    商周刊(2018年18期)2018-09-21 09:14:46
    熟女av电影| 久久久国产精品麻豆| 国产精品一二三区在线看| 亚洲色图综合在线观看| 久久这里只有精品19| 日本-黄色视频高清免费观看| 免费大片黄手机在线观看| 午夜影院在线不卡| 女人被躁到高潮嗷嗷叫费观| 狂野欧美激情性bbbbbb| 久久ye,这里只有精品| 日韩中字成人| 成人毛片60女人毛片免费| 女性生殖器流出的白浆| 免费高清在线观看日韩| 亚洲国产看品久久| 成年av动漫网址| 一边摸一边做爽爽视频免费| 毛片一级片免费看久久久久| www.精华液| 极品人妻少妇av视频| 国产精品国产三级专区第一集| 久久女婷五月综合色啪小说| 18+在线观看网站| 久久精品国产鲁丝片午夜精品| 国产日韩欧美视频二区| 一级a爱视频在线免费观看| 丝袜美足系列| 两个人看的免费小视频| 中文精品一卡2卡3卡4更新| 中文欧美无线码| 纵有疾风起免费观看全集完整版| 国产在线视频一区二区| 日韩电影二区| 亚洲国产成人一精品久久久| 我要看黄色一级片免费的| 日韩成人av中文字幕在线观看| 亚洲一级一片aⅴ在线观看| 波多野结衣一区麻豆| 亚洲av中文av极速乱| 天天影视国产精品| 国产不卡av网站在线观看| 晚上一个人看的免费电影| 婷婷色综合www| 叶爱在线成人免费视频播放| 久久精品aⅴ一区二区三区四区 | 欧美成人午夜精品| 成年人午夜在线观看视频| 午夜老司机福利剧场| 天堂8中文在线网| 熟女少妇亚洲综合色aaa.| 亚洲av男天堂| 视频区图区小说| 超色免费av| 老鸭窝网址在线观看| 精品国产乱码久久久久久男人| 欧美人与善性xxx| 日韩一区二区视频免费看| 久久精品熟女亚洲av麻豆精品| 国产精品麻豆人妻色哟哟久久| 天天躁夜夜躁狠狠躁躁| 国产日韩欧美视频二区| 亚洲国产精品成人久久小说| 在线 av 中文字幕| 99久国产av精品国产电影| 丰满少妇做爰视频| 丝袜美足系列| 午夜日韩欧美国产| 黄色毛片三级朝国网站| 久久青草综合色| 制服人妻中文乱码| 高清av免费在线| 免费不卡的大黄色大毛片视频在线观看| 亚洲美女黄色视频免费看| 亚洲av中文av极速乱| 91午夜精品亚洲一区二区三区| 亚洲精品aⅴ在线观看| 午夜福利在线观看免费完整高清在| 精品国产一区二区三区久久久樱花| 性高湖久久久久久久久免费观看| 国产在线免费精品| 看免费成人av毛片| 伦精品一区二区三区| 久久精品aⅴ一区二区三区四区 | 亚洲精品美女久久av网站| 中文字幕人妻丝袜一区二区 | 国产一区有黄有色的免费视频| 男女下面插进去视频免费观看| 久久久国产欧美日韩av| 欧美 日韩 精品 国产| 香蕉精品网在线| 久久久久久免费高清国产稀缺| 国产成人欧美| 久热久热在线精品观看| 久久久久久免费高清国产稀缺| 欧美亚洲日本最大视频资源| 青春草国产在线视频| 水蜜桃什么品种好| 亚洲五月色婷婷综合| 99热全是精品| 日韩 亚洲 欧美在线| 亚洲欧美精品综合一区二区三区 | 欧美av亚洲av综合av国产av | 五月天丁香电影| 国产精品久久久久成人av| 中文字幕精品免费在线观看视频| 亚洲欧美一区二区三区久久| 中文字幕精品免费在线观看视频| 亚洲精品国产av成人精品| 一本久久精品| 丰满少妇做爰视频| av女优亚洲男人天堂| 人妻人人澡人人爽人人| 国产老妇伦熟女老妇高清| 啦啦啦中文免费视频观看日本| 久久久精品94久久精品| 亚洲av电影在线观看一区二区三区| 丰满迷人的少妇在线观看| 黄色怎么调成土黄色| 午夜福利视频精品| 国产成人a∨麻豆精品| 99久国产av精品国产电影| 秋霞在线观看毛片| 18禁观看日本| 99久久人妻综合| 一区二区日韩欧美中文字幕| 亚洲精品美女久久久久99蜜臀 | 天堂8中文在线网| 丰满少妇做爰视频| 成年人午夜在线观看视频| 女人被躁到高潮嗷嗷叫费观| 成年av动漫网址| 男女午夜视频在线观看| 日韩精品免费视频一区二区三区| 亚洲在久久综合| 国产精品一区二区在线观看99| 在线天堂最新版资源| 亚洲精品自拍成人| 一区二区三区精品91| 美女主播在线视频| 亚洲国产欧美在线一区| 国产精品 欧美亚洲| 中文字幕最新亚洲高清| 亚洲 欧美一区二区三区| 春色校园在线视频观看| 欧美精品亚洲一区二区| 亚洲av综合色区一区| 久久精品国产鲁丝片午夜精品| 考比视频在线观看| 国产在线视频一区二区| 国产免费福利视频在线观看| 一级,二级,三级黄色视频| 日韩制服骚丝袜av| √禁漫天堂资源中文www| 两个人看的免费小视频| 人妻人人澡人人爽人人| 人妻系列 视频| 婷婷成人精品国产| videos熟女内射| 少妇的逼水好多| 免费高清在线观看日韩| 欧美日韩成人在线一区二区| 国产国语露脸激情在线看| 啦啦啦在线观看免费高清www| 日本猛色少妇xxxxx猛交久久| 久久久久久久久免费视频了| 大片免费播放器 马上看| 美女国产高潮福利片在线看| 韩国高清视频一区二区三区| 中文字幕制服av| 亚洲美女搞黄在线观看| 亚洲三区欧美一区| 伊人久久大香线蕉亚洲五| 久久精品国产亚洲av天美| 侵犯人妻中文字幕一二三四区| 春色校园在线视频观看| 性色avwww在线观看| 美女国产高潮福利片在线看| 欧美亚洲日本最大视频资源| 欧美在线黄色| 国产精品不卡视频一区二区| 成人亚洲精品一区在线观看| a级毛片在线看网站| 亚洲美女视频黄频| 伦理电影免费视频| 校园人妻丝袜中文字幕| 亚洲色图综合在线观看| 久久综合国产亚洲精品| 亚洲国产精品一区三区| 午夜91福利影院| 国产黄色视频一区二区在线观看| 亚洲精品中文字幕在线视频| 国产又爽黄色视频| 精品少妇黑人巨大在线播放| 丝袜美腿诱惑在线| 亚洲熟女精品中文字幕| 亚洲av福利一区| 啦啦啦视频在线资源免费观看| 国产精品熟女久久久久浪| 国产爽快片一区二区三区| 一区福利在线观看| 亚洲人成77777在线视频| 只有这里有精品99| 国产男人的电影天堂91| 久久99热这里只频精品6学生| 女性被躁到高潮视频| 国产欧美日韩一区二区三区在线| 国产av一区二区精品久久| 90打野战视频偷拍视频| 国产精品国产三级专区第一集| 色吧在线观看| 亚洲精品av麻豆狂野| a 毛片基地| 18禁观看日本| a级片在线免费高清观看视频| 国产在线免费精品| 久久久亚洲精品成人影院| 亚洲国产av影院在线观看| 黑人欧美特级aaaaaa片| 欧美国产精品va在线观看不卡| 欧美日韩亚洲高清精品| 另类亚洲欧美激情| 免费女性裸体啪啪无遮挡网站| 国产黄频视频在线观看| 日韩大片免费观看网站| 国精品久久久久久国模美| 国产黄色视频一区二区在线观看| 男女午夜视频在线观看| 亚洲 欧美一区二区三区| 亚洲av免费高清在线观看| 韩国精品一区二区三区| 欧美老熟妇乱子伦牲交| 中文字幕人妻丝袜制服| 五月伊人婷婷丁香| 国产亚洲午夜精品一区二区久久| 啦啦啦在线免费观看视频4| 秋霞在线观看毛片| 国产精品香港三级国产av潘金莲 | 日韩中文字幕视频在线看片| 国产成人a∨麻豆精品| 在线观看www视频免费| 国产不卡av网站在线观看| 久久久亚洲精品成人影院| 成人国产av品久久久| 九九爱精品视频在线观看| 天天影视国产精品| 久久女婷五月综合色啪小说| 国产精品一国产av| 亚洲精品国产色婷婷电影| 在现免费观看毛片| 国产乱人偷精品视频| 日韩,欧美,国产一区二区三区| av在线观看视频网站免费| 午夜久久久在线观看| 国产在视频线精品| 伊人久久大香线蕉亚洲五| 国产欧美亚洲国产| av在线观看视频网站免费| 国产精品一区二区在线不卡| 国产 精品1| 精品亚洲成a人片在线观看| 久久久国产精品麻豆| 久久精品国产自在天天线| 成人漫画全彩无遮挡| 亚洲精品第二区| 久热这里只有精品99| 国产成人精品久久久久久| 亚洲国产av新网站| 黄色毛片三级朝国网站| 女人被躁到高潮嗷嗷叫费观| 国产又色又爽无遮挡免| 亚洲av欧美aⅴ国产| 亚洲av福利一区| 超碰成人久久| 丝袜喷水一区| 欧美最新免费一区二区三区| 最黄视频免费看| 黄片播放在线免费| 妹子高潮喷水视频| 国产毛片在线视频| 只有这里有精品99| 欧美另类一区| 亚洲欧美精品综合一区二区三区 | 色94色欧美一区二区| 欧美日韩精品成人综合77777| 久久热在线av| 麻豆精品久久久久久蜜桃| 赤兔流量卡办理| 国产精品 国内视频| 一级片'在线观看视频| 欧美 亚洲 国产 日韩一| 老熟女久久久| 久久精品人人爽人人爽视色| 免费在线观看黄色视频的| 91精品伊人久久大香线蕉| 侵犯人妻中文字幕一二三四区| 天天影视国产精品| 亚洲av日韩在线播放| 成人国产av品久久久| 熟女av电影| 欧美日韩成人在线一区二区| 久久影院123| 韩国高清视频一区二区三区| 精品人妻在线不人妻| 精品福利永久在线观看| 精品久久蜜臀av无| 国产片特级美女逼逼视频| 欧美av亚洲av综合av国产av | 大话2 男鬼变身卡| 在线观看三级黄色| 女性被躁到高潮视频| 美女中出高潮动态图| 男的添女的下面高潮视频| 国产男人的电影天堂91| 日韩欧美精品免费久久| av线在线观看网站| 99精国产麻豆久久婷婷| 免费不卡的大黄色大毛片视频在线观看| 久久国内精品自在自线图片| 天天躁狠狠躁夜夜躁狠狠躁| 在线天堂最新版资源| 一本—道久久a久久精品蜜桃钙片| 亚洲综合精品二区| 老汉色∧v一级毛片| 精品人妻熟女毛片av久久网站| 如日韩欧美国产精品一区二区三区| 在线观看美女被高潮喷水网站| 美女视频免费永久观看网站| 大香蕉久久网| 一区二区av电影网| 99九九在线精品视频| 99久久人妻综合| 精品国产露脸久久av麻豆| 极品人妻少妇av视频| 久久综合国产亚洲精品| 天堂8中文在线网| 国产一区二区在线观看av| 日本欧美视频一区| 在线观看三级黄色| 天天影视国产精品| 超碰成人久久| 中文字幕亚洲精品专区| 久久av网站| 汤姆久久久久久久影院中文字幕| 欧美日韩视频高清一区二区三区二| 久久精品国产亚洲av天美| 丝袜美腿诱惑在线| 国产男女内射视频| 亚洲精品第二区| 精品人妻熟女毛片av久久网站| 免费在线观看黄色视频的| 午夜福利影视在线免费观看| 久久国产精品男人的天堂亚洲| 男女啪啪激烈高潮av片| 在线观看国产h片| 飞空精品影院首页| 在线天堂最新版资源| 有码 亚洲区| 日韩中文字幕欧美一区二区 | 日本猛色少妇xxxxx猛交久久| 超碰97精品在线观看| 久久久久国产网址| 亚洲精品乱久久久久久| 黄色视频在线播放观看不卡| 亚洲第一青青草原| 最黄视频免费看| videossex国产| 亚洲国产毛片av蜜桃av| 亚洲精品日韩在线中文字幕| 看免费av毛片| 国产日韩欧美在线精品| 亚洲精品久久久久久婷婷小说| 少妇猛男粗大的猛烈进出视频| 免费黄频网站在线观看国产| 国产黄色免费在线视频| av在线播放精品| av在线app专区| a级毛片在线看网站| 啦啦啦视频在线资源免费观看| 丁香六月天网| 天天躁夜夜躁狠狠久久av| 亚洲精品国产色婷婷电影| 999久久久国产精品视频| 黑丝袜美女国产一区| 国产精品欧美亚洲77777| 黄色 视频免费看| 夫妻性生交免费视频一级片| 精品午夜福利在线看| 亚洲精品在线美女| 成人亚洲精品一区在线观看| 亚洲av福利一区| 婷婷成人精品国产| 香蕉丝袜av| 久久人人爽av亚洲精品天堂| 亚洲美女搞黄在线观看| 永久网站在线| 久久ye,这里只有精品| 午夜精品国产一区二区电影| 亚洲欧美精品自产自拍| 有码 亚洲区| 在线亚洲精品国产二区图片欧美| 欧美日韩一区二区视频在线观看视频在线| 国产亚洲午夜精品一区二区久久| 女人被躁到高潮嗷嗷叫费观| 午夜福利在线观看免费完整高清在| 激情五月婷婷亚洲| 国产精品蜜桃在线观看| 欧美xxⅹ黑人| 中国国产av一级| 精品亚洲乱码少妇综合久久| 成人毛片60女人毛片免费| 国产综合精华液| 老女人水多毛片| 欧美精品一区二区大全| 成人18禁高潮啪啪吃奶动态图| 丰满饥渴人妻一区二区三| 国产熟女欧美一区二区| 国产一区二区 视频在线| 亚洲av在线观看美女高潮| 母亲3免费完整高清在线观看 | 日韩一区二区三区影片| 久久精品人人爽人人爽视色| 多毛熟女@视频| 狠狠精品人妻久久久久久综合| 99精国产麻豆久久婷婷| 亚洲欧洲日产国产| 丝瓜视频免费看黄片| 亚洲精品日韩在线中文字幕| 热re99久久国产66热| 一区福利在线观看| 汤姆久久久久久久影院中文字幕| 国产免费视频播放在线视频| 久久国产精品男人的天堂亚洲| 成人黄色视频免费在线看| 性色avwww在线观看| 宅男免费午夜| 一级毛片 在线播放| 成年人午夜在线观看视频| av有码第一页| 国产精品免费大片| 高清在线视频一区二区三区| 日韩av在线免费看完整版不卡| 免费观看无遮挡的男女| h视频一区二区三区| 日本色播在线视频| 色婷婷久久久亚洲欧美| 黄色一级大片看看| 国产片内射在线| 丁香六月天网| 欧美日韩视频精品一区| 中文字幕精品免费在线观看视频| 亚洲欧美成人精品一区二区| 亚洲伊人久久精品综合| 国产伦理片在线播放av一区| 性高湖久久久久久久久免费观看| 欧美日韩亚洲国产一区二区在线观看 | 天天操日日干夜夜撸| 免费观看性生交大片5| 亚洲国产看品久久| 国产国语露脸激情在线看| 九色亚洲精品在线播放| 国产av码专区亚洲av| 亚洲 欧美一区二区三区| 视频在线观看一区二区三区| 9191精品国产免费久久| 欧美黄色片欧美黄色片| av又黄又爽大尺度在线免费看| 晚上一个人看的免费电影| 纵有疾风起免费观看全集完整版| 男男h啪啪无遮挡| 国产午夜精品一二区理论片| 日本vs欧美在线观看视频| 欧美亚洲日本最大视频资源| 欧美精品人与动牲交sv欧美| 一二三四中文在线观看免费高清| 丁香六月天网| 国产熟女午夜一区二区三区| 曰老女人黄片| 国产成人精品在线电影| 在线观看国产h片| 在线观看一区二区三区激情| 26uuu在线亚洲综合色| 建设人人有责人人尽责人人享有的| 国产女主播在线喷水免费视频网站| 午夜日韩欧美国产| 亚洲欧美成人精品一区二区| 国产成人免费观看mmmm| 蜜桃国产av成人99| 丝袜人妻中文字幕| 黄色视频在线播放观看不卡| 最近最新中文字幕大全免费视频 | 1024香蕉在线观看| av免费在线看不卡| 香蕉精品网在线| 欧美精品人与动牲交sv欧美| 最近手机中文字幕大全| 亚洲中文av在线| xxxhd国产人妻xxx| 国产精品不卡视频一区二区| 日韩av免费高清视频| 极品少妇高潮喷水抽搐| 人人妻人人澡人人看| 免费看av在线观看网站| 国产精品 国内视频| 一本久久精品| 性高湖久久久久久久久免费观看| 美女xxoo啪啪120秒动态图| 国产日韩欧美在线精品| 久久久久久伊人网av| 熟妇人妻不卡中文字幕| 国产 一区精品| 最近的中文字幕免费完整| 成人毛片60女人毛片免费| 久久精品国产综合久久久| 国产一区二区激情短视频 | 亚洲精品久久午夜乱码| 久久这里有精品视频免费| 亚洲av男天堂| 韩国精品一区二区三区| 香蕉国产在线看| 久久久久国产精品人妻一区二区| 美女脱内裤让男人舔精品视频| 91精品伊人久久大香线蕉| 亚洲在久久综合| 久久久久久久久免费视频了| 18+在线观看网站| 免费av中文字幕在线| 国产日韩欧美在线精品| 99久久中文字幕三级久久日本| 999久久久国产精品视频| 两性夫妻黄色片| 建设人人有责人人尽责人人享有的| 男女边摸边吃奶| 国产成人aa在线观看| 寂寞人妻少妇视频99o| 久久午夜福利片| 波野结衣二区三区在线| 高清不卡的av网站| 久久鲁丝午夜福利片| 成人漫画全彩无遮挡| 赤兔流量卡办理| 国产精品欧美亚洲77777| 国产精品香港三级国产av潘金莲 | 老女人水多毛片| 少妇人妻 视频| 亚洲国产成人一精品久久久| 亚洲熟女精品中文字幕| 亚洲五月色婷婷综合| 日韩人妻精品一区2区三区| 人妻少妇偷人精品九色| 满18在线观看网站| 春色校园在线视频观看| 久久人妻熟女aⅴ| 超碰成人久久| 肉色欧美久久久久久久蜜桃| 最近手机中文字幕大全| 精品国产乱码久久久久久男人| 国语对白做爰xxxⅹ性视频网站| 在线天堂最新版资源| av电影中文网址| 人体艺术视频欧美日本| 亚洲成人手机| 伦理电影大哥的女人| 久久韩国三级中文字幕| 女性生殖器流出的白浆| 卡戴珊不雅视频在线播放| 亚洲国产日韩一区二区| 久久99热这里只频精品6学生| 欧美日本中文国产一区发布| 卡戴珊不雅视频在线播放| 国产一区二区激情短视频 | 一二三四中文在线观看免费高清| 黄色一级大片看看| 男男h啪啪无遮挡| 波野结衣二区三区在线| 精品卡一卡二卡四卡免费| 波野结衣二区三区在线| 午夜福利影视在线免费观看| 丝袜美腿诱惑在线| 欧美国产精品va在线观看不卡| 亚洲一码二码三码区别大吗| 人妻少妇偷人精品九色| 亚洲国产精品一区二区三区在线| 在线 av 中文字幕| 欧美精品人与动牲交sv欧美| 在线免费观看不下载黄p国产| 日韩av在线免费看完整版不卡| 国产日韩欧美视频二区| 一区在线观看完整版| 热re99久久精品国产66热6| 欧美人与性动交α欧美精品济南到 | 成年人午夜在线观看视频| 一级,二级,三级黄色视频| 久久人人爽人人片av| 两性夫妻黄色片| 中文字幕亚洲精品专区| 亚洲国产av新网站| 丝袜喷水一区| 大片电影免费在线观看免费| 国产精品国产av在线观看| 中国国产av一级| 看免费成人av毛片| 9191精品国产免费久久| 精品国产乱码久久久久久男人| 在线 av 中文字幕| 男女啪啪激烈高潮av片| 在线观看www视频免费| 欧美人与性动交α欧美精品济南到 | 亚洲欧美精品综合一区二区三区 | 国产亚洲最大av| 中文字幕人妻丝袜一区二区 | 男男h啪啪无遮挡| 日本免费在线观看一区| 欧美日韩av久久| 国产精品成人在线|