• / 21
  • 下載費用:30 金幣  

一種JAVA源代碼的合規性檢測方法和裝置.pdf

關 鍵 詞:
一種 JAVA 源代碼 合規 檢測 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310492007.5

申請日:

2013.10.18

公開號:

CN103678118A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||專利申請權的轉移IPC(主分類):G06F 11/36變更事項:申請人變更前權利人:北京奇虎測騰科技有限公司變更后權利人:北京奇虎測騰科技有限公司變更事項:地址變更前權利人:100083 北京市海淀區清華園三才堂42號8號平房4647變更后權利人:100083 北京市海淀區清華園三才堂42號8號平房4647變更事項:申請人變更前權利人:北京奇虎科技有限公司變更后權利人:北京奇虎科技有限公司 北京奇虎測騰安全技術有限公司登記生效日:20150619|||實質審查的生效IPC(主分類):G06F 11/36申請日:20131018|||公開
IPC分類號: G06F11/36; G06F21/55(2013.01)I 主分類號: G06F11/36
申請人: 北京奇虎測騰科技有限公司; 北京奇虎科技有限公司
發明人: 童小剛; 吳迪; 韓建
地址: 100083 北京市海淀區清華園三才堂42號8號平房4647
優先權:
專利代理機構: 北京市隆安律師事務所 11323 代理人: 權鮮枝;何立春
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310492007.5

授權公告號:

|||||||||

法律狀態公告日:

2016.09.28|||2015.07.08|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||專利申請權、專利權的轉移|||實質審查的生效|||公開

摘要

本發明公開了一種Java源代碼的合規性檢測方法和裝置。方法包括:構建Java源代碼的編碼規范庫,根據編碼規范庫中的編碼規范,生成合規性檢測規則集合,構建待檢測的Java源代碼的合規性檢測模型,該模型包括:類集合C、方法集合M、變量集合V和指令集合I,將合規性檢測規則集合中的各個規則一一與合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息,根據記錄的匹配結果信息輸出檢測結果信息。本發明的技術方案,可實現Java源代碼合規性的自動化檢測,快速檢測出不符合編碼規范的源代碼片段,有效提高了軟件開發和測試的效率,從源代碼層面保障了應用軟件的編碼質量和安全性問題。

權利要求書

權利要求書
1.  一種Java源代碼的合規性檢測方法,其中,該方法包括:
構建Java源代碼的編碼規范庫;
根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;
解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I;
將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;
根據所記錄的匹配結果信息輸出檢測結果信息。

2.  如權利要求1所述的方法,其中,
所述類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;
所述方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;
所述變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;
所述指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。

3.  如權利要求1所述的方法,其中,所述解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型包括:
將該待檢測的Java源代碼的合規性檢測模型中的C、M、V和I集合初始化為空;
遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中。

4.  如權利要求1所述的方法,其中,
所述編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范;
每個大類中又包含多個小類。

5.  如權利要求4所述的方法,其中,所述根據所述編碼規范庫中的編碼 規范,生成合規性檢測規則集合包括:
根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中;
和/或,
根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合規性檢測規則集合中。

6.  如權利要求2所述的方法,其中,所述將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息包括:
步驟S1:判斷合規性檢測規則集合是否為空,若為空則轉入步驟S4,否則轉入步驟S2;
步驟S2:從合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S3,否則轉入步驟S1;
步驟S3:記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容在源代碼中的行號;返回步驟S1;
步驟S4:輸出所記錄的結果信息。

7.  如權利要求1所述的方法,其中,所述編碼規范庫中的每條編碼規范包括:
編碼規范的唯一標識;
編碼規范的類型信息;
編碼規范的名稱;
編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;
針對違反編碼規范的修復建議。

8.  如權利要求7所述的方法,其中,所述匹配結果信息包括:源代碼文 件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號;
所述根據所記錄的匹配結果信息輸出檢測結果信息包括:
根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息;將找出的對應編碼規范的描述信息作為檢測結果信息的一部分;
將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;
根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規范的修復建議作為檢測結果信息的一部分。

