[發(fā)明專利]基于相關(guān)主題模型的程序理解和特征定位方法在審
| 申請?zhí)枺?/td> | 201510036368.8 | 申請日: | 2015-01-23 |
| 公開(公告)號: | CN104572115A | 公開(公告)日: | 2015-04-29 |
| 發(fā)明(設(shè)計(jì))人: | 孫小兵;劉湘月;李斌;李云;朱俊武 | 申請(專利權(quán))人: | 揚(yáng)州大學(xué) |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 南京鐘山專利代理有限公司 32252 | 代理人: | 戴朝榮 |
| 地址: | 225009 *** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 相關(guān) 主題 模型 程序 理解 特征 定位 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及軟件維護(hù)領(lǐng)域,尤其是一種基于相關(guān)主題模型的程序理解和特征定位方法。
背景技術(shù)
軟件產(chǎn)品一般在滿足用戶不斷更改的需求中不斷的升級和維護(hù)。為了實(shí)現(xiàn)某個維護(hù)請求,開發(fā)人員首先需要理解整個軟件系統(tǒng),特別是對程序的理解。程序理解是軟件維護(hù)過程中最頻繁的工作,通常情況下,在軟件維護(hù)過程中程序理解要占到60%以上的時間。隨著軟件系統(tǒng)的不斷發(fā)展,整個系統(tǒng)的規(guī)模越來越大,復(fù)雜度也越來越高。為了輔助這項(xiàng)工作,一些程序理解技術(shù)采用圖或者樹的結(jié)構(gòu)來輔助開發(fā)人員理解軟件系統(tǒng)的結(jié)構(gòu)。這些方法主要的依據(jù)是程序元素之間的靜態(tài)結(jié)構(gòu)依賴關(guān)系。由于程序理解的目標(biāo)是理解系統(tǒng)的一些功能點(diǎn)和不同的源代碼是如何對應(yīng)那些相關(guān)的功能特征,因此,這些程序理解技術(shù)會忽視系統(tǒng)的功能特征。此前幾乎沒有技術(shù)可以快速直觀的提供系統(tǒng)的特征和各個文件之間的聯(lián)系,然而特征及其聯(lián)系可以有效的幫助開發(fā)人員得到一個軟件系統(tǒng)總體功能方面的特征信息,為軟件系統(tǒng)建立一個基于特征的網(wǎng)絡(luò)結(jié)構(gòu),可以幫助開發(fā)人員更加簡單和快速的理解軟件系統(tǒng)。
特征定位是軟件維護(hù)和演化過程中由程序員進(jìn)行的最重要和最常見的活動之一,任何一個維護(hù)活動都需要在首先定位與手頭任務(wù)有關(guān)的代碼的情況下完成。特征定位對于軟件維護(hù)來說至關(guān)重要,因?yàn)樗窃谠隽孔兓谋尘跋卤粓?zhí)行的。在軟件系統(tǒng)中,一個特征代表一種功能,這種功能是按照開發(fā)者和使用者的要求和被接受程度來定義的。軟件維護(hù)與演化涉及增加新的功能,改進(jìn)現(xiàn)有的功能和修復(fù)漏洞,類似于去除一些不想要的功能。確定一個已知的特殊功能在源代碼中的位置叫做特征定位。隨著整個軟件代碼的不斷增加與變化,特征定位已成為開發(fā)人員所進(jìn)行的一種最常見的維護(hù)活動。而此前的技術(shù)大部分只關(guān)注如何進(jìn)行特征定位,很少有為需要特征定位的人員提供一個全面準(zhǔn)確而又易于理解的結(jié)果。給定一個特征,正確并且全面的定位到相關(guān)的代碼,并為定位到的代碼提供一個簡要的說明,更加有益于程序開發(fā)人員實(shí)現(xiàn)特征定位。
相關(guān)主題模型是一個在文檔的內(nèi)容屬性和網(wǎng)絡(luò)結(jié)構(gòu)上的層次概率分布模型。模型第一步將語料庫中的所有文檔作為一個主題概率混合模型,其次將文檔之間的聯(lián)系建立為一個二元變量。主要用來分析非結(jié)構(gòu)化語料庫,相關(guān)主題模型為理解和分析語料庫文檔之間的網(wǎng)絡(luò)關(guān)聯(lián)建立一個易于理解的模型。利用相關(guān)主題模型為經(jīng)過預(yù)處理的軟件系統(tǒng)進(jìn)行建模,為軟件系統(tǒng)建立程序特征網(wǎng)絡(luò),程序特征網(wǎng)絡(luò)以網(wǎng)絡(luò)的形式將系統(tǒng)所有文檔即類文件及其之間的聯(lián)系展示出來,結(jié)點(diǎn)為每個類文件的內(nèi)容特征,邊側(cè)表示兩個文檔之間是否有聯(lián)系。軟件系統(tǒng)的特征以網(wǎng)絡(luò)的形式展現(xiàn)出來,便于開發(fā)人員快速準(zhǔn)確形象的理解軟件系統(tǒng)。在特征定位時,將特征擴(kuò)展為特征集作為程序特征網(wǎng)絡(luò)的一個結(jié)點(diǎn),可以有效的預(yù)測其相關(guān)聯(lián)的類文件結(jié)點(diǎn),再對這些結(jié)點(diǎn)進(jìn)行排序并提取摘要給予簡單的描述,更加有益于程序開發(fā)人員快速方便的實(shí)現(xiàn)特征定位。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明提供一種基于相關(guān)主題模型的程序理解和特征定位方法,包括如下步驟:
(1)導(dǎo)入需要理解的軟件系統(tǒng)的源代碼,提取每個類文件的用戶自定義標(biāo)識符以及注釋作為研究對象,并對其進(jìn)行預(yù)處理;
(2)利用相關(guān)主題模型為經(jīng)過預(yù)處理的類進(jìn)行建模,生成該系統(tǒng)的關(guān)于類文件的程序特征網(wǎng)絡(luò),輸出該程序特征網(wǎng)絡(luò)供程序理解;
(3)輸入特征并將特征擴(kuò)展為特征集,特征集是特征中動詞和名詞以及其同義詞的集合,將擴(kuò)展的特征集作為程序特征網(wǎng)絡(luò)的一個結(jié)點(diǎn)對象,利用相關(guān)主題模型預(yù)測與其有邊的結(jié)點(diǎn);
(4)將所預(yù)測的結(jié)點(diǎn)進(jìn)行排序,出現(xiàn)特征詞語次數(shù)多的類文件則排在前面;
(5)為排序后的結(jié)點(diǎn)生成內(nèi)容摘要和排序摘要以供使用者參考;
(6)輸出排序后的結(jié)點(diǎn)對應(yīng)的類文件及其摘要。
優(yōu)選的,預(yù)處理過程包括以下步驟:(1)刪除語義上和編程語言相關(guān)的關(guān)鍵字;(2)對一些按照駝峰規(guī)則和有下劃短線相連的組合詞進(jìn)行分詞;(3)去除英語停用詞;(4)將詞語的不同形式進(jìn)行歸一化。
優(yōu)選的,在建模時,程序特征網(wǎng)絡(luò)中的結(jié)點(diǎn)為經(jīng)過預(yù)處理的類文件,程序特征網(wǎng)絡(luò)中的邊的確立可以是是否共有相同的主題或者是否具有調(diào)用關(guān)系。
優(yōu)選的,將特征利用WordNet搜索其同義詞的方法進(jìn)行擴(kuò)展為特征集,特征集是特征中動詞和名詞以及其同義詞的集合,并將該特征集作為結(jié)點(diǎn)預(yù)測在程序特征網(wǎng)絡(luò)中相關(guān)聯(lián)的結(jié)點(diǎn),即有邊的結(jié)點(diǎn)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于揚(yáng)州大學(xué);,未經(jīng)揚(yáng)州大學(xué);許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510036368.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





