一种代码生产率统计方法及其系统技术方案

技术编号:9850917 阅读:144 留言:0更新日期:2014-04-02 16:52
本发明专利技术涉及统计技术领域,尤其是一种代码生产率统计方法及其系统。本发明专利技术首先确定要统计的时间段和要统计的所有代码所在的路径,使用操作日志导出模块导出一个操作日志。然后设定分类条件,单类代码行数统计模块逐条读取操作日志,在日志中筛选符合条件的文件提交记录,并读取其版本号;比较。代码修改的行数,并进行记录,直到该类代码统计完毕为止;重复以上步骤直至所有类型的代码统计完;完毕后,得到一个各个用户的代码行数的记录,各单类乘以其代码换算比例,统计得到各个用户总代码生产率;最后将结果生成报表。本发明专利技术能够快速地对代码生产率进行统计,节省统计时间,提高统计效率;可以IT研发人员的工作质量、效率及工作成果总结和改进。

【技术实现步骤摘要】
一种代码生产率统计方法及其系统
本专利技术涉及统计
,尤其是一种代码生产率统计方法及其系统。
技术介绍
在IT研发工作中,经常需要对开发人员的代码生产率进行统计,以便反映出员工的工作质量、效率及工作成果,进而对开发工作进行总结和改进。传统的代码生产率统计方法是在JAVA运行环境下CheckOut工作版本库的SVN,通过cmd命令行生成LOG文件,再调用StatSVN工具进行统计,再通过index.html文件查看统计结果,最后按照不同类型的代码根据不同比例换算。该方法通过在版本库中查看统计时间段内每个源代码文件的操作日志,然后日志中找出每次提交到版本库后代码被改动的行数来统计代码生产率,具有以下弊端:一是方法复杂,需要重复输入多条cmd命令行,容易出错;二是统计效率低,调用工具时统计的时间不等,工作量大,耗时长;三是手动输入转换比例,出错几率大,工作量繁复。为了快速方便地统计代码生产率,需要一种既能有效节省统计时间、提高统计效率,又能保证统计结果准确性的代码生产率的统计方法。
技术实现思路
本专利技术解决的技术问题之一在于提供一种可以高效、准确统计代码的方法,解决统计步骤多、规则繁复、工作量大的问题。本专利技术解决的技术问题之二在于提供一种可以高效、准确统计代码系统,解决统计步骤多、规则繁复、工作量大的问题。本专利技术解决上述技术问题之一的技术方案是:包括如下步骤:步骤1:确定要统计的时间段和要统计的所有代码所在的路径后,使用操作日志导出模块导出一个操作日志;步骤2:单类代码行数统计模块先设定分类条件,即文件后缀;步骤3:单类代码行数统计模块逐条读取操作日志,在日志中筛选符合条件的文件提交记录,并读取其版本号;步骤4:单类代码行数统计模块比较当前版本号与上个版本号之间代码修改的行数,并进行记录,直到该类代码统计完毕为止;步骤5:如果需要继续统计其他类别的代码,则返回步骤2;如果不需要统计,执行步骤6;步骤6:在各单类代码统计完毕以后,将得到一个各个用户的代码行数的记录,代码生产率统计模块将各单类乘以其代码换算比例,然后将换算后的值相加,统计得到各个用户总代码生产率;步骤7:存储模块将代码生产率统计模块的结果生成报表。所述的代码换算比例是指根据规模折算关系,对各类型代码换算成C语言的行数,.css、.html类型的换算比例为0.4。本专利技术解决上述技术问题之二的技术方案是:所述的系统包括版本库、操作日志导出模块、单类代码行数统计模块、代码生产率统计模块、存储模块;所述的版本库是指版本控制工具中建立的具体某项目的版本控制库,可以是SVN、CVS或Git中建立的某个代码仓库;所述的操作日志导出模块是指从版本库中按照统计时间段、统计路径的要求导出源代码文件的操作记录的模块;所述的单类代码行数统计模块是从操作日志中按照预先设定的代码分类要求分别对不同种类的代码按不同的提交者统计其代码提交行数的模块;所述的代码生产率统计模块是指按照统计规则对每个研发人员的代码生产率进行统计的模块;所述的存储模块用于把统计结果生成报表。本专利技术通过直接选择SVN代码路径、目标文件存放路径和时间区间来统计该路径下的代码行数,并自动统计计算三次,生成三份报表;将这三份报表的内容进行比较,取相同的两份作为最终的数据,若三份均不同则重新统计。本专利技术将统计方法从输入cmd命令行变成直接选取代码存放路径,不仅缩短了统计时长,也简化了统计方法,使得统计效率变高;而三次统计也增加了数据的准确性。附图说明下面结合附图对本专利技术进一步说明:附图是本专利技术方法流程图。具体实施方式如附图所示,本专利技术先确定统计时间段和代码路径,使用操作日志导出模块导出操作日志,代码如下://调用svn命令生成操作日志publicclassGenerateLogCommand{//开始时间privateDatestartDate;//结束时间privateDateendDate;//源代码路径privateStringlogFilePath;publicGenerateLogCommand(DatestartDate,DateendDate,StringlogFilePath){this.startDate=startDate;this.endDate=endDate;this.logFilePath=logFilePath;}privateStringformateDate(Datedate){SimpleDateFonnatdateFm=newSimpleDateFormat(″yyyy-MM-dd″);retumdateFm.format(date);}publicStringtoString(){retum″svnlog-r{″+formateDate(startDate)+″}:{″+formateDate(endDate)+″}-v--xml>\″″″+logFilePath+″\″″;}}publicvoidgenerateSVNLog(){CdCommandcd=newCdCommand(sourceCodeDirectory);StringdiskId=sourceCodeDirectory.substring(0,2);GenerateLogCommandgeneratelog=newGenerateLogCommand(startDate,endDate,sourceCodeDirectory+logFileName);try{System.out.println(″Generatinglog…″);deletefile(sourceCodeDirectory+logFileName);//调用svn命令生成操作日志文件CmdHandler.executeCommand(diskId+″&″+cd.toString()+″&″+generatelog.toString());LogProcessor.processDate(sourceCodeDirectory+logFileName,startDate,endDate);System.out.println(″Generatesuccessfully!″);}catch(Exceptione){e.printStackTrace();}}再设定代码统计模块的分类条件,根据规模折算关系的比例,.c、.cpp、.h转换成C语言行数的比例为1,.java、.jsp、.js、.as、.mxml转换成C语言行数的比例为0.7,.sql、.sh、.py、.xml转换成C语言行数的比例为0.62,.css、.html转换成C语言行数的比例为0.4,定义如下:publicfinalstaticStringCODE_LINE_1_SUFFIX=″**/*.c;**/*.cpp;**/*.h″;publicfinalstaticStringCODE_LINE_0_7_SUFFIX=″**/*.java;**/*.jsp;**/*.js;**/*.as;**/*.mxml";publicfinalstaticStringCODE_LINE_0_6_2_SUFFIX=″**/*.sql;**/*.sh;**/*.p本文档来自技高网...
一种代码生产率统计方法及其系统