9.  一種Java源代碼的合規性檢測裝置,其中,該裝置包括:
編碼規范庫構建單元,適于構建Java源代碼的編碼規范庫;
合規性檢測規則生成單元,適于根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;
合規性檢測模型構建單元,適于解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I;
匹配單元,適于將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;
輸出單元,適于根據所記錄的匹配結果信息輸出檢測結果信息。

10.  如權利要求9所述的裝置,其中,所述合規性檢測模型構建單元,適于構建如下的Java源代碼的合規性檢測模型:
類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;
方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;
變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;
指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。

說明書

說明書一種Java源代碼的合規性檢測方法和裝置
技術領域
本發明涉及計算機軟件開發技術領域,具體涉及一種Java源代碼的合規性檢測方法和裝置。
背景技術
Java是一種高效的面向對象編程語言,被廣泛應用于Android(安卓)應用軟件的開發流程。隨著Android移動智能終端市場占有率的不斷增長,基于Java編寫的Android應用軟件的數量急劇增加。Android應用軟件的編碼規范性和安全性問題越來越成為產業界關注的焦點。
近些年來,由于基于Java編寫的Android應用軟件在開發過程沒有統一、嚴格的遵循編碼規范,導致針對Android應用軟件的惡意攻擊、用戶隱私信息泄露等安全事件層出不窮,不僅損害普通用戶的切身利益,也極大地增加了軟件開發商的軟件開發、維護投入的成本。目前,應用軟件開發和測試中普遍通過人工方式進行編碼規范的檢查,不僅需要付出巨大的人工成本,同時會極大地減緩軟件研發進度。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的一種Java源代碼的合規性檢測方法和裝置。
依據本發明的一個方面,提供了一種Java源代碼的合規性檢測方法,該方法包括:
構建Java源代碼的編碼規范庫;
根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;
解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I;
將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;
根據所記錄的匹配結果信息輸出檢測結果信息。
可選地,
所述類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;
所述方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;
所述變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;
所述指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。
可選地,所述解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型包括:
將該待檢測的Java源代碼的合規性檢測模型中的C、M、V和I集合初始化為空;
遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中。
可選地,所述編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范;
每個大類中又包含多個小類。
可選地,所述根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合包括:
根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中;
和/或,
根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合 規性檢測規則集合中。
可選地,所述將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息包括:
步驟S1:判斷合規性檢測規則集合是否為空,若為空則轉入步驟S4,否則轉入步驟S2;
步驟S2:從合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S3,否則轉入步驟S1;
步驟S3:記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容在源代碼中的行號;返回步驟S1;
步驟S4:輸出所記錄的結果信息。
可選地,所述編碼規范庫中的每條編碼規范包括:
編碼規范的唯一標識;
編碼規范的類型信息;
編碼規范的名稱;
編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;
針對違反編碼規范的修復建議。
可選地,所述匹配結果信息包括:源代碼文件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號;
所述根據所記錄的匹配結果信息輸出檢測結果信息包括:
根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息;將找出的對應編碼規范的描述信息作為檢測結果信息的一部分;
將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;
根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規 范的修復建議作為檢測結果信息的一部分。
根據本發明的另一個方面,提供了一種Java源代碼的合規性檢測裝置,該裝置包括:
編碼規范庫構建單元,適于構建Java源代碼的編碼規范庫;
合規性檢測規則生成單元,適于根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;
合規性檢測模型構建單元,適于解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I。
匹配單元,適于將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;
輸出單元,適于根據所記錄的匹配結果信息輸出檢測結果信息。
可選地,所述合規性檢測模型構建單元,適于構建如下的Java源代碼的合規性檢測模型:
類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;
方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;
變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;
指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。
可選地,所述合規性檢測模型構建單元,適于先將待檢測的Java源代碼的合規性檢測模型中的C、M、V和I集合初始化為空,然后遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中。
可選地,所述編碼規范庫構建單元構建的編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范;
每個大類中又包含多個小類。
可選地,所述合規性檢測規則生成單元,適于根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中;和/或,適于根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合規性檢測規則集合中。
可選地,所述匹配單元適于按照如下步驟完成所述匹配:
步驟S1:判斷合規性檢測規則集合是否為空,若為空則轉入步驟S4,否則轉入步驟S2;
步驟S2:從合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S3,否則轉入步驟S1;
步驟S3:記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容在源代碼中的行號;返回步驟S1;
步驟S4:輸出所記錄的結果信息。
可選地,所述編碼規范庫構建單元構建的所述編碼規范庫中的每條編碼規范包括:
編碼規范的唯一標識;
編碼規范的類型信息;
編碼規范的名稱;
編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;
針對違反編碼規范的修復建議。
可選地,所述匹配單元記錄的匹配結果信息包括:源代碼文件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號;
所述輸出單元,適于根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息,將找出的對應編碼規 范的描述信息作為檢測結果信息的一部分;適于將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;適于根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規范的修復建議作為檢測結果信息的一部分。
根據本發明的這種構建Java源代碼的編碼規范庫,根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合,解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型,所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I,將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息,根據所記錄的匹配結果信息輸出檢測結果信息的技術方案,可實現Java源代碼合規性的自動化檢測,快速檢測出不符合編碼規范的源代碼片段,有效提高了軟件開發和測試的效率,從源代碼層面保障了應用軟件的編碼質量和安全性問題。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據本發明一個實施例的一種Java源代碼的合規性檢測方法的流程圖;
圖2示出了根據本發明一個實施例的構建Java源代碼合規性檢測模型SSDM的流程圖;
圖3示出了根據本發明一個實施例的將規性檢測規則集合與合規性檢測模型中的C、M、V和I集合進行匹配的流程圖;
圖4示出了根據本發明一個實施例的一種Java源代碼的合規性檢測裝置的結構圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
針對當前Java語言編碼規范的自動化檢測工具很少的問題,本發明提出的一種Java源代碼合規性檢測方法及裝置,可實現Java源代碼合規性的自動化檢測,快速檢測出不符合編碼規范的源代碼片段,有效提高軟件開發和測試的效率,從源代碼層面保障應用軟件的編碼質量和安全性問題。
圖1示出了根據本發明一個實施例的一種Java源代碼的合規性檢測方法的流程圖。如圖1所示,該方法包括:
步驟S110,構建Java源代碼的編碼規范庫。
在本步驟中是預先建立編碼規范,并將這些編碼規范統一保存到編碼規范庫中備用。
步驟S120,根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合。
在本步驟中,根據編碼規范庫中的編碼規范的要求,生成適于實際檢測時使用的合規性檢測規則。
步驟S130,解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I。
在本步驟中,對待檢測應用軟件的Java源代碼進行分析,解析出其中的類、方法、變量和指令。
步驟S140,將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息。
在本步驟中,如果匹配成功,則表明被檢測Java源代碼中存在不符合編 碼規范的片段,將其記錄下來。
步驟S150,根據所記錄的匹配結果信息輸出檢測結果信息。
本步驟中,將所記錄的結果進行輸出,以便開發和測試人員能夠快速地定位Java源代碼中存在的問題。
以下對本發明技術方案的具體實現進行進一步的說明:
一、構建Java源代碼的編碼規范庫
在本發明的一個實施例中,所夠構建的Java源代碼編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范。
其中每個大類中又包含多個小類,包括但不限于以下所列的各小類:
1)命名規范主要包括:包命名規范,類命名規范,方法命名規范,變量命名規范;
2)設計規范主要包括:復雜度控制規范,類設計規范,方法設計規范,變量設計規范;
3)注釋規范主要包括:變更履歷注釋規范,類頭注釋規范,成員注釋規范,方法注釋規范,代碼修改注釋規范;
4)語句規范主要包括:控制語句規范,命令語句規范,聲明語句規范;
5)類規范主要包括:對象整體規范,修飾符規范,字符串規范,數值規范,集合規范,流規范,例外規范,線程規范;
6)日志規范主要包括:日志信息分級規范,日志輸出規范。
在本發明的一個實施例中,Java源代碼編碼規范庫中的每條編碼規范包括:編碼規范的唯一標識;編碼規范的類型信息;編碼規范的名稱;編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;針對違反編碼規范的修復建議。
例如,將Java源代碼編碼規范庫視為一個Java源代碼編碼規范集合(Specification Rule Set)定義為SRS={r1,r2,…,rn}。
SRS包含的編碼規范r表示為一個元組{ID,type,name,description, advice},其中:
ID是編碼規范的唯一標識,具有唯一性,在本實施例中使用“R+四位數字”的字符串進行表示;
type是編碼規范的類型信息,定義為一個元組{main_type,sub_type},其中:main_type是編碼規范的一級類型,如命名規范,設計規范,注釋規范,語句規范,類規范,日志規范;sub_type是編碼規范的二級類型,如“簡潔性問題”,“合理性問題”,“安全性問題”,“質量相關問題”等;
name是編碼規范的名稱,如“類命名歧義”,“注釋中的密碼”,“不恰當的日志”,“禁止使用System.out.print(ln)輸出”等;
description是編碼規范的詳細描述信息,即違反編碼規范的原因,造成的危害以及對應的錯誤代碼樣本;
advice是針對違反編碼規范情況的修復建議,開發人員可根據修復建議對源代碼進行修復。
例如,一條編碼規范r表示如下:
r={“R0001”,{日志規范,安全性問題},“禁止使用System.out.print(ln)輸出”,“使用System.out.print(ln)輸出日志信息,容易為攻擊者制定攻擊計劃提供方便;為了控制系統中的日志輸出,原則上禁止使用System.out.print(ln)輸出”,“調試階段的System.out.print(ln)輸出在發布時應該注釋掉或徹底刪除”},其中:
編碼規范r的ID為“R0001”;
編碼規范r的一級類型為“日志規范”,二級類型為“安全性問題”;
編碼規范r的名稱為“禁止使用System.out.print(ln)輸出”;
編碼規范r的詳細描述為“使用System.out.print(ln)輸出日志信息,容易為攻擊者制定攻擊計劃提供方便;為了控制系統中的日志輸出,原則上禁止使用System.out.print(ln)輸出”;
編碼規范r的修復建議為“調試階段的System.out.print(ln)輸出在發布時應該注釋掉或徹底刪除”;
在本實施例中,根據上述Java源代碼編碼規范集合SRS的定義,構建Java源代碼編碼規范庫。
二、根據編碼規范庫中的編碼規范,生成合規性檢測規則集合
根據編碼規范庫中的編碼規范的要求,生成適于實際檢測時使用的合規性檢測規則。
在本發明的一個實施例中,根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中。
以命名規范--類命名規范為例:規定類名的第一個字母必須大寫,例如:
class Sample//符合規范
class sample//不符合規范
針對該種類型的命名規范可使用如下正則表達式"^[a-z]{1,}$"進行匹配,上述類名sample(任何首字母為小寫字母的類名)可以通過使用該正則表達式匹配成功。
在本發明的另一個實施例中,根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合規性檢測規則集合中。
以類規范--線程規范為例:規定處理多個線程之間的同步問題,使用notify()方法喚醒等待執行的線程是不安全的,若處理不當可能會產生死鎖問題。因此,在處理多線程同步問題時,不建議使用notify()方法。因此可以提取notify()方法作為一個黑名單項,用于匹配違反上述規范的情況。該規范的修復方法是使用notifyAll()方法。
此外,Java中過時的函數或存在安全隱患的函數,都可以將該函數加入黑名單。
三、解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性 檢測模型
在本發明的一個實施例中,掃描并編譯Java源代碼,構建Java源代碼合規性檢測模型(Sourcecode Specification Detection Model)SSDM={C,M,V,I,SRS},其中:
C是類集合,C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;
例如,c=<c_type,c_name,c_line,c_file>∈C是集合C的一個元素:其中c_type是類的類型,c_name是類的名稱,c_line是類名c_name對應的行號,c_file是類所在的源代碼文件的名稱;
M是方法集合,M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;
例如,m=<m_type,m_name,m_line,c_name>∈M是集合M的一個元素,其中m_type是方法的類型,m_name是方法的名稱,m_line是方法名m_name對應的的行號,c_name是名為m_name的方法所屬的類的名稱;
V是變量集合,V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;
例如,v=<v_type,v_name,v_line>∈V是集合V的一個元素,其中v_type是變量的類型,v_name是變量的名稱,v_line是變量名v_name對應的行號;
I是指令集合,I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號;
例如,ins=<i_name,i_para,i_caller,i_line>∈I是集合I的一個元素,其中i_name是指令的名稱,i_para是指令相關的參數,i_caller是調用該指令的指令名稱,i_line是指令名i_name對應的行號。
圖2示出了根據本發明一個實施例的構建Java源代碼合規性檢測模型SSDM的流程圖。如圖2所示,包括:
步驟S210,初始化該待檢測的Java源代碼的合規性檢測模型SSDM, 具體將其中的C、M、V和I集合初始化為空;
步驟S210,遍歷該待檢測的Java源代碼的字符流;
步驟S230,解析所遍歷的每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中;
步驟S240,判斷Java源代碼文件是否已遍歷完,是則構建SSDM結束,否則轉入步驟S220。
對于每個待檢測的應用軟件,通過圖2所示的流程構建其Java源代碼的合規性檢測模型。
四、將合規性檢測規則集合中的各個規則一一與合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息
該匹配算法的輸入是規性檢測規則集合以及待檢測Java源代碼的合規性檢測模型,輸出是匹配的結果。
圖3示出了根據本發明一個實施例的將規性檢測規則集合與合規性檢測模型中的C、M、V和I集合進行匹配的流程圖。如圖3所示,包括:
步驟S310:判斷合規性檢測規則集合是否為空,若為空則轉入步驟S340,否則轉入步驟S320。
步驟S320:從合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S330,否則轉入步驟S310。
本步驟中每提取一個合規性檢測規則,將提取的規則從原合規性檢測規則集合中刪除。合規性檢測規則集合可以是前述的文本模式匹配規則庫,也可以是前述的黑名單,也可以同時包括文本模式匹配規則庫和黑名單。因此本步驟中提取的一個合規性檢測規則可以是一條文本模式匹配規則,也可以是一個黑名單項。
步驟S330:記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容(即違反規范的內容)在源代碼中的行號;返回步驟S310。
本步驟中,一條合規性檢測規則與C、M、V或I集合中的一項匹配, 則根據該匹配的合規性檢測規則獲取對應的編碼規范的標識(例如該規則是根據R0023編碼規范生成的,則獲取的是R0023),根據C、M、V或I集合中的匹配項獲知源代碼文件的名稱和違反規范的內容在源代碼中的行號。
步驟S340:輸出所記錄的結果信息。
本步驟中整合在S330中所記錄的匹配結果信息,并輸出。在本發明的一個實施例中,整合步驟S330記錄的多個檢測結果信息,生成統一的xml結果文件,其中xml節點元素的結構定義為:

