[發明專利]一種面向軟件代碼單元和代碼度量的代碼變更序列方法有效
| 申請號: | 202010077082.5 | 申請日: | 2020-01-23 |
| 公開(公告)號: | CN111290777B | 公開(公告)日: | 2021-09-17 |
| 發明(設計)人: | 吳毅堅;彭鑫;陳碧歡 | 申請(專利權)人: | 復旦大學 |
| 主分類號: | G06F8/71 | 分類號: | G06F8/71 |
| 代理公司: | 上海正旦專利代理有限公司 31200 | 代理人: | 陸飛;陸尤 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 軟件 代碼 單元 度量 變更 序列 方法 | ||
本發明屬于軟件工程技術領域,具體為一種面向軟件代碼單元和代碼度量的演化歷史切片方法。本發明利用代碼版本庫中的分支和代碼提交等代碼演化歷史信息,通過建立貫穿演化歷史的代碼持續追溯機制,實現針對指定代碼單元或其度量值的演化歷史切片分析。所得到的演化歷史切片由修改了指定的代碼單元或導致指定的代碼度量值發生變化的代碼變更序列組成,每個代碼變更包括從對應的代碼提交中抽取的相關信息,包括代碼提交唯一編號、提交者、代碼修改內容、提交說明等。這種演化歷史切片可以幫助理解并追蹤代碼的演化過程以及相關代碼問題的發展變化過程,支持開發人員績效評價、軟件項目質量監控和預警等應用。
技術領域
本發明屬于軟件工程技術領域,具體涉及一種面向軟件代碼單元和代碼度量的演化歷史切片方法。
背景技術
軟件開發及質量管理人員經常需要理解并追蹤軟件代碼單元(如方法、語句)的修改歷史或者相關代碼問題(如圈復雜度高)的發展變化過程。為此,需要建立貫穿演化歷史的代碼持續追溯機制,針對指定代碼單元或其度量值抽取相關的代碼變更序列。所得到的代碼變更序列可以稱為演化歷史切片,其中由修改了指定的代碼單元或導致指定的代碼度量值發生變化的代碼變更序列組成,每個代碼變更包括從對應的代碼提交中抽取的相關信息,包括代碼提交唯一編號、提交者、代碼修改內容、提交說明信息等?;谶@種演化歷史切片可以對相關演化歷史進行重演,或者持續跟蹤代碼單元的演化過程。
發明內容
本發明的目的是提供一種面向軟件代碼單元和代碼度量的演化歷史切片方法,以實現針對指定代碼單元(如方法、語句)或其度量值(如方法的代碼長度或圈復雜度)的演化歷史切片分析,從而幫助開發人員理解代碼的演化過程以及相關代碼問題(如圈復雜度高)的發展變化過程,同時追蹤代碼單元的變化過程,支持開發人員績效評價、軟件項目質量監控和預警等應用。
本發明利用代碼版本庫中的分支(Branch)和代碼提交(Commit)等代碼演化歷史信息,通過建立貫穿演化歷史的代碼持續追溯機制,實現針對指定代碼單元(如方法、語句)或其度量值(如方法的代碼長度或圈復雜度)的演化歷史切片分析。本發明所得到的演化歷史切片由修改了指定的代碼單元或導致指定的代碼度量值發生變化的代碼變更序列組成,每個代碼變更包括從對應的代碼提交中抽取的相關信息,包括代碼提交唯一編號、提交者、代碼修改內容、提交說明信息等。這種演化歷史切片可以幫助理解并追蹤代碼的演化過程以及相關代碼問題(如圈復雜度高)的發展變化過程,支持開發人員績效評價、軟件項目質量監控和預警等應用。
本發明提供的面向軟件代碼單元和代碼度量的演化歷史切片方法,采用附圖1所描述的概念模型描述軟件代碼單元及其修改關系。軟件代碼中的文件、方法、語句等均為代碼單元,通過程序分析技術從代碼中提取并存儲;在給定版本的軟件代碼中,每個代碼單元都被唯一標識,具有當前內容和當前行號屬性;代碼單元的唯一標識在代碼修改歷史中用于追蹤同一個代碼單元;當代碼單元在某次代碼提交中發生變化時,通過對代碼修改前后版本的差異分析,根據該代碼單元上下文變化和代碼單元本身的變化,該代碼單元將被識別為同一代碼單元的修改、或被識別為原代碼單元的刪除和一個新增的代碼單元;代碼單元在某次代碼提交中所發生的變化,通過語句位置標明;代碼單元發生變化的形式,由變更操作表示,分為新增、刪除、修改三種類型,分別通過目標屬性表明是對哪個代碼單元進行變化。
本發明提供的面向軟件代碼單元和代碼度量的演化歷史切片方法,具體步驟如下:
(1)對代碼歷史切片起點版本v中的所有代碼單元,給定唯一標識。
本步驟中,對于每個代碼單元,均表示為一個四元組S(id, startLine, endLine,parentElementId),其中id為代碼單元(包括語句、方法、文件)的全局唯一標識,startLine和endLine為代碼單元的起止行號,parentElementId為直接包含該代碼單元的上層代碼單元的唯一標識;通過parentElementId級聯查詢可獲取該代碼單元的具體位置(如在哪個文件中)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于復旦大學,未經復旦大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010077082.5/2.html,轉載請聲明來源鉆瓜專利網。





