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





