代码一致性检测方法
【专利摘要】本发明属于软件开发和维护技术领域,尤其涉及代码一致性检测方法。本发明的一致性检测方法将大规模项目中的代码一致性的检测和维护维持在代码段和函数的级别,而不仅仅是重复文件的检查,且将重复代码的一致性检查保持在软件开发周期的开发阶段,即在提交测试之前,从而大大缩减了由于一致性问题导致的错误的修复时间。
【专利说明】
代码一致性检测方法
技术领域
[0001]本发明属于软件开发和维护技术领域,尤其涉及代码一致性检测方法。
【背景技术】
[0002]目前,软件开发领域中存在一些检测代码重复的工具和方法,可以有效的检测出代码中的重复模块,但是都只是局限在检测和发现问题。在实际应用中,对于很多项目,尤其是已经开发和维护了很多年的软件,代码中存在大量的重复块,清除这些重复几乎是不可能而且开销极大。对于这类情形,目前没有什么针对的解决方案持续在这样的代码基础上开发,只有比较简单的重复文件的检查,对于一些开发人员拷贝部分代码而不是拷贝整个文件,这样的方法完全不能检测出不同文件中隐藏的重复代码信息,并且保持重复代码的一致性。实践过程中会发现,很多软件问题和缺陷都是由于重复代码没有进行一致的改动造成的。
【发明内容】
[0003]本发明的目的在于提供代码一致性检测方法,从而减少因为代码不一致产生的错误。
[0004]为了解决上述技术问题,本发明通过下述技术方案得以解决:
[0005]—种代码一致性检测方法,包括以下步骤:
[0006]I)对原有代码运行重复性检测并将结果存入数据库;
[0007]2)开发人员提交改动代码前根据代码版本库检索所有改动代码涉及的文件信息;
[0008]3)根据改动的文件在步骤I)所述的数据库中进行检索得到改动代码涉及的文件所包含的所有重复代码段的信息;
[0009]4)对比改动代码和步骤3)中的重复代码段,判断提交的改动代码是否改变了这些重复代码段,如果没有即不存在一致性问题则通过检测,如果有则进行下一步检测;
[0010]5)根据步骤I)所述的数据库检索改动代码改变的重复代码段所在的文件,若检索出的文件不在改动代码涉及的文件列表中则说明改动前的重复代码段必然有些没被改动,即存在一致性的问题,报告给开发人员,若检索出的文件在改动代码涉及的文件列表中则说明可能存在一致性问题,进行下一步检测;
[0011]6)对比改动代码和检索出的改动代码涉及的文件列表中的文件中的重复代码段,若这些重复代码段改动一致,则不存在一致性问题,若这些代码段改动不一致,则存在一致性问题,报告给开发人员;
[0012]7)改动提交后对代码运行重复性检测并更新数据库。
[0013]进一步的,所述步骤I)中的重复性检测是对代码段和函数进行检测。
[0014]进一步的,所述步骤I)中的数据库的存储结构分为三层,分别为文件、文件与代码段的链接、代码段。
[0015]更进一步的,所述代码段的长度可根据需要进行配置。
[0016]本发明的有益效果有以下几点:
[0017]1、将大规模项目中的代码一致性的检测和维护维持在代码段和函数的级别,而不仅仅是重复文件的检查;
[0018]2、将代码中的重复信息存入数据库中,并且保持定期更新,可以快速的取得最新代码中的重复代码信息。
[0019]3.将重复代码的一致性检查保持在软件开发周期的开发阶段,即在提交测试之前,从而大大缩减了由于一致性问题导致的错误的修复时间。
【附图说明】
[0020]图1是本发明数据库存储结构;
[0021]图2是本发明流程图。
【具体实施方式】
[0022]下面结合实施例对本发明作进一步详细描述:
[0023]—种代码一致性检测方法,包括以下步骤:
[0024]I)对原有代码运行重复性检测并将结果存入数据库;
[0025]2)开发人员提交改动代码前根据代码版本库检索所有改动代码涉及的文件信息;
[0026]3)根据改动的文件在步骤I)所述的数据库中进行检索得到改动代码涉及的文件所包含的所有重复代码段的信息;
[0027]4)对比改动代码和步骤3)中的重复代码段,判断提交的改动代码是否改变了这些重复代码段,如果没有即不存在一致性问题则通过检测,如果有则进行下一步检测;
[0028]5)根据步骤I)所述的数据库检索改动代码改变的重复代码段所在的文件,若检索出的文件不在改动代码涉及的文件列表中则说明改动前的重复代码段必然有些没被改动,即存在一致性的问题,报告给开发人员,若检索出的文件在改动代码涉及的文件列表中则说明可能存在一致性问题,进行下一步检测;
[0029]6)对比改动代码和检索出的改动代码涉及的文件列表中的文件中的重复代码段,若这些重复代码段改动一致,则不存在一致性问题,若这些代码段改动不一致,则存在一致性问题,报告给开发人员;
[0030]7)改动提交后对代码运行重复性检测并更新数据库。
[0031]进一步的,所述步骤I)中的重复性检测是对代码段和函数进行检测。
[0032]进一步的,步骤I)中的数据库存储结构分为三层,分别为文件、文件与代码段的链接、代码段,如图1所示。
[0033]代码段的长度可以根据需要进行配置。
[0034]整个检测流程如图2所示。
[0035]该方法不仅适用于代码,也可用于通用文档,以及不同格式文档间的一致性检测。
[0036]总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
【主权项】
1.一种代码一致性检测方法,其特征在于:包括以下步骤: 1)对原有代码运行重复性检测并将结果存入数据库; 2)开发人员提交改动代码前根据代码版本库检索所有改动代码涉及的文件信息; 3)根据改动的文件在步骤I)所述的数据库中进行检索得到改动代码涉及的文件所包含的所有重复代码段的信息; 4)对比改动代码和步骤3)中检索到的重复代码段,判断提交的改动代码是否改变了这些重复代码段,如果没有即不存在一致性问题则通过检测,如果有则进行下一步检测; 5)根据步骤I)所述的数据库检索改动代码改变的重复代码段所在的文件,若检索出的文件不在改动代码涉及的文件列表中则说明改动前的重复代码段必然有些没被改动,即存在一致性的问题,报告给开发人员,若检索出的文件在改动代码涉及的文件列表中则说明可能存在一致性问题,进行下一步检测; 6)对比改动代码和检索出的改动代码涉及的文件列表中的文件中的重复代码段,若这些重复代码段改动一致,则不存在一致性问题,若这些代码段改动不一致,则存在一致性问题,报告给开发人员; 7)改动提交后对代码运行重复性检测并更新数据库。2.根据权利要求1所述的代码一致性检测方法,其特征在于:所述步骤I)中的重复性检测是对代码段和函数进行检测。3.根据权利要求1所述的代码一致性检测方法,其特征在于:所述步骤I)中的数据库的存储结构分为三层,分别为文件、文件与代码段的链接、代码段。4.根据权利要求1、2、3任一所述的代码一致性检测方法,其特征在于:所述代码段的长度可根据需要进行配置。
【文档编号】G06F11/36GK105988929SQ201510092936
【公开日】2016年10月5日
【申请日】2015年3月2日
【发明人】徐青松, 罗欢, 陈明权
【申请人】杭州睿琪软件有限公司