软件源代码在线检测系统及其检测方法

文档序号:10724584阅读:715来源:国知局
软件源代码在线检测系统及其检测方法
【专利摘要】本发明涉及软件源代码在线检测系统,包括版本控制服务器,用于接收研发人员所提交的软件源代码,触发代码检测服务器对源代码进行分析与检测,并将检测结果反馈给研发人员;代码检测服务器,用于接收版本控制服务器发送的信号后对软件源代码进行分析,对提交代码的分解结果进行系统分析,将结果反馈到所述版本控制服务器,由版本控制服务器进行软件源代码处理,与版本控制服务器连接。本发明通过版本控制服务器对软件源代码版本进行管控,通过代码检测服务器对于提过的软件源代码进行拆解和源代码检测分析,版本控制服务器对于分析结果实时给予开发人员提示,实现自动化代码监管,以提高软件整体质量,提高系统运行过程中的安全性能。
【专利说明】
软件源代码在线检测系统及其检测方法
技术领域
[0001]本发明涉及软件检测系统,更具体地说是指软件源代码在线检测系统以及该检测系统的检测方法。
【背景技术】
[0002]软件源代码就是指编写的最原始程序的代码。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的“语言”。现有的IDE编辑器对软件源代码的编写规范和安全检测不够智能,加上团队开发人员能力的参差不齐,软件源代码规范、安全性与执行性能不能保证,软件源代码风格难以统一,可读性差,不易后期的维护,且人为代码质量分析会出现片面性与局限性。
[0003]目前市面上也出现了用于检测软件源代码规范性的系统,但是现有检测系统不能在软件源代码提交时有效反馈检测结果,需要代码提交后,进行二次检测,不利软件源代码中问题及时发现与解决,对于提交权限与多人协同开发代码交叉问题无法解决,对于软件源代码的自动化测试无法进行检测,对于开发人员代码质量无法给出分析报告,难以提高软件整体质量,并且人工代码审核时间和自动化白盒测试时间较长。
[0004]中国专利201310616319.2公开了一种源代码宏配对检测方法,包括接收待检测的源代码程序包:判断源代码程序包是否为强制提交文件;若是,则将所述源代码程序包直接提交至所述代码库服务器;若否,则查询所述源代码程序包中的文件列表,对所述源代码程序包中的源代码文件进行过滤,获得新增或修改的源代码文件;对所述新增或修改的源代码文件逐一进行宏配对检测,并在所有新增或修改的源代码文件的宏配对检测无误时,将所述源代码程序包提交至所述代码库服务器。中国专利201310492007.5公开了一种Java源代码的合规性检测方法和装置,方法包括:构建Java源代码的编码规范库,根据编码规范库中的编码规范,生成合规性检测规则集合,构建带检测的Java源代码的合规性检测模型,该模型包括:类集合C、方法集合M、变量集合V和指令集合I,将合规性检测规则集合中的各个规则一一与合规性检测模型中的C、M、V和I集合进行匹配,如果匹配则记录匹配结果信息,根据激励的匹配结果信息。
[0005]上述的两个专利并非结合版本管理工具进行代码检测,而且无法实时响应检测结果,给予开发人员提示。
[0006]因此,有必要设计软件源代码在线检测系统,实现提交软件源代码时,自动化进行代码分析与检测,并实时响应检测结果,给予开发人员提示,协助开发人员及时修改。

【发明内容】

