[发明专利]一种Java源代码的合规性检测方法和装置有效
| 申请号: | 201310492007.5 | 申请日: | 2013-10-18 |
| 公开(公告)号: | CN103678118A | 公开(公告)日: | 2014-03-26 |
| 发明(设计)人: | 童小刚;吴迪;韩建 | 申请(专利权)人: | 北京奇虎测腾科技有限公司;北京奇虎科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/55 |
| 代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝;何立春 |
| 地址: | 100083 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 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所述的方法,其中,所述匹配结果信息包括:源代码文件的名称,违反的编码规范的标识,以及违反编码规范的内容在源代码中的行号;
所述根据所记录的匹配结果信息输出检测结果信息包括:
根据违反的编码规范标识找出对应编码规范的描述信息,包括:编码规范的类型信息、名称和描述信息;将找出的对应编码规范的描述信息作为检测结果信息的一部分;
将源代码文件的名称,违反编码规范的内容在源代码中的行号,以及违反编码规范的内容的代码片段作为检测结果信息的一部分;
根据违反的编码规范标识找出对应编码规范,将针对违反该对应编码规范的修复建议作为检测结果信息的一部分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎测腾科技有限公司;北京奇虎科技有限公司,未经北京奇虎测腾科技有限公司;北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310492007.5/1.html,转载请声明来源钻瓜专利网。