上述xml節點元素唯一對應SRS包含的編碼規范,其中:
<specification></specification>標簽表示一個編碼規范的信息;
<id>specification_id</id>標簽表示編碼規范的唯一標識符ID,specification_id對應步驟S4輸出結果信息中的編碼規范ID,即SRS定義的編碼規范ID,根據specification_id可以唯一定位SRS中的編碼規范;
<sourcefile>sourcefile_name</sourcefile>標簽表示違反編號為specification_id的編碼規范所在的源代碼文件名稱;
<sourceline>line_no</sourceline>標簽表示表示違反編號為specification_id的編碼規范所在的源代碼行號。
五、根據所記錄的匹配結果信息輸出檢測結果信息
上述記錄的匹配結果信息包括:源代碼文件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號。
則在本發明的一個實施例中,根據所記錄的匹配結果信息輸出檢測結果信息包括:
1)根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息;將找出的對應編碼規范的描述信息作為檢測結果信息的一部分;
2)將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;
3)根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規范的修復建議作為檢測結果信息的一部分。
具體地判斷xml結果文件是否為空,若xml結果文件中的<specification></specification>為空,則未檢測到違反編碼規范的情況,報告檢測結果為空;否則,根據<id></id>標簽的specification_id查找SRS中對應的編碼規范的詳細信息,輸出檢測結果中包含的違反編碼規范的詳細信息,包括以下內容:
(1)編碼規范基本信息,包括specification_id對應的編碼規范的名稱、類型信息、編碼規范的詳細描述信息;
(2)源代碼詳細信息,包括違反編碼規范的源代碼文件名稱、源代碼行號及違反編碼規范的源代碼片段;
(3)修復建議信息,包括針對編碼規范的修復建議及修復樣本信息。
根據上述實施例給出的檢測方法能夠快速地定位Java源代碼中所存在的問題,節省了時間,提高了效率。
圖4示出了根據本發明一個實施例的一種Java源代碼的合規性檢測裝置的結構圖。如圖4所示,該裝置包括:
編碼規范庫構建單元401,適于構建Java源代碼的編碼規范庫;
合規性檢測規則生成單元402,適于根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;
合規性檢測模型構建單元403,適于解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I。
匹配單元404,適于將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;
輸出單元405,適于根據所記錄的匹配結果信息輸出檢測結果信息。
在本發明的一個實施例中,合規性檢測模型構建單元403,適于構建如下的Java源代碼的合規性檢測模型:
類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;
方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;
變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;
指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。
在本發明的一個實施例中,合規性檢測模型構建單元403,適于先將待檢測的Java源代碼的合規性檢測模型中的C、M、V和I集合初始化為空,然后遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中。
在本發明的一個實施例中,編碼規范庫構建單元401構建的編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范;
每個大類中又包含多個小類。
在本發明的一個實施例中,合規性檢測規則生成單元402,適于根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中;和/或,適于根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合規性檢測規則集合中。
在本發明的一個實施例中,所述匹配單元404適于按照如下步驟完成所述匹配:
步驟S1:判斷合規性檢測規則集合是否為空,若為空則轉入步驟S4,否則轉入步驟S2;
步驟S2:從合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S3,否則轉入步驟S1;
步驟S3:記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容在源代碼中的行號;返回步驟S1;
步驟S4:輸出所記錄的結果信息。
在本發明的一個實施例中,所述編碼規范庫構建單元401構建的所述編碼規范庫中的每條編碼規范包括:
編碼規范的唯一標識;
編碼規范的類型信息;
編碼規范的名稱;
編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;
針對違反編碼規范的修復建議。
在本發明的一個實施例中,所述匹配單元404記錄的匹配結果信息包括:源代碼文件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號;
所述輸出單元405,適于根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息,將找出的對應編碼規范的描述信息作為檢測結果信息的一部分;適于將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;適于根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規范的修復建議作為檢測結果信息的一部分。
綜上所述,本發明的這種構建Java源代碼的編碼規范庫,根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合,解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型,所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I,將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息,根據所記錄的匹配結果信息輸出檢測結果信息的技術方案,可實現Java源代碼合規性的自動化檢測,快速檢測出不符合編碼規范的源代碼片段,有效提高了軟件開發和測試的效率,從源代碼層面保障了應用軟件的編碼質量和安全性問題。
需要說明的是:
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以 把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的Java源代碼的合規性檢測裝置中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。 可將這些單詞解釋為名稱。
本發明公開了A1、一種Java源代碼的合規性檢測方法,包括:構建Java源代碼的編碼規范庫;根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I;將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;根據所記錄的匹配結果信息輸出檢測結果信息。A2、如A1所述的方法,其中:所述類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;所述方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;所述變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;所述指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。A3、如A1所述的方法,其中,所述解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型包括:將該待檢測的Java源代碼的合規性檢測模型中的C、M、V和I集合初始化為空;遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中。A4、如A1所述的方法,其中,所述編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范;每個大類中又包含多個小類。A5、如A4所述的方法,其中,所述根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合包括:根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中;和/或,根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合規性檢測規則集合中。A6、如A2所述的方法,其中,所述將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進 行匹配,如果匹配則記錄匹配結果信息包括:步驟S1:判斷合規性檢測規則集合是否為空,若為空則轉入步驟S4,否則轉入步驟S2;步驟S2:從合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S3,否則轉入步驟S1;步驟S3:記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容在源代碼中的行號;返回步驟S1;步驟S4:輸出所記錄的結果信息。A7、如A1所述的方法,其中,所述編碼規范庫中的每條編碼規范包括:編碼規范的唯一標識;編碼規范的類型信息;編碼規范的名稱;編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;針對違反編碼規范的修復建議。A8、如A7所述的方法,其中,所述匹配結果信息包括:源代碼文件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號;所述根據所記錄的匹配結果信息輸出檢測結果信息包括:根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息;將找出的對應編碼規范的描述信息作為檢測結果信息的一部分;將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規范的修復建議作為檢測結果信息的一部分。
本發明還公開了B9、一種Java源代碼的合規性檢測裝置,包括:編碼規范庫構建單元,適于構建Java源代碼的編碼規范庫;合規性檢測規則生成單元,適于根據所述編碼規范庫中的編碼規范,生成合規性檢測規則集合;合規性檢測模型構建單元,適于解析待檢測的Java源代碼,構建該待檢測的Java源代碼的合規性檢測模型;所述Java源代碼的合規性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I;匹配單元,適于將所述合規性檢測規則集合中的各個規則一一與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結果信息;輸出單元,適于根據所記錄的匹配結果信息輸出檢測結果信息。B10、如B9所述的裝置,所述合規性檢測模型構建單元,適于構建如下的Java源代碼的合規性檢測模型:類集 合C中的每個類包括:類的類型、類的名稱、類的名稱對應的行號以及類所在源代碼文件的名稱;方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應的行號以及方法所屬的類的名稱;變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應的行號;指令集合I中的每個指令包括:指令的名稱、指令相關的參數、調用該指令的指令的名稱以及該指令的名稱對應的行號。B11、如B9所述的裝置,所述合規性檢測模型構建單元,適于先將待檢測的Java源代碼的合規性檢測模型中的C、M、V和I集合初始化為空,然后遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應的C、M、V和I集合中。B12、如B9所述的裝置,其中,所述編碼規范庫構建單元構建的編碼規范庫包括以下六大類:命名規范、設計規范、注釋規范、語句規范、類規范和日志規范;每個大類中又包含多個小類。B13、如B12所述的裝置,所述合規性檢測規則生成單元,適于根據編碼規范庫中的命名規范、設計規范、注釋規范和日志規范中的一種或多種規范的文本模式特征編寫相應的正則表達式,形成文本模式匹配規則庫;將該文本模式匹配規則庫加入到所述合規性檢測規則集合中;和/或,適于根據編碼規范庫中的設計規范、語句規范和類規范中的一種或多種規范提取違反這些規范的情況,形成編碼規范黑名單;將該黑名單加入到所述合規性檢測規則集合中。B14、如B10所述的裝置,其中,所述匹配單元適于按照如下步驟完成所述匹配:步驟S1,判斷合規性檢測規則集合是否為空,若為空則轉入步驟S4,否則轉入步驟S2;步驟S2,合規性檢測規則集合中提取出一個合規性檢測規則與所述合規性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉入步驟S3,否則轉入步驟S1;步驟S3,記錄匹配的結果信息,包括:源代碼文件的名稱,該匹配的合規性檢測規則對應的編碼規范的標識,以及該匹配的合規性檢測模型中內容在源代碼中的行號,返回步驟S1;步驟S4:輸出所記錄的結果信息。B15、如B9所述的裝置,其中,所述編碼規范庫構建單元構建的所述編碼規范庫中的每條編碼規范包括:編碼規范的唯一標識;編碼規范的類型信息;編碼規范的名稱;編碼規范的描述信息,包括違反編碼規范的原因、造成的傷害以及對應的錯誤樣本代碼;針對違反編碼規范的修復建議。 B16、如B15所述的裝置,所述匹配單元記錄的匹配結果信息包括:源代碼文件的名稱,違反的編碼規范的標識,以及違反編碼規范的內容在源代碼中的行號;所述輸出單元,適于根據違反的編碼規范標識找出對應編碼規范的描述信息,包括:編碼規范的類型信息、名稱和描述信息,將找出的對應編碼規范的描述信息作為檢測結果信息的一部分;適于將源代碼文件的名稱,違反編碼規范的內容在源代碼中的行號,以及違反編碼規范的內容的代碼片段作為檢測結果信息的一部分;適于根據違反的編碼規范標識找出對應編碼規范,將針對違反該對應編碼規范的修復建議作為檢測結果信息的一部分。

關于本文
本文標題:一種JAVA源代碼的合規性檢測方法和裝置.pdf
鏈接地址:http://www.pqsozv.live/p-6180514.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影