[發(fā)明專利]一種Java源代碼的合規(guī)性檢測方法和裝置有效
| 申請?zhí)枺?/td> | 201310492007.5 | 申請日: | 2013-10-18 |
| 公開(公告)號: | CN103678118A | 公開(公告)日: | 2014-03-26 |
| 發(fā)明(設(shè)計)人: | 童小剛;吳迪;韓建 | 申請(專利權(quán))人: | 北京奇虎測騰科技有限公司;北京奇虎科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F21/55 |
| 代理公司: | 北京市隆安律師事務(wù)所 11323 | 代理人: | 權(quán)鮮枝;何立春 |
| 地址: | 100083 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 java 源代碼 合規(guī) 檢測 方法 裝置 | ||
1.一種Java源代碼的合規(guī)性檢測方法,其中,該方法包括:
構(gòu)建Java源代碼的編碼規(guī)范庫;
根據(jù)所述編碼規(guī)范庫中的編碼規(guī)范,生成合規(guī)性檢測規(guī)則集合;
解析待檢測的Java源代碼,構(gòu)建該待檢測的Java源代碼的合規(guī)性檢測模型;所述Java源代碼的合規(guī)性檢測模型包括:類集合C、方法集合M、變量集合V和指令集合I;
將所述合規(guī)性檢測規(guī)則集合中的各個規(guī)則一一與所述合規(guī)性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結(jié)果信息;
根據(jù)所記錄的匹配結(jié)果信息輸出檢測結(jié)果信息。
2.如權(quán)利要求1所述的方法,其中,
所述類集合C中的每個類包括:類的類型、類的名稱、類的名稱對應(yīng)的行號以及類所在源代碼文件的名稱;
所述方法集合M中的每個方法包括:方法的類型、方法的名稱、方法的名稱對應(yīng)的行號以及方法所屬的類的名稱;
所述變量集合V中的每個變量包括:變量的類型、變量的名稱、變量的名稱對應(yīng)的行號;
所述指令集合I中的每個指令包括:指令的名稱、指令相關(guān)的參數(shù)、調(diào)用該指令的指令的名稱以及該指令的名稱對應(yīng)的行號。
3.如權(quán)利要求1所述的方法,其中,所述解析待檢測的Java源代碼,構(gòu)建該待檢測的Java源代碼的合規(guī)性檢測模型包括:
將該待檢測的Java源代碼的合規(guī)性檢測模型中的C、M、V和I集合初始化為空;
遍歷該待檢測的Java源代碼的字符流,解析每個單詞的屬性信息,判斷屬性信息的含義,將其添加到相應(yīng)的C、M、V和I集合中。
4.如權(quán)利要求1所述的方法,其中,
所述編碼規(guī)范庫包括以下六大類:命名規(guī)范、設(shè)計規(guī)范、注釋規(guī)范、語句規(guī)范、類規(guī)范和日志規(guī)范;
每個大類中又包含多個小類。
5.如權(quán)利要求4所述的方法,其中,所述根據(jù)所述編碼規(guī)范庫中的編碼規(guī)范,生成合規(guī)性檢測規(guī)則集合包括:
根據(jù)編碼規(guī)范庫中的命名規(guī)范、設(shè)計規(guī)范、注釋規(guī)范和日志規(guī)范中的一種或多種規(guī)范的文本模式特征編寫相應(yīng)的正則表達式,形成文本模式匹配規(guī)則庫;將該文本模式匹配規(guī)則庫加入到所述合規(guī)性檢測規(guī)則集合中;
和/或,
根據(jù)編碼規(guī)范庫中的設(shè)計規(guī)范、語句規(guī)范和類規(guī)范中的一種或多種規(guī)范提取違反這些規(guī)范的情況,形成編碼規(guī)范黑名單;將該黑名單加入到所述合規(guī)性檢測規(guī)則集合中。
6.如權(quán)利要求2所述的方法,其中,所述將所述合規(guī)性檢測規(guī)則集合中的各個規(guī)則一一與所述合規(guī)性檢測模型中的C、M、V和I集合進行匹配,如果匹配則記錄匹配結(jié)果信息包括:
步驟S1:判斷合規(guī)性檢測規(guī)則集合是否為空,若為空則轉(zhuǎn)入步驟S4,否則轉(zhuǎn)入步驟S2;
步驟S2:從合規(guī)性檢測規(guī)則集合中提取出一個合規(guī)性檢測規(guī)則與所述合規(guī)性檢測模型中的C、M、V和I集合進行匹配,如果匹配成功則轉(zhuǎn)入步驟S3,否則轉(zhuǎn)入步驟S1;
步驟S3:記錄匹配的結(jié)果信息,包括:源代碼文件的名稱,該匹配的合規(guī)性檢測規(guī)則對應(yīng)的編碼規(guī)范的標識,以及該匹配的合規(guī)性檢測模型中內(nèi)容在源代碼中的行號;返回步驟S1;
步驟S4:輸出所記錄的結(jié)果信息。
7.如權(quán)利要求1所述的方法,其中,所述編碼規(guī)范庫中的每條編碼規(guī)范包括:
編碼規(guī)范的唯一標識;
編碼規(guī)范的類型信息;
編碼規(guī)范的名稱;
編碼規(guī)范的描述信息,包括違反編碼規(guī)范的原因、造成的傷害以及對應(yīng)的錯誤樣本代碼;
針對違反編碼規(guī)范的修復(fù)建議。
8.如權(quán)利要求7所述的方法,其中,所述匹配結(jié)果信息包括:源代碼文件的名稱,違反的編碼規(guī)范的標識,以及違反編碼規(guī)范的內(nèi)容在源代碼中的行號;
所述根據(jù)所記錄的匹配結(jié)果信息輸出檢測結(jié)果信息包括:
根據(jù)違反的編碼規(guī)范標識找出對應(yīng)編碼規(guī)范的描述信息,包括:編碼規(guī)范的類型信息、名稱和描述信息;將找出的對應(yīng)編碼規(guī)范的描述信息作為檢測結(jié)果信息的一部分;
將源代碼文件的名稱,違反編碼規(guī)范的內(nèi)容在源代碼中的行號,以及違反編碼規(guī)范的內(nèi)容的代碼片段作為檢測結(jié)果信息的一部分;
根據(jù)違反的編碼規(guī)范標識找出對應(yīng)編碼規(guī)范,將針對違反該對應(yīng)編碼規(guī)范的修復(fù)建議作為檢測結(jié)果信息的一部分。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎測騰科技有限公司;北京奇虎科技有限公司,未經(jīng)北京奇虎測騰科技有限公司;北京奇虎科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310492007.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





