亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方法

文檔序號(hào):9274633閱讀:357來(lái)源:國(guó)知局
一種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方法
【專利說(shuō)明】一種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方法
[0001] 所屬領(lǐng)域
[0002] 本發(fā)明涉及軟件維護(hù)領(lǐng)域,具體涉及一種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方 法。所述方法對(duì)提交的代碼修改自動(dòng)生成代碼修改概要,并利用標(biāo)簽主題模型推薦與修改 內(nèi)容相關(guān)的標(biāo)簽,輔助維護(hù)人員理解代碼修改。
【背景技術(shù)】
[0003] 在軟件維護(hù)領(lǐng)域,軟件產(chǎn)品一般在滿足用戶不斷更改的需求中不斷的升級(jí)和維 護(hù),為了實(shí)現(xiàn)某個(gè)維護(hù)請(qǐng)求,開發(fā)人員需要不斷地根據(jù)用戶的需求完善軟件的各項(xiàng)功能,修 改后開發(fā)人員需要填寫程序修改登記表,并在程序變更通知書上寫明新舊程序的不同之 處。但是人工生成代碼的修改信息,工作量極大,并且開發(fā)人員自己編寫的代碼修改信息往 往具有主觀性,描述語(yǔ)句或許會(huì)令人費(fèi)解,所以自動(dòng)生成代碼修改概要是有必要的。
[0004] 在該領(lǐng)域中,相關(guān)人員已經(jīng)對(duì)自動(dòng)生成代碼概要進(jìn)行了研宄,Luis Fernando Cort6s-Coy 等人(10. 1109/SCAM. 2014. 14, 28-29)基于樹差分算法通過(guò) Change Distiller 技術(shù)獲取方法的代碼修改,也有著名的diffs技術(shù),分析代碼文本之間的差異,但在這些技 術(shù)中,生成的代碼修改提交信息往往信息量龐大,可讀性不佳,并且只是從what角度,即僅 僅描述了代碼差異,并沒(méi)有對(duì)why信息,即此處代碼修改的原因等信息進(jìn)行描述,而why信 息是開發(fā)人員比較關(guān)注的,開發(fā)人員更想知道發(fā)生此處修改的原因是什么?,F(xiàn)有技術(shù)中還 未出現(xiàn)對(duì)這一問(wèn)題的相關(guān)研宄報(bào)道。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明的目的是提供一種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方法。為軟件維護(hù) 人員提供代碼修改概要,方便軟件開發(fā)人員閱讀和理解軟件歷史修改,提高修改提交的質(zhì) 量,幫助開發(fā)人員更好地理解修改。
[0006] 實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案是:
[0007] -種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方法。包括如下步驟:
[0008] 1)根據(jù)定義的代碼修改類型,分析修改前后的代碼以及包含bug-report的代碼, 進(jìn)行關(guān)聯(lián)規(guī)則分析,得到關(guān)聯(lián)規(guī)則結(jié)果;
[0009] 2)根據(jù)關(guān)聯(lián)規(guī)則分析結(jié)果確定本次修改的類型;
[0010] 3)根據(jù)步驟2)確定的代碼修改類型,運(yùn)用定義的格式去描述代碼修改,描述結(jié)果 作為代碼修改的why信息,描述了代碼修改的原因;
[0011] 4)此步驟與步驟2)并行,提取代碼修改前后的代碼,即源系統(tǒng),運(yùn)用樹差分算法 將修改前后的代碼以樹的形式表現(xiàn)出來(lái),識(shí)別定位出兩份代碼文件中的修改;5)分析步 驟4)發(fā)生修改的代碼片段,依據(jù)以下定義的方法修改類型,確定代碼片段中方法的修改類 型;
[0012] 所述對(duì)方法的修改類型定義如下:
[0013] 第一種是在方法體中增加或者刪除某條語(yǔ)句;
[0014] 第二種是對(duì)方法進(jìn)彳丁重命名;
[0015] 第三種是增加,刪除或者更新變量聲明;
[0016] 第四種是權(quán)限的修改;
[0017] 第五種是方法含有的參數(shù)的改變;
[0018] 第六種是:找到發(fā)生方法修改所涉及到的包以及java文件;
[0019] 6)根據(jù)步驟5)確定的方法修改類型,運(yùn)用定義的格式整合生成關(guān)于代碼修改的 what信息;
[0020] 7)結(jié)合步驟5)生成的what信息和步驟3)生成的why信息,對(duì)其進(jìn)行內(nèi)容概要;
[0021] 8)與步驟7同時(shí)進(jìn)行的還有標(biāo)簽生成過(guò)程,運(yùn)用了 Tag-LDA主題模型,將步驟5) 生成的what信息和步驟3)生成的why信息作為主題模型的輸入,生成多個(gè)標(biāo)簽描述代碼 的修改;
[0022] 進(jìn)一步,步驟1)中分析代碼修改前后的文本以及包含bug-report的源代碼,對(duì)于 一些沒(méi)有bug-r印ort的源代碼,只分析代碼修改前后的文本。
[0023] 進(jìn)一步,步驟7)中進(jìn)行內(nèi)容概要的過(guò)程中,對(duì)于代碼中一些不必要進(jìn)行描述的方 法修改,在概要中不予生成其修改描述,從而實(shí)現(xiàn)內(nèi)容概要,規(guī)定只有滿足以下要求的方 法,才會(huì)對(duì)其描述,第一點(diǎn):相對(duì)于修改前增加的方法需要進(jìn)行描述;第二點(diǎn):對(duì)那些變更 內(nèi)容較多的代碼片段,需要對(duì)變更內(nèi)容涉及到的方法進(jìn)行描述。
[0024] 本發(fā)明提出一種代碼修改概要及標(biāo)簽生成方法,其有益效果包括以下幾點(diǎn):
[0025] (1)目前與代碼修改概要生成相關(guān)的技術(shù)有很多,類似的像diff,但是生成的提 交信息復(fù)雜,語(yǔ)言不夠精煉。而本發(fā)明生成的代碼修改提交信息可讀性強(qiáng),信息量充足。
[0026] (2)本發(fā)明對(duì)代碼修改的why信息進(jìn)行了生成,幫助開發(fā)人員更好的理解代碼修 改。
[0027] (3)本發(fā)明生成與提交信息相關(guān)的摘要與標(biāo)簽,幫助維護(hù)人員快速了解代碼修改 內(nèi)容。
【附圖說(shuō)明】
[0028] 圖1是本發(fā)明的整體流程圖;
[0029] 圖2是代碼修改類型圖;
[0030] 圖3是bug-report代碼修改提交信息;
[0031] 圖4是代碼修改why信息生成舉例;
[0032] 圖5是利用樹差分算法進(jìn)行的修改定位;
[0033] 圖6是在方法體中增加或者刪除某條語(yǔ)句的代碼舉例示意圖;
[0034] 圖7是對(duì)方法進(jìn)彳丁重命名的代碼舉例不意圖;
[0035] 圖8是代碼修改what信息生成舉例示意圖;
[0036] 圖9是代碼概要生成示意圖;
[0037] 圖10是Tag-LDA模型的示意圖;
[0038] 圖11是生成的標(biāo)簽以及代碼概要示意圖。
【具體實(shí)施方式】
[0039] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0040] 實(shí)施例:
[0041] -種面向代碼修改的概要及標(biāo)簽自動(dòng)生成方法,(具體過(guò)程如圖1所示)具體步 驟如下:
[0042] 步驟1)根據(jù)已確定的修改類型(修改類型總結(jié)如圖2所示),分析代碼修改前后 的文本以及包含bug-report的源代碼,對(duì)于一些沒(méi)有bug-report的源代碼,我們只分析代 碼修改前后的文本,進(jìn)行關(guān)聯(lián)規(guī)則分析,得到關(guān)聯(lián)規(guī)則結(jié)果。
[0043] 步驟2)根據(jù)關(guān)聯(lián)規(guī)則結(jié)果確定本次代碼的修改類型。例如:我們通過(guò)分析前后源 代碼,運(yùn)用關(guān)聯(lián)規(guī)則判斷出是改正了某處錯(cuò)誤,對(duì)應(yīng)代碼修改的類型是Corrective (糾錯(cuò) 性維護(hù))。對(duì)于一些有bug-report的代碼修改,分析bug-report的bug概要描述(概要 舉例如圖3所示)也能找到代碼修改的類型。以上生成的代碼修改類型信息作為代碼概要 why信息的組成部分。
[0044] 步驟3)根據(jù)步驟2)確定的代碼修改類型,運(yùn)用定義的格式描述代碼修改,描述的 具體格式如下所示,其中的method type指的是方法的類型,例如;abstract method (抽象 方法),static method(靜態(tài)方法),normal method(普通方法)等。
[0045]
[0046] 最后整合生成的描述信息,作為代碼修改中的why信息,描述了代碼修改的原因。 此步驟舉例說(shuō)明如圖4所示。
[0047] 步驟4)此步驟與步驟2并行,首先提取代碼修改前后的代碼,即源系統(tǒng),運(yùn)用樹差 分算法,將修改前后的代碼內(nèi)容以樹的形式表現(xiàn)出來(lái),識(shí)別定位出
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1