[0007]本发明的目的在于克服现有技术的缺陷,提供软件源代码在线检测系统及其检测方法。
[0008]为实现上述目的,本发明采用以下技术方案:软件源代码在线检测系统,包括版本控制服务器以及代码检测服务器;
[0009]所述版本控制服务器,用于接收研发人员所提交的软件源代码,触发代码检测服务器对源代码进行分析与检测,并将检测结果反馈给研发人员,以便研发人员进行代码修改;
[0010]所述代码检测服务器,用于接收所述版本控制服务器发送的信号后对软件源代码进行分析,以及对提交代码的分解结果进行系统分析,并将结果反馈到所述版本控制服务器,由所述版本控制服务器进行软件源代码处理,与所述版本控制服务器连接。
[0011 ]其进一步技术方案为:所述代码检测服务器包括代码解析器以及检测系统;
[0012]所述代码解析器,用于接收所述版本控制服务器的控制信号,对开发人员编写的软件源代码按代码运行环境编译器原理进行语法分解,提供代码分解结果,与所述版本控制服务器连接;
[0013]所述检测系统,用于对所述代码解析器所提交代码的分解结果进行系统分析,检测代码是否符合规范标准、安全标准、性能标准等自定义标准,同时对提交人权限、是否存在代码交叉、语法错误进行分析;返回提交检测结果到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。
[0014]其进一步技术方案为:所述检测系统包括语法检测模块,所述语法检测模块用于对提交代码的分解结果进行语法分析,检测代码是否符合语法标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。
[0015]其进一步技术方案为:所述检测系统包括安全检测模块;所述安全检测模块,用于对提交代码的分解结果进行安全性分析,检测代码是否符合安全标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。
[0016]其进一步技术方案为:所述检测系统包括规范检测模块,所述规范检测模块,用于对提交代码的分解结果进行代码规范分析,检测代码是否符合规范标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。
[0017]其进一步技术方案为:所述检测系统包括交叉检测模块;所述交叉检测模块,用于对提交代码的分解结果进行代码交叉分析,检测代码是否符合交叉标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。
[0018]其进一步技术方案为:所述检测系统包括权限检测模块以及性能检测模块;
[0019]所述权限检测模块,用于对提交代码的分解结果进行提交人权限分析,检测提交人权限是否符合权限标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接;
[0020]所述性能检测模块,用于对提交代码的分解结果进行性能分析,检测提交人权限是否性能标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。
[0021]本发明还提供了软件源代码在线检测系统的检测方法,具体步骤如下:
[0022]步骤一、开发人员通过版本控制服务器提交软件源代码;
[0023]步骤二、版本控制服务器发送信号,触发代码检测服务器对源代码进行分析与检测,分析完成后,返回向版本控制服务器提交检测结果,版本控制服务器接收检测结果后,将结果反馈给研发人员,若反馈结果为合格,则完成代码提交;若反馈结果为不合格,研发人员针对反馈内容进行修改,重复步骤一,直至反馈结果为合格。
[0024]其进一步技术方案为:在所述步骤一中,在提交软件源代码之前,需要进行以下准备步骤:
[0025]步骤1、构建版本控制服务器;
[0026]步骤2、安装和配置代码解析工具;
[0027]步骤3、构建代码检测系统。
[0028]其进一步技术方案为:在所述步骤二中,代码检测服务器对源代码进行分析与检测的具体步骤如下:
[0029]步骤1、代码检测服务器先对对开发人员编写的软件源代码按代码运行环境编译器原理进行语法分解,提供代码分解结果;
[0030]步骤2、对分解后的代码进行系统分析,检测代码是否符合规范标准、安全标准、性能标准的自定义标准,同时对提交人权限、是否存在代码交叉、语法错误进行分析,检测系统分析完成后,返回向版本控制服务器提交检测结果。
[0031]本发明与现有技术相比的有益效果是:本发明的软件源代码在线检测系统,通过版本控制服务器对软件源代码版本进行管控,同时通过代码检测服务器对于提过的软件源代码进行拆解和源代码检测分析,版本控制服务器对于分析结果实时给予开发人员提示,实现自动化代码监管,以提高软件整体质量,提高系统运行过程中的安全性能,节省了人工代码审核时间和自动化白盒测试时间,培养开发人员正确的编码习惯。
[0032]下面结合附图和具体实施例对本发明作进一步描述。
【附图说明】
[0033]图1为本发明具体实施例提供的软件源代码在线检测系统的结构示意图;
[0034]图2为本发明具体实施例提供的软件源代码在线检测系统的检测方法流程框图 ,
[0035]图3为本发明具体实施例提供的软件源代码在线检测系统的检测方法流程框图
--O
[0036]附图标记
[0037]10版本控制服务器20 代码解析器
[0038]30交叉检测模块40 性能检测模块
[0039]50规范检测模块60 WEB前端模块
[0040]70安全检测模块80 权限检测模块[0041 ]90语法检测模块
【具体实施方式】
[0042]为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
[0043]如图1?3所示的具体实施例,本实施例提供的软件源代码在线检测系统,可以运用在软件开发的过程中,实现开发人员在使用版本管理工具提交软件源代码时,自动化进行代码分析与检测,并实时响应检测结果,给予开发人员提示,协助开发人员及时修改。
[0044]软件源代码在线检测系统,包括版本控制服务器10以及代码检测服务器,版本控制服务器10用于接收研发人员所提交的软件源代码,触发代码检测服务器对源代码进行分析与检测,并将检测结果反馈给研发人员,以便研发人员进行代码修改;代码检测服务器,用于接收版本控制服务器10发送的信号后对软件源代码进行分析,以及对提交代码的分解结果进行系统分析,并将结果反馈到版本控制服务器10,由版本控制服务器10进行软件源代码处理,与版本控制服务器10连接。
[0045]开发人员在使用版本控制服务器10,提交软件源代码时,代码检测服务器对源代码进行自动化代码分析与检测,并实时响应检测结果,给予开发人员提示,协助开发人员及时修改。
[0046]上述的软件源代码在线检测系统,通过版本控制服务器10对软件源代码版本进行管控,同时通过代码检测服务器对于提过的软件源代码进行拆解和源代码检测分析,版本控制服务器10对于分析结果实时给予开发人员提示,实现自动化代码监管,以提高软件整体质量,提高系统运行过程中的安全性能,节省了人工代码审核时间和自动化白盒测试时间,培养开发人员正确的编码习惯。
[0047]更进一步的,上述的代码检测服务器包括代码解析器20以及检测系统,其中,代码解析器20,用于接收版本控制服务器10的控制信号,对开发人员编写的软件源代码按代码运行环境编译器原理进行语法分解,提供代码分解结果,与版本控制服务器10连接;检测系统,用于对代码解析器20所提交代码的分解结果进行系统分析,检测代码是否符合规范标准、安全标准、性能标准等自定义标准,同时对提交人权限、是否存在代码交叉、语法错误进行分析;返回提交检测结果到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接。
[0048]通过版本控制服务器10对软件源代码版本进行管控,通过代码解析器20对于提过的软件源代码进行拆解,经过检测系统进行源码分析,对开发人员提交的软件源代码进行规范检测、安全检测、交叉检测、性能检测、提交人权限检测、版本检测、语法错误检测。
[0049]上述的检测系统包括语法检测模块90、安全检测模块70、规范检测模块50、交叉检测模块30、权限检测模块80以及性能检测模块40,其中,语法检测模块90,用于对提交代码的分解结果进行语法分析,检测代码是否符合语法标准,并将检测结果发送到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接;安全检测模块70,用于对提交代码的分解结果进行安全性分析,检测代码是否符合安全标准,并将检测结果发送到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接;规范检测模块50,用于对提交代码的分解结果进行代码规范分析,检测代码是否符合规范标准,并将检测结果发送到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接;交叉检测模块30,用于对提交代码的分解结果进行代码交叉分析,检测代码是否符合交叉标准,并将检测结果发送到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接;权限检测模块80,用于对提交代码的分解结果进行提交人权限分析,检测提交人权限是否符合权限标准,并将检测结果发送到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接;性能检测模块40,用于对提交代码的分解结果进行性能分析,检测提交人权限是否性能标准,并将检测结果发送到版本控制服务器10,分别与版本控制服务器10以及代码解析器20连接。
[0050]另外,本发明还可以利用自定义代码规范进行检测,使用代码解析器20对于软件源代码进行拆解分析,并引入自定义代码规范进行匹配,快速给予提交者反馈结果,提高代码质量。
[0051]为了实现自定义代码规范进行检测的功能,软件源代码在线检测系统还包括WEB前端模块60,该WEB前端模块60用于供开发人员添加检测规范,所添加的检测规范会发送到规范检测模块50内,作为检测的标准。
[0052]在本实施例中,版本控制服务器10使用的是市场现有的版本控制工具,实现开发团队并行开发、提高开发效率,对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失、修改的丢失和相互覆盖,通过对版本库的访问控制避免未经授权的访问和修改。
[0053]本发明还提供了软件源代码在线检测系统的检测方法,具体步骤如下:
[0054]步骤一、通过版本控制服务器10提交软件源代码;
[0055]步骤二、版本控制服务器10发送信号,触发代码检测服务器对源代码进行分析与检测,分析完成后,返回向版本控制服务器10提交检测结果,版本控制服务器10接收检测结果后,将结果反馈给研发人员,若反馈结果为合格,则完成代码提交;若反馈结果为不合格,研发人员针对反馈内容进行修改,重复步骤一,直至反馈结果为合格。
[0056]该检测方法能快速、有效地解决大多数的代码版本管理工具无法系统有效管理代码交叉、提交权限;不利于代码规范的推行,无法进行软件源代码安全与性能检测,给多人联合开发带来不便的问题,通过版本控制服务器10提交代码时,调用代码检测系统,对提交的软件源代码进行规范检测、安全检测、交叉检测、性能检测、提交人权限检测、版本检测、语法错误检测;并把检测结果及时反馈给代码提交人员,给予相应代码修改提示;有效控制提交代码的质量,防止多少协同开发出现问题。
[0057]更进一步的,所述步骤一中,在提交软件源代码之前,需要进行以下准备步骤:
[0058]步骤1、构建版本控制服务器10;
[0059]步骤2、安装和配置代码解析工具;
[0060]步骤3、构建代码检测系统。
[0061]更进一步的,上述的步骤二中,代码检测服务器对源代码进行分析与检测具体步骤如下:
[0062]步骤1、代码检测服务器先对对开发人员编写的软件源代码按代码运行环境编译器原理进行语法分解,提供代码分解结果;
[0063]步骤2、对分解后的代码进行系统分析,检测代码是否符合规范标准、安全标准、性能标准的自定义标准,同时对提交人权限、是否存在代码交叉、语法错误进行分析,检测系统分析完成后,返回向版本控制服务器10提交检测结果。
[0064]更进一步的,所述步骤二中,在检测系统调用自定义规范之前,研发人员需要在WEB前端模块60添加检测规范,检测系统才可以调用该自定义规范,作为检测标准。
[0065]上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
【主权项】
1.软件源代码在线检测系统,其特征在于,包括版本控制服务器以及代码检测服务器; 所述版本控制服务器,用于接收研发人员所提交的软件源代码,触发代码检测服务器对源代码进行分析与检测,并将检测结果反馈给研发人员,以便研发人员进行代码修改; 所述代码检测服务器,用于接收所述版本控制服务器发送的信号后对软件源代码进行分析,以及对提交代码的分解结果进行系统分析,并将结果反馈到所述版本控制服务器,由所述版本控制服务器进行软件源代码处理,与所述版本控制服务器连接。2.根据权利要求1所述的软件源代码在线检测系统,其特征在于,所述代码检测服务器包括代码解析器以及检测系统; 所述代码解析器,用于接收所述版本控制服务器的控制信号,对开发人员编写的软件源代码按代码运行环境编译器原理进行语法分解,提供代码分解结果,与所述版本控制服务器连接; 所述检测系统,用于对所述代码解析器所提交代码的分解结果进行系统分析,检测代码是否符合规范标准、安全标准、性能标准等自定义标准,同时对提交人权限、是否存在代码交叉、语法错误进行分析;返回提交检测结果到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。3.根据权利要求2所述的软件源代码在线检测系统,其特征在于,所述检测系统包括语法检测模块,所述语法检测模块用于对提交代码的分解结果进行语法分析,检测代码是否符合语法标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。4.根据权利要求2所述的软件源代码在线检测系统,其特征在于,所述检测系统包括安全检测模块;所述安全检测模块,用于对提交代码的分解结果进行安全性分析,检测代码是否符合安全标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。5.根据权利要求2所述的软件源代码在线检测系统,其特征在于,所述检测系统包括规范检测模块,所述规范检测模块,用于对提交代码的分解结果进行代码规范分析,检测代码是否符合规范标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。6.根据权利要求2所述的软件源代码在线检测系统,其特征在于,所述检测系统包括交叉检测模块;所述交叉检测模块,用于对提交代码的分解结果进行代码交叉分析,检测代码是否符合交叉标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。7.根据权利要求2所述的软件源代码在线检测系统,其特征在于,所述检测系统包括权限检测模块以及性能检测模块; 所述权限检测模块,用于对提交代码的分解结果进行提交人权限分析,检测提交人权限是否符合权限标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接; 所述性能检测模块,用于对提交代码的分解结果进行性能分析,检测提交人权限是否性能标准,并将检测结果发送到所述版本控制服务器,分别与所述版本控制服务器以及所述代码解析器连接。8.软件源代码在线检测系统的检测方法,其特征在于,具体步骤如下: 步骤一、开发人员通过版本控制服务器提交软件源代码; 步骤二、版本控制服务器发送信号,触发代码检测服务器对源代码进行分析与检测,分析完成后,返回向版本控制服务器提交检测结果,版本控制服务器接收检测结果后,将结果反馈给研发人员,若反馈结果为合格,则完成代码提交;若反馈结果为不合格,研发人员针对反馈内容进行修改,重复步骤一,直至反馈结果为合格。9.如权利要求8所述的软件源代码在线检测系统的检测方法,其特征在于,在所述步骤一中,在提交软件源代码之前,需要进行以下准备步骤: 步骤1、构建版本控制服务器; 步骤2、安装和配置代码解析工具; 步骤3、构建代码检测系统。10.如权利要求8所述的软件源代码在线检测系统的检测方法,其特征在于,在所述步骤二中,代码检测服务器对源代码进行分析与检测的具体步骤如下: 步骤1、代码检测服务器先对对开发人员编写的软件源代码按代码运行环境编译器原理进行语法分解,提供代码分解结果; 步骤2、对分解后的代码进行系统分析,检测代码是否符合规范标准、安全标准、性能标准的自定义标准,同时对提交人权限、是否存在代码交叉、语法错误进行分析,检测系统分析完成后,返回向版本控制服务器提交检测结果。
【文档编号】G06F11/36GK106095446SQ201610414798
【公开日】2016年11月9日
【申请日】2016年6月14日 公开号201610414798.3, CN 106095446 A, CN 106095446A, CN 201610414798, CN-A-106095446, CN106095446 A, CN106095446A, CN201610414798, CN201610414798.3
【发明人】李辉
【申请人】深圳市彬讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1