江賀聶黎明-面向任務的代碼搜索_第1頁
江賀聶黎明-面向任務的代碼搜索_第2頁
江賀聶黎明-面向任務的代碼搜索_第3頁
江賀聶黎明-面向任務的代碼搜索_第4頁
江賀聶黎明-面向任務的代碼搜索_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程研究與實踐2016(SEPR2016)論壇2在軟件開發(fā)過程中,代碼搜索能夠為開發(fā)者提供參考的代碼段去輔助完成特定的編程任務?;A(chǔ)數(shù)據(jù)和影基礎(chǔ)數(shù)據(jù)和影響力分析?收集了93篇與代碼/API推薦相關(guān)的文獻?作者總計208個,國家16個。?2.Who?誰是最高產(chǎn)的作者?影響力如何?Thailand5IranIran,1Switzerland,2 France,1Thailand,1KoreaJapan,11Canada,19aIndia,4Germany,4Belgium,3Israel,3Singapore,4USAChinaCanadaJapanBrazilSouthKoreaItalyGermanyIndiaBelgiumIsraelSingaporeSwitzerlandFranceIran6序號作者相關(guān)論文篇數(shù)H-index國家1DavidLo1033Singapore2CollinMcMillan811USA3DenysPoshyvanyk839USAShaoweiWang11Singapore5MarkGrechanik720USA6EmilyHill618USA7TaoXie449USA8ReidHolmes420Canada9SushilBajracharya420USA10CristinaLopes440USA7序號作者相關(guān)論文篇數(shù)H-index國家1DavidLo1033Singapore2CollinMcMillan811USA3DenysPoshyvanyk839USAShaoweiWang11Singapore5MarkGrechanik720USA6EmilyHill618USA7TaoXie449USA8ReidHolmes420Canada9SushilBajracharya420USA10CristinaLopes440USA序號作者相關(guān)論文篇數(shù)ACS指數(shù)總被引次數(shù)1TaoXie4245.37232ReidHolmes4184.84113GailC.Murphy2165.73504StevenP.Reiss1165.0165526K.Vijay-Shanker3121.64837Naiyana18KajalClaypool1100.52019DavidMandelin187.535010LinXu187.5350注:ACS不僅衡量了作者對文章的貢獻度,還衡量了對該領(lǐng)域的貢獻度8注:ACS注:ACS不僅衡量了作者對文章的貢獻度,還衡量了對該領(lǐng)域的貢獻度9序號作者相關(guān)論文篇數(shù)ACS指數(shù)總被引次數(shù)1TaoXie4245.37232ReidHolmes4184.84113GailC.Murphy2165.73504StevenP.Reiss1165.016552266K.Vijay-Shanker3121.648377NaiyanNaiyana18KajalClaypool1100.52019DavidMandelin187.535010LinXu187.5350數(shù)1helpingtonavigatetheAPIjungle052baprogrammerassistantforreusingopensourceeb6ASE20073gstructuralcontexttorecommendsourcecodeexamples54XSnippet:miningForsamplecode065alordersfromsourcecodefromagescenariostospecificationsFSE0076UsingnaturallanguageprogramanalysistolocateandunderstandactionorientedconcernsD77ndingAPIUsagePatterns98ricprogrammingintegratingwebsearchintoedevelopmentenvironment9earch9gfromexamplestoimprovecodecompletionsystemsFSEFSE09pingjungle3pingjungle3Ustructuralcontexttondexamples,ICSE2005數(shù)1helpingtonavigatetheAPIjungle052baprogrammerassistantforreusingopensourceeb6ASE20073gstructuralcontexttorecommendsourcecodeexamples54XSnippet:miningForsamplecode0655ialordersfromsourcecodefromtthAFSEFSE007,6UsingnaturallanguageprogramanalysistolocateandD79edevelopmentenvironmentsingsingrecommerecommeearch9msFSEFSE09作者合著網(wǎng)絡(2)作者合著網(wǎng)絡(3)代碼搜索的代碼搜索的Two按輸入類型分:自由文本作為查詢(面向任務的代碼搜索)?Lvetal.ASE2015,Keivanlooetal.ICSE2014,McMillanetal.TOSEM2013,Bajracharyaetal.FSE2010.API?Subramanianetal.ICSE2014,Ghafarietal.ICPC2014,MoritzASE2013,Wangetal.ASE2011.Zhongetal.ECOOP2009.?Nguyenetal.ICSE2012,Rahmanetal.WCRE2014.?Stoleeetal.TOSEM2014,Inoueetal.ICSE2012,Thummalapentaetal.ASE2007,Holmesetal.ICSE2005.自動代碼修復?Zhongetal.ICSE2015,Peietal.ICSE2015,Taoetal.FSE2014,Kimetal.ICSE2013.代代碼片段指的是Java的一個類(class)中的某個方法。它包含了注釋和代碼,代碼有方法名和方法體。發(fā)現(xiàn)1:現(xiàn)有的代碼推薦主要借發(fā)現(xiàn)1:現(xiàn)有的代碼推薦主要借助于信息檢索的方新查詢推薦代碼段。recordaudiosoundROSF:LeveragingInformationRetrievalandSupervisedLearningforRecommendingCodeSnippets(融合了信息檢索和監(jiān)督學習的代碼推薦方法)“ROSF:LeveragingInformationRetrievalandSupervisedLearningforRecommendingCodeSnippets”,IEEETransactionsonServicesComputing,2016.何充分利用該任務中的多種領(lǐng)域特征,并為特征來構(gòu)建分類器,進而為新的查詢ROSF算法框架藍色帶箭頭的線表示訓練的過程,ROSF算法框架藍色帶箭頭的線表示訓練的過程,橘色帶箭頭的線表示推薦的過程,黑色帶箭頭的線表示數(shù)據(jù)準備過程。Step1:使用信息檢索方法(BM25)為某些查詢準備對應的代碼段候選集合。Step2:在識別一些領(lǐng)域特征并對候選集合中的代碼片段進行標注的基礎(chǔ)上,利用監(jiān)督學習方法構(gòu)建出Step3:當開發(fā)者輸入新查詢對應的候選集合進行重新排序,最后推薦一定數(shù)目的代碼段。?查詢?代碼段倉庫?評估4分值:高度相關(guān)(4),相關(guān)(3),一點相關(guān)(2),不相關(guān)(1)。?查詢!?代碼段倉庫?評估4分值:高度相關(guān)(4),相關(guān)(3),一點相關(guān)(2),不相關(guān)(1)。24–一個查詢的推薦結(jié)果中相關(guān)代碼片段數(shù)量所占的比例。值越大越好。 –例如,為某個查詢推薦10個代碼片段,其中有7個是相關(guān)的,那么Precision的值為:7/10*100%=70%.–NDCG=,G=R1+2RRi第1個位置和第i個位置上的代碼片段對應的相關(guān)性得分。iG表示推薦列表的?使用兩個度量指標在多個測試查詢上的平均值作為算法性能的度量。25Precision=所占的比例,值越大越好。推薦結(jié)果中相關(guān)代碼片段數(shù)量Precision=所占的比例,值越大越好。推薦結(jié)果中相關(guān)代碼片段數(shù)量–一個查詢的推薦結(jié)果中相關(guān)代碼片段數(shù)量所占的比例。值越大越好。–例如,為某個查詢推薦10個代碼片段,其中有7個是相關(guān)的,那么Precision的值為:7/10*100%=70%.?NDCG–NDCG=,G=R1+NDCG值越大,性能越好。RRi第1個位置和第i個位置上的代碼片段對應的相關(guān)性得分。iG表示推薦列表的?使用兩個度量指標在多個測試查詢上的平均值作為算法性能的度量。25/26RQ1:是否參數(shù)(候選集合的規(guī)模)會影響算法的性能?AnswertoRQ1:當候選集合的規(guī)模遞增時,算法性能(兩個指標Precision@10和NDCG@10)先增后降。當候選集合中實例數(shù)量達到70時,算法性能達到最好。725/28AnswertoRQ新的代碼推薦方法對比,本文方法在Precision@10上提升TOSEM,2013.Mcmillanetal.PortfolioSearchingforRelevantFunctionsandTheirUsagesinMillionsofLinesofCode.ICSE,2014.Keivanlooetal.SpottingWorkingCodeExamples.ICSE,2010.Bajracharyaetal.Leveragingusagesimilarityforeffectiveretrievalofexamplesincoderepositories.2016/7/25/29間的/7/25/3031RQ3:算法中使用到的幾個特征是如何影響算法性能的?/7/25/32RQ3:算法中使用到的幾個特征是如何影響算法性能的?AnswerAnswertoRQ3:各個特征對算法影響程度各不相同。其中影響較大的幾個特征分別是:代碼段行數(shù)(f9),查詢與代碼段內(nèi)容的文本相似度(f1),查詢與Java引入語句之間的文本相似度(f6),以及查詢與代碼段內(nèi)容的主題相似度(f8)。類名方法名targzNetworkStateReceiveronReceivetxt存儲類名方法名targzNetworkStateReceiveronReceivetxt存儲ava命命名App項目預處理預處理/3334構(gòu)特征(與查詢無關(guān))Step1.為某個新查詢對應侯選集合中的每個實例分別計算預測的4個分值的概率值。Step2.根據(jù)每個分值中的概率值,為實例進行排序。Step3.推薦N個代碼片段給開發(fā)者。35發(fā)現(xiàn)1:現(xiàn)有的代碼推薦主要借助于信息檢索的方發(fā)現(xiàn)1:現(xiàn)有的代碼推薦主要借助于信息檢索的方法,匹配方式單一,效果不佳。發(fā)現(xiàn)2:查詢詞過短,以及查詢和匹配內(nèi)容使用不7/25/3637QECK:QueryExpansionBasedonCrowdKnowledgeforCodeSearch(基于眾智查詢擴展的代碼推薦)leiRenZeyiSunXiaochenLiQueryExpansionBasedonPrePrints,doi:10.1109/TSC.2016.2560165.38如果查詢擴展方法有用,那么如何找到合適的擴展詞對原始39?“Rankingcrowdknowledgetoassistsoftwaredevelopment,”ProgramComprehension(PC),2014.把質(zhì)量較高的StackOverflow(SO)問答對推薦給開發(fā)者。?D.Lo,"QueryexpansionviaWordNetforeffectivecodesearch,"SoftwareAnalysis,EvolutionandReengineering(SANER),2015.通過WordNet對查詢進行擴展,進而推薦代碼片段。?D.Lo,“Automatedconstructionofasoftware-specificwordsimilaritydatabase,”SoftwareMaintenance,ReengineeringandReverseEngineering(CSMRWCRE),2014.?"SWordNet:Inferringsemanticallyrelatedwordsfromsoftwarecontext,“ESE,2014.構(gòu)建軟件相關(guān)的近義詞列表。?與本文工作同時期的其它工作:?LoD.RACK:AutomaticAPIRecommendationusingCrowdsourcedKnowledge,SANER,2016.介紹了使用眾智進行API推薦??D.Lo,“Automatedconstructionofasoftware-specificwordsimilaritydatabase,”SoftwareMaintenance,ReengineeringandReverseEngineering(CSMRWCRE),2014.?"SWordNet:Inferringsemanticallyrelatedwordsfromsoftwarecontext,“ESE,2014.構(gòu)建軟件相關(guān)的近義詞列表。/40?“Rankingcrowdknowledgetoassistsoftwaredevelopment,”ProgramComprehension(PC),2014.把質(zhì)量較高的StackOverflow(SO)問答對推薦給開發(fā)者。?D.Lo,"QueryexpansionviaWordNetforeffectivecodesearch,"SoftwareAnalysis,EvolutionandReengineering(SANER),2015.通過WordNet對查詢進行擴展,進而推薦代碼片段。?與本文工作同時期的其它工作:?LoD.RACK:AutomaticAPIRecommendationusingCrowdsourcedKnowledge,SANER,2016.介紹了使用眾智進行API推薦flow智查詢擴展的代碼推薦算法框架利用文本相似度和用戶評分的綜合得分來推薦反饋方法從問答對中選出與原始查詢文檔中出現(xiàn)的次數(shù)多,在別的文檔中出現(xiàn)的次/41利用文本相似度和用戶利用文本相似度和用戶評分的綜合得分來推薦反饋方法從問答對中選出與原始查詢文檔中出現(xiàn)的次數(shù)多,在別的文檔中出現(xiàn)的次/42flow步驟:IDF/43?查詢?SO問答對倉庫(屏蔽掉與查詢相同的問答對)?代碼段倉庫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論