[发明专利]基于差异信息文件识别和检查修改代码块的方法及装置有效
申请号: | 201310045390.X | 申请日: | 2013-02-05 |
公开(公告)号: | CN103092761A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 杜利;夏冉 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 差异 信息 文件 识别 检查 修改 代码 方法 装置 | ||
技术领域
本发明涉及源代码文件检查领域,尤其涉及一种基于差异信息文件识别和检查修改代码块的方法及装置。
背景技术
在软件开发的过程中,经常会出现在开源或第三方商业代码文件的基础上进行二次开发的情况。经过二次开发后的源代码文件由两部分组成:一部分是原始的开源或商业代码;另一部分是二次开发时新增或修改的代码。这两部分出自于不同的开发团队,所遵循的编码规范一般存在差异。
对源代码文件修改后,为了保证修改的源代码文件符合编码规范,一般需要通过代码检查分析工具对修改的源代码文件进行检查。对修改的源代码文件进行检查,如果采用二次开发时所遵循的编码规范对整个源代码文件进行规范性检查,源代码文件中的原始部分将可能被检查出大量的违反信息;因此,进行代码规范性检查的主要对象仅仅是修改的代码块(代码块是编程语言中的逻辑单位,对代码进行代码规范性检查和复杂度分析时,必须以代码块为最小单位,否则无法进行)。
但是,常规的代码检查分析工具对修改的源代码文件进行检查时存在以下缺陷:
(1)由于常规的代码检查分析工具缺乏对修改代码的识别功能,因此代码检查分析工具不仅无法得知源代码文件中的哪些代码已经修改,需要进行检查;也无法得知哪些代码未修改,不需进行检查。代码检查分析工具检查修改后的源代码文件时,只能对修改后的源代码文件的全文进行检查。因此,代码检查分析工具反馈的输出违反信息中,有大量代码是未修改的源代码文件;如根据代码检查分析工具检查的结果对未修改的源代码文件进行修改,不仅可能引入新的错误(bug),进而对源代码文件造成不必要的危害,而且需要进行额外的测试,增大了工作量,工作效率较低。
(2)对于较大的源代码文件(例如上万或几十万行的源代码文件)而言,采用代码检查分析工具对源代码文件的全文进行检查时,需要耗费较长的检查时间,工作效率较低。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于差异信息文件识别和检查修改代码块的方法及装置。它能够对修改代码块进行识别,通过本发明识别出的修改代码块进行代码规范性检查时,只需检查修改代码块中的代码是否违反代码规范,不仅检查时间较短,工作效率较高,而且保证了修改后的源代码文件使用的安全。
为达到以上目的,本发明提供的基于差异信息文件识别和检查修改代码块的方法,包括以下步骤:A、通过源代码文件管理工具生成差异信息文件,所述差异信息文件中记录有源代码文件的修改信息,所述修改信息包括源代码文件的修改行的行号,根据源代码文件的修改行的行号识别修改行;B、判断相邻修改行的行号是否连续,若连续,则将连续的修改行合并成修改块,并记录修改块的起始行号和结束行号;若不连续,则直接将修改行标记为修改块,并记录修改块的起始行号和结束行号;C、判断修改块的起始行号至结束行号的区间是否全部处于代码块的起始行号至结束行号的区间内,若是,则将代码块标记为修改代码块,否则将修改块标记为修改代码块;D、对所有标记为修改代码块的代码进行整合;E、对整合后的代码进行代码规范性检查。
在上述技术方案的基础上,步骤A中所述修改信息包括修改类型和修改代码内容,所述修改类型包括新增、删除和替换。
在上述技术方案的基础上,步骤C中包括以下步骤:在源代码文件中遍历所有的修改块,判断每个修改块的起始行号至结束行号的区间是否全部处于代码块起始行号至结束行号的区间,若是,将代码块标记为修改代码块,将代码块的起始行号和结束行号标记修改代码块的起始行号和结束行号;否则将修改块标记为修改代码块,将修改块的起始行号和结束行号标记修改代码块的起始行号和结束行号。
在上述技术方案的基础上,步骤D中包括以下步骤:根据所有修改代码块的起始行号和结束行号,遍历所有的修改代码块,判定任意两个修改代码块的起始行号至结束行号的区间交叉时,合并两个起始行号至结束行号的区间交叉的修改代码块,并记录合并之后的修改代码块的起始行号和结束行号。
在上述技术方案的基础上,步骤D中还包括以下步骤:判定任意两个修改代码块的起始行号至结束行号的区间没有交叉时,直接转到步骤E。
在上述技术方案的基础上,步骤E中包括以下步骤:根据修改行的行号判定代码规范性检查出的违反行属于修改行时,输出违反行的违反信息。
在上述技术方案的基础上,步骤E中还包括以下步骤:判定代码规范性检查出的所有违反行均不属于修改行时,输出没有违反行的违反信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310045390.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带有照明功能的柜门门撑
- 下一篇:弹簧卡接式组合栅栏
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置