源代码统计分析方法和系统的制作方法_3

文档序号:8430507阅读:来源:国知局

[0061]在步骤S310A中,第二服务器120将当前被分析文件对应于时间起点的版本和对应于时间终点的版本都加载到其自身的内存中,并且调用相应的差异分析器对两个文件进行比较分析,从而得到在后版本相对于在前版本的新增代码行数量、删除代码行数量和被修改代码行数量。随后进入步骤S310B,第二服务器120对步骤S310A得到的新增代码行数量、删除代码行数量和被修改代码行数量分别累加到相应的统计项目下。
[0062]在步骤S311A中,第二服务器120将当前被分析文件的对应于时间起点的版本加载到其自身的内存中,并且调用相应的语法分析器(比如C语言分析器、Java语言分析器等)统计该版本的总的代码行数量,从而得到被删除代码行数量。随后进入步骤S311B,第二服务器120将语法分析器得到的被删除代码行量累加到相应的统计项目下。
[0063]如图3所示,步骤S309B、S310B和S311B完成之后流程都返回步骤S305。
[0064]现在考察步骤S305的另一个分支,即步骤S307。在该步骤中,第一服务器110从第二服务器120接收分类汇总结果并且返回所请求的客户端20。
[0065]本发明的实施例具有下列优点。
[0066]由于统计分析均在代码库服务器端完成,因此节省了网络带宽和本地存储空间。
[0067]需要用户输入的信息少,统计过程无需人工参与,可按要求输出统计结果,且结果准确。
[0068]多线程处理技术的引入使得程序性能大大提升,耗时仅需人工统计的1/10到1/100。
[0069]由于可以在不背离本发明基本精神的情况下,以各种形式实施本发明,因此上面描述的【具体实施方式】仅是说明性的而不是限制性的。本发明的范围由所附权利要求定义,对上面描述方式所作的各种变化或变动都属于所附权利要求的保护范围。
【主权项】
1.一种源代码统计分析方法,其特征在于,包括下列步骤: 第一服务器根据接收自客户端的源代码统计分析请求生成统计分析参数,所述统计分析参数包含待分析的代码模块及其所属代码库的标识符; 所述第一服务器选定相应的第二服务器,所述相应的第二服务器存储与所述待分析的代码模块相关联的源代码文件; 所述相应的第二服务器在本地对所述相关联的源代码文件进行统计分析;以及 所述相应的第二服务器经所述第一服务器将统计分析结果返回给所述客服端。
2.根据权利要求1所述的源代码统计分析方法,其中,所述统计分析参数还包含所述待分析的代码模块的指定生成日期或指定版本号,并且所述相应的第二服务器按照下列方式在本地对所述相关联的源代码文件进行统计分析: 通过扫描代码库索引获取与具有所述指定生成日期或指定版本号的待分析的代码模块相关联的文件列表; 对于所述文件列表中的每个源代码文件,将其加载到本地内存中并且根据其所属的源代码类型调用相应的语法分析器统计其中的有效代码行、注释行和空行的数量; 将所述每个源代码文件中的有效代码行、注释行和空行的数量分类汇总以生成所述统计分析结果。
3.根据权利要求2所述的源代码统计分析方法,其中,通过开启多线程来并行地统计多个源代码文件的有效代码行、注释行和空行的数量。
4.根据权利要求1所述的源代码统计分析方法,其中,所述统计分析参数还包含所述待分析的代码模块的指定时间起点和终点,并且所述相应的第二服务器按照下列方式在本地对所述相关联的源代码文件进行统计分析: 通过扫描代码库索引获取与生成日期在所述指定时间起点与终点之间的待分析的代码模块相关联的文件列表; 对于所述文件列表中的每个源代码文件,将其加载到本地内存中并且根据其所属的源代码类型调用相应的语法分析器统计该源代码文件的有效代码行、注释行和空行的数量变化; 将所述每个源代码文件中的有效代码行、注释行和空行的数量变化分类汇总以生成所述统计分析结果。
5.根据权利要求4所述的源代码统计分析方法,其中,通过开启多线程来并行地获取所述文件列表中的文件。
6.一种源代码统计分析系统,其特征在于,包括第一服务器和与所述第一服务器相连的第二服务器, 其中,所述第一服务器配置为从客户端接收源代码统计分析请求,并且根据由所述源代码统计分析请求生成的统计分析参数选定相应的第二服务器,所述统计分析参数包含待分析的代码模块及其所属代码库的标识符,所述相应的第二服务器存储与所述待分析的代码模块相关联的源代码文件,所述相应的第二服务器配置为在本地对所述相关联的源代码文件进行统计分析并且所述第一服务器将统计分析结果返回给所述客服端。
7.根据权利要求6所述的源代码统计分析系统,其中,所述第一服务器是适于处理Web查询请求的Web服务器。
8.根据权利要求1所述的源代码统计分析系统,其中,所述统计分析参数还包含所述待分析的代码模块的指定生成日期或指定版本号,并且所述相应的第二服务器配置为按照下列方式在本地对所述相关联的源代码文件进行统计分析: 通过扫描代码库索引获取与具有所述指定生成日期或指定版本号的待分析的代码模块的文件列表; 对于所述文件列表中的每个源代码文件,将其加载到本地内存中并且根据其所属的源代码类型调用相应的语法分析器统计其中的有效代码行、注释行和空行的数量; 将所述每个源代码文件中的有效代码行、注释行和空行的数量分类汇总以生成所述统计分析结果。
9.根据权利要求8所述的源代码统计分析系统,其中,所述相应的第二服务器配置为通过开启多线程来并行地统计多个源代码文件的有效代码行、注释行和空行的数量。
10.根据权利要求9所述的源代码统计分析系统,其中,所述统计分析参数还包含指定时间起点和终点,并且所述相应的第二服务器配置为按照下列方式在本地对所述相关联的源代码文件进行统计分析: 通过扫描代码库索引获取与生成日期在所述指定时间起点与终点之间的待分析的代码模块相关联的文件列表; 对于所述文件列表中的每个源代码文件,将其加载到本地内存中并且根据其所属的源代码类型调用相应的语法分析器统计该源代码文件的有效代码行、注释行和空行的数量变化; 将所述每个源代码文件中的有效代码行、注释行和空行的数量变化分类汇总以生成所述统计分析结果。
11.根据权利要求10所述的源代码统计分析系统,其中,所述相应的第二服务器配置为通过开启多线程来并行地获取所述文件列表中的文件。
【专利摘要】本发明涉及计算机软件开发技术,特别涉及一种源代码统计方法和实现该方法的源代码统计分析系统。按照本发明一个实施例的源代码统计分析方法包括下列步骤:第一服务器根据接收自客户端的源代码统计分析请求生成统计分析参数,所述统计分析参数包含待分析的代码模块及其所属代码库的标识符;所述第一服务器选定相应的第二服务器,所述相应的第二服务器存储与所述待分析的代码模块相关联的源代码文件;所述相应的第二服务器在本地对所述相关联的源代码文件进行统计分析;以及所述相应的第二服务器经所述第一服务器将统计分析结果返回给所述客服端。
【IPC分类】G06F17-30, G06F9-44
【公开号】CN104750469
【申请号】CN201310743559
【发明人】庄晓, 范岸, 欧鹏, 李岭, 赵清尘, 孙莉, 于一男
【申请人】中国银联股份有限公司
【公开日】2015年7月1日
【申请日】2013年12月30日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1