[發明專利]一種面向軟件代碼單元和代碼度量的代碼變更序列方法有效
| 申請號: | 202010077082.5 | 申請日: | 2020-01-23 |
| 公開(公告)號: | CN111290777B | 公開(公告)日: | 2021-09-17 |
| 發明(設計)人: | 吳毅堅;彭鑫;陳碧歡 | 申請(專利權)人: | 復旦大學 |
| 主分類號: | G06F8/71 | 分類號: | G06F8/71 |
| 代理公司: | 上海正旦專利代理有限公司 31200 | 代理人: | 陸飛;陸尤 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 軟件 代碼 單元 度量 變更 序列 方法 | ||
1.一種面向軟件代碼單元和代碼度量的代碼變更序列方法,其特征在于,對于給定的軟件代碼單元或度量,在代碼版本庫中自動分析相關的代碼修改,輸出代碼修改歷史中造成給定代碼單元內容或度量值變化的相關提交,具體步驟如下:
(1)對代碼變更序列起點版本v中的所有代碼單元,給定唯一標識;
(2)對給定版本v的給定代碼單元集合E或給定代碼單元的軟件度量集M,獲取所給定代碼單元所在文件及其起止行號,即代碼范圍Rc,其中c是給定版本v的代碼提交;
(3)分析代碼提交c前的代碼修改,得到代碼范圍Rc中所有行號在代碼提交c之前的行號范圍Ro;
(4)通過代碼差異分析技術,分析代碼提交c前后代碼范圍Ro和行號范圍Rc內的代碼對應關系,建立前后行號范圍內所有代碼單元的對應;若Ro與Rc范圍內代碼存在差異或代碼提交前軟件度量集M的度量值與代碼提交后的度量值不同,則將代碼提交c的基本信息加入代碼變更序列結果;其中,基本信息包括代碼提交唯一編號、提交者、代碼修改內容、提交說明信息;
(5)從代碼提交c開始取相鄰前一次代碼提交c’,作為給定版本,重復步驟(2)-(5),直到取完所有的演化歷史提交或者到達給定的分析時間起點;
(6)輸出代碼變更序列結果,該結果包含所有涉及給定代碼單元集合E修改或使軟件度量集M度量值發生變化的提交。
3.根據權利要求1所述的方法,其特征在于,步驟(3)中,先獲取代碼提交c所涉及的文件集F,然后判定步驟(2)中確定的Rc范圍是否在文件集F的任意一個文件中;若是,則分析所在文件在提交前后代碼差異實現代碼行映射,獲取Ro;若否,則說明c并未修改待切片的代碼,取下一個代碼提交c’,回到步驟(2)。
4.根據權利要求3中所述的方法,其特征在于,通過語句級差異比較為Ro中的代碼單元確定唯一標識,映射成功的代碼單元具有與Rc中對應代碼單元的唯一標識,即實現映射;未能建立映射的代碼單元,則分配新的代碼單元唯一標識。
5.根據權利要求1所述的方法,其特征在于,步驟(4)中,采用以下規則判定Ro與Rc范圍內的代碼是否存在差異:若Ro與Rc范圍內的代碼單元唯一標識及其出現的順序完全相同,則不存在差異;否則,認為存在差異。
6.根據權利要求1所述的方法,其特征在于,步驟(4)中,采用以下規則判定Ro與Rc范圍內的代碼是否在軟件度量集M上存在度量值差異:若Ro和Rc范圍內代碼無差異,則軟件度量集M上的度量值無差異;否則,對Ro和Rc范圍內的代碼快照測量軟件度量集M的取值,若取值相同則認為不存在差異,否則,認為存在差異。
7.根據權利要求1所述的方法,其特征在于,步驟(5)中應對指定時間范圍內的每個提交做相應的檢測。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于復旦大學,未經復旦大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010077082.5/1.html,轉載請聲明來源鉆瓜專利網。





