一種基于協相關主題模型的面向軟件修改的個性化任務推薦方法
【專利摘要】一種基于協相關主題模型的面向軟件修改的個性化任務推薦方法,幫助軟件管理人員找出最適合修改某一特定變化請求的開發(fā)人員,同時結合該開發(fā)人員開發(fā)的歷史任務記錄,推薦出開發(fā)人員熟悉的與變化請求相關的一些輔助信息。
【專利說明】一種基于協相關主題模型的面向軟件修改的個性化任務推 薦方法
【技術領域】
[0001] 本發(fā)明涉及軟件維護推薦領域,尤其是一種基于協相關主題模型的面向軟件修改 的個性化任務推薦方法。
【背景技術】
[0002] 由于軟件工程的復雜性,在軟件開發(fā)與維護過程中軟件漏洞會經常出現;此外,用 戶在使用軟件的過程中,也會根據實際情況提出新的變更請求或升級請求。因此,軟件變更 請求常常被錯誤報告人員或用戶提出來,需要開發(fā)人員不斷的進行維護。給定一個變更請 求,軟件項目經理必須將變更請求分配給開發(fā)人員實現修改。為了提高軟件維護的效率和 準確性,相關源代碼定位和最適合實現變更請求的開發(fā)人員的推薦任務急需要解決。
[0003] 為了完成這個任務目前研究領域中出現了很多方面的推薦技術,這些技術主要都 在研究如何更準確的推薦出合適的開發(fā)人員。這些技術最基本方法原理是:曾經實現過相 關的維護任務的開發(fā)人員可以更快更好的實現現在的變更請求?;谶@一思想,一些最適 合的開發(fā)人員和一些相關的源碼文件被推薦出來。但是,這些推薦方法在推薦相關參考文 件時并沒有考慮到開發(fā)人員的開發(fā)習慣和開發(fā)經驗,因此這些被推薦出來的文件對所有的 開發(fā)人員都是一樣的。如果開發(fā)人員不熟悉這些推薦出的源碼文件,反而會花費更多的時 間理解這些推薦出的文件。在實際的軟件開發(fā)和維護過程中,每一個開發(fā)人員都有不同的 開發(fā)習慣和開發(fā)經驗,而且有時候最適合完成任務的開發(fā)人員并沒有時間或者早已經不在 項目組內,但此時變更請求又急需要解決。此時,其他的開發(fā)人員應該被推薦出來,并且一 些實現請求的輔助信息應該提供出來,這樣就可以更有效的實現變更請求。因此,不僅要推 薦出合適的開發(fā)人員,一些具有個性化請求任務的輔助信息也需要推薦出來。
[0004] 協方差主題模型Collaborative Topic Model,即CTM,將協方差分析和主題模型 相結合。該模型不僅可以找出相關開發(fā)人員個性化任務,還可以把一個新任務推薦給有類 似開發(fā)經驗的開發(fā)人員。用CTM主要是把相關文件分配給每一個相關開發(fā)人員,然后利用 開發(fā)人員的相關文件與變化請求計算相似度尋找出最適合實現請求的開發(fā)人員。
【發(fā)明內容】
[0005] 本發(fā)明提供一種基于協相關主題模型的面向軟件修改的個性化任務推薦方法,幫 助軟件管理人員找出最適合修改某一特定變化請求的開發(fā)人員,同時結合該開發(fā)人員開發(fā) 的歷史任務記錄,推薦出開發(fā)人員熟悉的與變化請求相關的一些輔助信息。
[0006] -種基于協相關主題模型的面向軟件修改的個性化任務推薦方法,包括如下步 驟:
[0007] (1)對系統報告人員的軟件變更請求和歷史修改庫中所有的歷史提交信息進行預 處理,包括詞條劃分、詞根處理、動名詞同義詞近義詞查詢、擴充詞匯量過程;
[0008] (2)用余弦函數對所有預處理后的歷史提交信息和變更請求進行相似度計算,根 據相關的歷史提交信息和變更請求中的單詞重復度識別相關的提交信息;
[0009] (3)得出所有與變更請求相關的提交信息后,在相關提交信息中提取相關的開發(fā) 人員,并且提取出每個開發(fā)人員修改過的相關源碼文件形成一個〈開發(fā)者,相關源碼文件〉 對應列表,相關源碼文件作為開發(fā)人員的部分個性化文件;
[0010] (4)將步驟(3)中得到的所有〈開發(fā)者,相關源碼文件〉對應列表作為CTM模型的 輸入數據進行協相關計算,得到具體的實現變更請求的相關開發(fā)人員和這些開發(fā)人員另一 部分相關源碼文件;
[0011] (5)將步驟(3)和步驟⑷中兩部分相關源碼文件與變更請求進行相似度計算,根 據相關源文件的相似度找出最適合實現變更請求的開發(fā)人員,并將相關源文件作為個性化 推薦文件推薦給該開發(fā)人員,對開發(fā)人員修改給出建議。
[0012] 本發(fā)明的有益效果為:準確的推薦出了合適的開發(fā)人員,而且結合了該開發(fā)人員 的開發(fā)歷史任務找出了與變化請求相關的一些源碼文件供開發(fā)人員參考,實現了個性化推 薦功能,更有效提高了開發(fā)人員維護軟件的效率與準確率。利用CTM模型技術,不僅準確 化、豐富化開發(fā)人員的個性化文件,而且對于一些新的開發(fā)請求,原系統并沒有此方面的開 發(fā)人員,可以找到實現過類似任務的開發(fā)人員供軟件管理人員參考。對于一些最合適的開 發(fā)人員沒有時間修改軟件或者已不在項目組內的情況,本方法也可以根據其他開發(fā)人員的 個性化文件找出其他最適合修改任務的開發(fā)人員。
【專利附圖】
【附圖說明】
[0013] 圖1是本發(fā)明的方法流程圖。
[0014] 圖2是本發(fā)明的CTM圖模型。
【具體實施方式】
[0015] 如圖1所示,一種基于協相關主題模型的面向軟件修改的個性化任務推薦方法, 包括如下步驟:
[0016] (1)對系統報告人員的軟件變更請求和歷史修改庫中所有的歷史提交信息進行預 處理,包括詞條劃分、詞根處理、動名詞同義詞近義詞查詢、擴充詞匯量過程;例如:對變更 請求"Selecting text by mouse sets X primary selection,'預處理后的結果為:"select pack choose text mouse rat set primary elementary major central main selection choose choice pick,'。
[0017] (2)用余弦函數對所有預處理后的提交信息和變更請求進行相似度計算,根據提 交信息和變更請求中的單詞重復度識別相關的提交信息。首先對步驟(1)中預處理后的所 有單詞進行編號,然后用編號表示提交信息和變更請求中的單詞,再用余弦函數對所有提 交信息和變更請求進行相似度計算,最后找出與變更請求相關的提交信息。余弦函數的計 算方法為:
【權利要求】
1. 一種基于協相關主題模型的面向軟件修改的個性化任務推薦方法,其特征在于,包 括如下步驟: (1) 對系統報告人員的軟件變更請求和歷史修改庫中所有的歷史提交信息進行預處 理,包括詞條劃分、詞根處理、動名詞同義詞近義詞查詢、擴充詞匯量過程; (2) 用余弦函數對所有預處理后的歷史提交信息和變更請求進行相似度計算,根據相 關的歷史提交信息和變更請求中的單詞重復度識別相關的提交信息; (3) 得出所有與變更請求相關的提交信息后,在相關提交信息中提取相關的開發(fā)人員, 并且提取出每個開發(fā)人員修改過的相關源碼文件形成一個〈開發(fā)者,相關源碼文件〉對應 列表,相關源碼文件作為開發(fā)人員的部分個性化文件; (4) 將步驟(3)中得到的所有〈開發(fā)者,相關源碼文件〉對應列表作為CTM模型的輸入 數據進行協相關計算,得到具體的實現變更請求的相關開發(fā)人員和這些開發(fā)人員另一部分 相關源碼文件; (5) 將步驟(3)和步驟(4)中兩部分相關源碼文件與變更請求進行相似度計算,根據相 關源文件的相似度找出最適合實現變更請求的開發(fā)人員,并將相關源文件作為個性化推薦 文件推薦給該開發(fā)人員,對開發(fā)人員修改給出建議。
2. 如權利要求1所述的方法,其特征在于,余弦函數的計算方法為:
其中公式中的向量表示變更請求和提交信息的單詞向量。
【文檔編號】G06F9/44GK104461558SQ201410804898
【公開日】2015年3月25日 申請日期:2014年12月22日 優(yōu)先權日:2014年12月22日
【發(fā)明者】孫小兵, 楊輝, 李斌 申請人:揚州大學