[發明專利]一種基于問題報告的軟件語義摘要自動生成方法有效
| 申請號: | 201710380665.3 | 申請日: | 2017-05-25 |
| 公開(公告)號: | CN107133079B | 公開(公告)日: | 2019-12-20 |
| 發明(設計)人: | 余躍;王濤;尹剛;王懷民;宋晨希;張迅輝;李志星 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F16/953 |
| 代理公司: | 11350 北京科億知識產權代理事務所(普通合伙) | 代理人: | 湯東鳳 |
| 地址: | 410000 湖*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 問題 報告 軟件 語義 摘要 自動 生成 方法 | ||
本發明公開了一種基于問題報告的軟件語義摘要自動生成方法,先構建開源軟件信息數據庫;然后獲取項目托管社區中的問題報告數據和代碼變更記錄數據,并將之存儲在數據庫的問題報告數據表和代碼變更記錄數據表中;再使用正則表達式從代碼變更記錄中抽取其出現的問題報告id;然后對問題報告與軟件代碼進行位置匹配,最后進行語義提取與聚類,將生成的語義摘要存儲在數據庫的軟件語義摘要數據表中。本發明通過軟件的問題報告和代碼變更記錄為軟件的代碼文件或代碼段自動標注語義信息,可提高開發人員復用軟件的效率。
技術領域
本發明涉及軟件開發領域,尤其涉及一種基于問題報告的軟件語義摘要的自動生成方法。
背景技術
軟件復用技術是指在軟件開發中,對現有資源的再利用從而避免重復勞動的解決方案。通過軟件復用,可以極大的提高軟件開發效率和質量。例如著名的手機照片分享應用Instagram,在其發展之初只有5名技術人員,后端工程師不到3人,卻利用了十多款開源軟件,在僅僅8周時間內,打造了最初的Instagram,并通過提供的穩定服務吸引了大批用戶,軟件復用的作用可見一斑。
同時,開源軟件的發展為軟件復用提供了豐富的資源。與商業軟件不同,開源軟件的代碼是公開的,其他的軟件開發者可以選擇對整個軟件或是軟件中部分代碼進行復用。但是開發者在復用之前,首先要了解其要復用的整個軟件、目標文檔或者某一段代碼是如何工作的、有什么樣的功能。對于整個軟件來說,開發者可以從軟件簡介和文檔中了解;對于細粒度的代碼段來說,開發者可以通過代碼段中的注釋了解代碼的實現過程。但是對于粗粒度的代碼文件或者是規模大的代碼,則很難從上述兩種方式中進行了解,因為軟件文檔多是從整體功能和使用方式方面進行闡釋,而注釋又有很強的針對性,多個注釋的拼接對了解大規模代碼功能并沒有幫助。人工通過讀代碼的方式效率又非常低,這與軟件復用的初衷不符。因此對大粒度的代碼文件或者代碼段進行語義標注成為亟待解決的問題。
開源軟件的項目托管平臺(如GitHub、GitLab等)已成為開源軟件開發和維護過程中的重要角色,為開發者提供項目托管和開發進程管理的多項功能,極大的方便了開源軟件的分布式開發。項目托管平臺中存儲著軟件開發過程中產生的多種數據,如開發者的提交記錄,pull-request數據,問題報告信息等,這些數據中包含大量的語義信息,本發明希望通過項目托管社區中存在的文本數據生成軟件的語義摘要,方便開發者在大粒度的復用過程中迅速了解目標代碼塊或文件的功能。尤其是其中包含很多issue(問題報告),這些issue有詳細的標題和描述信息。這些issue往往對應著某些功能的添加或者某些缺陷的修復。對于一個功能運轉良好的軟件項目,issue的提交、解決、關閉整體流程非常規范。其中核心規范在于開發人員在提交代碼的時候會將解決的問題編號、或者問題內容寫到commit的信息中。因此,這樣的信息能夠幫助我們將軟件開發歷史(如文件、模塊、代碼的修改)和問題報告中的語義信息關聯起來,從而給軟件模塊的語義進行標注。
發明內容
為實現上述目的,本發明提供一種基于問題報告的軟件語義摘要自動生成方法,包括如下步驟:
S1、構建開源軟件信息數據庫,所述開源軟件信息數據庫包含問題報告數據表、代碼變更記錄數據表和軟件語義摘要數據表;
S2、獲取項目托管社區中的問題報告數據和代碼變更記錄數據,并將之存儲在數據庫的問題報告數據表和代碼變更記錄數據表中;
S3、使用正則表達式從代碼變更記錄中抽取其出現的問題報告id;
S4、問題報告與軟件代碼位置匹配:通過代碼變更記錄數據將問題報告中的描述信息和代碼位置關聯,具體包括:
S401、問題報告與代碼變更記錄匹配:使用代碼變更記錄中出現的#id尋找相關id的問題報告;
S402、語義信息合并:將問題報告中的標題和描述,以及代碼變更記錄的描述信息合并記作d,將其作為文件或代碼片段f的原始語義信息,寫入數據庫的軟件語義摘要數據表中;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710380665.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種實現遠程開機的方法
- 下一篇:一種命令行的添加方法和系統