【技术保护点】
一种代码生产率统计方法,其特征在于:包括如下步骤:步骤1:确定要统计的时间段和要统计的所有代码所在的路径后,使用操作日志导出模块导出一个操作日志;步骤2:单类代码行数统计模块先设定分类条件,即文件后缀;步骤3:单类代码行数统计模块逐条读取操作日志,在日志中筛选符合条件的文件提交记录,并读取其版本号;步骤4:单类代码行数统计模块比较当前版本号与上个版本号之间代码修改的行数,并进行记录,直到该类代码统计完毕为止;步骤5:如果需要继续统计其他类别的代码,则返回步骤2;如果不需要统计,执行步骤6;步骤6:在各单类代码统计完毕以后,将得到一个各个用户的代码行数的记录,代码生产率统计模块将各单类乘以其代码换算比例,然后将换算后的值相加,统计得到各个用户总代码生产率;步骤7:存储模块将代码生产率统计模块的结果生成成报表。

【技术特征摘要】
1.一种代码生产率统计方法,其特征在于:包括如下步骤:步骤1:确定要统计的时间段和要统计的所有代码所在的路径后,使用操作日志导出模块导出一个操作日志;步骤2:单类代码行数统计模块先设定分类条件,即文件后缀;步骤3:单类代码行数统计模块逐条读取操作日志,在日志中筛选符合条件的文件提交记录,并读取其版本号;步骤4:单类代码行数统计模块比较当前版本号与上个版本号之间代码修改的行数,并进行记录,直到该类代码统计完毕为止;步骤5:如果需要继续统计其他类别的代码,则返回步骤2;如果不需要统计,执行步骤6;步骤6:在各单类代码统计完毕以后,将得到一个各个用户的代码行数的记录,代码生产率统计模块将各单类乘以其代码换算比例,然后将换算后的值相加,统计得到各个用户总代码生产率;步骤7:存储模块将代码生产率统计模块的结果生成报表。2.根据权利要求1所述的代码生...

【专利技术属性】
技术研发人员:汤碧君杨松莫展鹏季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1