CN103246575A - 软件有效代码量统计方法和装置 - Google Patents
软件有效代码量统计方法和装置 Download PDFInfo
- Publication number
- CN103246575A CN103246575A CN2013101533225A CN201310153322A CN103246575A CN 103246575 A CN103246575 A CN 103246575A CN 2013101533225 A CN2013101533225 A CN 2013101533225A CN 201310153322 A CN201310153322 A CN 201310153322A CN 103246575 A CN103246575 A CN 103246575A
- Authority
- CN
- China
- Prior art keywords
- software
- statistics
- software module
- file
- statistical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件有效代码量统计方法和装置,所述方法包括:软件有效代码量统计装置获取统计任务列表后,与软件版本管理工具建立连接;根据待统计软件/软件模块的名称和存放路径信息,调用软件版本管理工具的相关接口命令,获取待统计软件/软件模块的文件列表信息;根据文件列表信息中涉及的每个文件的名称和存放路径信息,调用软件版本管理工具的相关接口命令,对文件列表信息中涉及的每个文件分别进行有效代码量统计;根据统计出的文件列表信息中涉及的每个文件的有效代码量,统计出待统计软件/软件模块的有效代码量。由于本发明避免了将软件/软件模块复制或下载到指定的文件夹的操作,从而提高了统计软件有效代码量的效率和方便性。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种软件有效代码量统计方法和装置。
背景技术
随着软件公司的发展,产品线不断扩大,软件版本不断更新,对于软件质量有效的度量和管理也越来越重要。在软件质量的度量过程中,软件的有效代码量是软件质量的一项重要指标;其它一些软件质量的指标,如编码生产率(每人、每天编写代码量)、测试用例覆盖率(每千行代码设计的测试用例数)、问题覆盖率(每千行代码发现的问题数)等,都需要根据软件的有效代码量计算得到。
目前,软件公司开发的软件通常都使用CVS(Concurrent Versions System,并发版本系统)、SVN(Subversion)等软件版本管理工具进行管理。现有的代码统计工具在对软件进行有效代码量统计时,需要工作人员将软件版本管理工具中的软件代码复制或下载到代码统计工具所指定的文件夹中;之后,代码统计工具对指定的文件夹中的软件代码进行有效代码量的统计。
然而,本发明的发明人发现,现有的代码统计工具所采用的软件有效代码量统计方法,使得工作人员进行有效代码量统计时并不方便,操作繁琐、工作效率低;其体现在:
每次在有效代码量统计时,工作人员必须将待统计的软件复制或下载到指定的文件夹中;尤其对于大型软件,这将是一件非常麻烦、耗时的工作;而且不利于代码的保密性。
而且,对于多模块的软件而言,现有的代码统计工具只能将指定的文件夹中的软件作为一个整体进行有效代码量统计,得到一个有效代码量统计值;而无法得到该软件中各个模块的有效代码量统计值;由于对于大型软件而言,不同模块的代码往往是不同人员或团队开发的,因此,为了获得不同人员或团队的编码生产率指标,还需要得出各模块的有效代码量统计值。为得到各模块的有效代码量统计值,工作人员则不得不分别将各模块的代码复制或下载到指定的文件夹后,进行有效代码量统计。这使得工作人员的有效代码量统计工作非常繁琐。
综上所述,现有技术的软件有效代码量统计方法,使得工作人员进行有效代码量统计时不方便,操作繁琐、工作效率低。
发明内容
本发明的实施例提供了一种软件有效代码量统计方法和装置,用以提高统计软件有效代码量的效率以及方便性。
根据本发明的一个方面,提供了一种软件有效代码量统计方法,包括:
获取统计任务列表后,与软件版本管理工具建立连接;所述统计任务列表中记录有至少一个待统计软件/软件模块的名称和存放路径信息;
针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;所述文件列表信息中包括该待统计软件/软件模块下的各文件的名称和存放路径信息;以及
对于所述文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量。
较佳地,所述统计任务列表中对应每个待统计软件/软件模块,还记录有该待统计软件/软件模块的统计类型;以及
对于统计类型为差量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体包括:基础版存放路径信息和目标版存放路径信息;以及
在所述根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量后,还包括:
在之后的统计任务中若获取的另一个统计任务列表中的该待统计软件/软件模块的统计类型为差量统计,则:
根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的基础版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的基础版的文件列表信息;并
根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的目标版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的目标版的文件列表信息;
针对所述目标版的文件列表信息中涉及的每个文件,在所述基础版的文件列表信息中查找与该文件具有相同名称的文件;若没查找到,或者查找到的文件的版本信息与该文件的版本信息不同,则将该文件确定为目标版待统计文件,将查找到的文件确定为对应该目标版待统计文件的基础版待统计文件;
对于每个目标版待统计文件,根据该目标版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该目标版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该目标版待统计文件的有效代码量;并根据对应该目标版待统计文件的基础版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该基础版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该基础版待统计文件的有效代码量;计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值;
根据计算出的差值,以及前次统计任务中统计出的该待统计软件/软件模块的有效代码量,得到当前统计任务的该待统计软件/软件模块的有效代码量。
较佳地,在所述针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息之前,还包括:
确定该待统计软件/软件模块的统计类型为全量统计。
较佳地,在所述获取统计任务列表之前,还包括:
根据预先录入的软件/软件模块的相关信息,选择待统计软件/软件模块;所述软件/软件模块的相关信息包括:软件/软件模块的名称和存放路径信息;
针对每个选择的待统计软件/软件模块,分别设定各待统计软件/软件模块的统计类型;
根据每个选择的待统计软件/软件模块的相关信息和统计类型,生成所述统计任务列表。
较佳地,所述软件/软件模块的相关信息中还包括:所述软件/软件模块的负责人信息;以及
在所述统计出该待统计软件/软件模块的有效代码量后,还包括:
根据该待统计软件/软件模块的相关信息中的负责人信息,统计出该待统计软件/软件模块的负责人的编写代码量;或者
所述软件/软件模块的相关信息中还包括:所述软件/软件模块的开发周期;以及
在所述统计出该待统计软件/软件模块的有效代码量后,还包括:
根据该待统计软件/软件模块的有效代码量、开发周期、负责人信息,统计出该待统计软件/软件模块的负责人的每天编写代码量。
根据本发明的另一个方面,还提供了一种软件有效代码量统计装置,包括:
统计任务执行模块,用于获取统计任务列表后,与软件版本管理工具建立连接;所述统计任务列表中记录有至少一个待统计软件/软件模块的名称和存放路径信息;
所述统计任务执行模块针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;所述文件列表信息中包括该待统计软件/软件模块下的各文件的名称和存放路径信息;以及
对于所述文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
所述统计任务执行模块根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量。
较佳地,所述统计任务列表中对应每个待统计软件/软件模块,还记录有该待统计软件/软件模块的统计类型;以及
对于统计类型为差量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体包括:基础版存放路径信息和目标版存放路径信息;以及
所述统计任务执行模块具体包括:
连接建立单元,用于获取统计任务列表后,与软件版本管理工具建立连接;
文件列表信息获取单元,用于针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据如下方法获取该待统计软件/软件模块的文件列表信息:对于统计类型为全量统计的待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;
文件有效代码量统计单元,用于对于统计类型为全量统计的待统计软件/软件模块,对于该待统计软件/软件模块的文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
软件有效代码量确定单元,用于对于统计类型为全量统计的待统计软件/软件模块,根据所述文件有效代码量统计单元对于该待统计软件/软件模块的文件列表信息中涉及的每个文件所统计的有效代码量,统计出该待统计软件/软件模块的有效代码量。
较佳地,所述文件列表信息获取单元还用于对于统计类型为差量统计的待统计软件/软件模块,根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的基础版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的基础版的文件列表信息;以及
所述文件有效代码量统计单元还用于对于统计类型为差量统计的待统计软件/软件模块,针对该待统计软件/软件模块的目标版的文件列表信息中涉及的每个文件,在该待统计软件/软件模块的基础版的文件列表信息中查找与该文件具有相同名称的文件;若没查找到,或者查找到的文件的版本信息与该文件的版本信息不同,则将该文件确定为目标版待统计文件,将查找到的文件确定为对应该目标版待统计文件的基础版待统计文件;
所述文件有效代码量统计单元还用于对于每个目标版待统计文件,根据该目标版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该目标版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该目标版待统计文件的有效代码量;并根据对应该目标版待统计文件的基础版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该基础版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该基础版待统计文件的有效代码量;计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值;
所述软件有效代码量确定单元还用于对于统计类型为差量统计的待统计软件/软件模块,根据前次统计任务中统计出的该待统计软件/软件模块的有效代码量,以及所述文件有效代码量统计单元计算出的差值,得到当前统计任务的该待统计软件/软件模块的有效代码量。
较佳地,所述软件有效代码量统计装置,还包括:
软件信息录入模块,用于接收用户录入的软件/软件模块的相关信息,所述软件/软件模块的相关信息包括:软件/软件模块的名称和存放路径信息;
统计任务列表生成模块,用于对于用户选择出的待统计软件/软件模块,根据选择出的待统计软件/软件模块的相关信息,以及用户针对每个选择出的待统计软件/软件模块设置的统计类型,生成所述统计任务列表;
调度模块,用于对所述统计任务列表生成模块所生成的统计任务列表进行统计任务的调度:依次获取所述统计任务列表生成模块所生成的统计任务列表发送给所述统计任务执行模块。
较佳地,所述软件有效代码量统计装置,还包括:统计结果存储模块;以及
所述软件有效代码量确定单元还用于将得到的待统计软件/软件模块的有效代码量存储到所述统计结果存储模块中。
本发明的技术方案,由于根据统计任务列表中的待统计的软件/软件模块的名称和存放路径信息,通过调用软件版本管理工具的相关接口命令对待统计的软件/软件模块的每个文件分别进行有效代码量统计后,统计出该待统计的软件/软件模块的有效代码量,避免了将待统计的软件/软件模块复制或下载到指定的文件夹的操作,从而提高了统计软件有效代码量的效率和方便性;而且,根据本发明的统计任务列表可以分别对各软件模块进行有效代码量统计,大大方便了对大型的多模块软件的各模块进行有效代码量统计。
进一步,本发明的技术方案在对待统计软件/软件模块软件的有效代码量进行差量统计时,仅对待统计软件/软件模块中文件版本信息不同的目标版文件和基础版文件进行有效代码量统计,更进一步提高了统计软件有效代码量的效率。
附图说明
图1为本发明实施例的生成统计任务列表的方法流程图;
图2为本发明实施例的一种软件有效代码量统计方法流程图;
图3为本发明实施例的另一种软件有效代码量统计方法流程图;
图4为本发明实施例的软件有效代码量统计装置的内部结构框图;
图5为本发明实施例的统计任务执行模块的内部结构框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明实施例的技术方案中,在进行软件/软件模块的有效代码量统计时,根据统计任务列表中的待统计的软件/软件模块的名称和存放路径信息,通过调用软件版本管理工具的相关接口命令对待统计的软件/软件模块的每个文件分别进行有效代码量统计,避免了将待统计的软件/软件模块复制或下载到指定的文件夹的操作,从而提高了统计软件有效代码量的效率和方便性;而且,根据本发明的统计任务列表可以分别对各软件模块进行有效代码量统计,大大方便了对大型的多模块软件的各模块进行有效代码量统计。
下面结合附图详细说明本发明实施例的技术方案。本发明的软件有效代码量统计装置可以提供一个软件(或软件模块)的相关信息的录入界面;为描述的方便性,本发明中将软件(或软件模块)表达为:软件/软件模块。用户通过该录入界面可以向软件有效代码量统计装置输入各软件/软件模块的相关信息,该相关信息中包括:软件/软件模块的名称及存放路径信息;此外,所述软件/软件模块的相关信息还可包括软件/软件模块的负责人信息和软件/软件模块的开发周期。
在用户需要执行一次统计任务时,先生成该次统计任务的统计任务列表;生成统计任务列表的具体方法流程,如图1所示,包括如下步骤:
S101:软件有效代码量统计装置确定出用户选择的待统计软件/软件模块。
具体地,用户可以在软件有效代码量统计装置的待统计软件选择界面中,从之前录入的软件/软件模块相关信息中,选择出待统计软件/软件模块的名称;从而软件有效代码量统计装置确定出用户选择的待统计软件/软件模块。
S102:作为一种更优的实施方式,本发明的软件有效代码量统计装置还可针对每个选择的待统计软件/软件模块,分别设定各待统计软件/软件模块的统计类型。
具体地,待统计软件/软件模块的统计类型包括:全量统计和差量统计;对于统计类型为差量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体可以包括:基础版存放路径信息和目标版存放路径信息。对于统计类型为全量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体包括:目标版存放路径信息。
S103:软件有效代码量统计装置根据每个选择的待统计软件/软件模块的相关信息,生成统计任务列表。
在本步骤中,根据每个选择的待统计软件/软件模块的相关信息,生成的统计任务列表中记录了至少一个待统计软件/软件模块的名称和存放路径信息;作为一种更优的实施方式,对于设定各待统计软件/软件模块的统计类型的情况,所生成的统计任务列表中对应每个待统计软件/软件模块,还记录有该待统计软件/软件模块的统计类型。
根据上述生成的统计任务列表进行软件有效代码量统计的方法流程,如图2或图3所示;其中,图2是根据没有记录待统计软件/软件模块的统计类型的统计任务列表进行软件有效代码量统计的方法流程图;图3是根据记录有待统计软件/软件模块的统计类型的统计任务列表进行软件有效代码量统计的方法流程图。
图2所示的软件有效代码量统计的方法流程,具体包括如下步骤:
S201:软件有效代码量统计装置获取统计任务列表后,与软件版本管理工具建立连接。
具体地,软件有效代码量统计装置获取上述生成的统计任务列表后,调用软件版本管理工具的建立连接的接口命令(Build接口命令),与软件版本管理工具建立连接。
本步骤的目的是,与软件版本管理工具建立连接后,以备下述步骤调用软件版本管理工具的获取文件列表的接口命令(List接口命令)和读取代码的接口命令(Diff接口命令)。
S202:软件有效代码量统计装置获取待统计软件/软件模块的文件列表信息。
本步骤中,针对所述统计任务列表中涉及的每个待统计软件/软件模块,软件有效代码量统计装置根据该待统计软件/软件模块的名称和存放路径信息,调用软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息。软件有效代码量统计装置获取的待统计软件/软件模块的文件列表信息中包括该待统计软件/软件模块下的各文件的名称和存放路径信息。
S203:软件有效代码量统计装置对于获取到的文件列表信息中涉及的每个文件分别进行有效代码量统计。
具体地,软件有效代码量统计装置对于上述步骤S202获取到的文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量。
S204:软件有效代码量统计装置统计待统计软件/软件模块的有效代码量。
具体地,上述步骤S203中软件有效代码量统计装置得到了所述所述文件列表信息中涉及的每个文件的有效代码量后,软件有效代码量统计装置根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量。
由于软件有效代码量统计装置根据统计任务列表中的待统计的软件/软件模块的名称和存放路径信息,通过调用软件版本管理工具的相关接口命令对待统计的软件/软件模块的每个文件分别进行有效代码量统计,避免了将待统计的软件/软件模块复制或下载到指定的文件夹的操作,从而提高了统计软件有效代码量的效率和方便性;而且,根据本发明的统计任务列表可以分别对各软件模块进行有效代码量统计,大大方便了对大型的多模块软件的各模块进行有效代码量统计。
事实上,对于统计任务列表中记录有待统计软件/软件模块的统计类型的情况,在对某个待统计软件/软件模块进行差量统计之前,必须对该软件/软件模块进行一次全量统计。图3是根据记录有待统计软件/软件模块的统计类型的统计任务列表,进行软件有效代码量统计的方法流程图。
如果软件有效代码量统计装置根据一个统计任务列表执行一个统计任务时,该统计任务列表中的一个待统计软件/软件模块的统计类型为全量统计,在之后执行的另一个统计任务中获取的另一个统计任务列表中的该待统计软件/软件模块的统计类型被修改为差量统计,则对该软件/软件模块进行软件有效代码量统计的方法流程图如图3所示:
S301:软件有效代码量统计装置判断获取的另一个统计任务列表中的该待统计软件/软件模块的统计类型是否为差量统计;若是,则执行如下步骤S302;否则,对该待统计软件/软件模块进行全量统计。
具体地,软件有效代码量统计装置获取所述另一个统计任务列表,与软件版本管理工具建立连接后,若判断出该待统计软件/软件模块的统计类型为差量统计,则执行如下步骤S302;
若判断出该待统计软件/软件模块的统计类型为全量统计或为缺失,则对该待统计软件/软件模块进行全量统计。对该待统计软件/软件模块进行全量统计的方法与上述图2所示的S202-S204的步骤中的方法相同,此处不再赘述。
S302:软件有效代码量统计装置获取该待统计软件/软件模块的基础版和目标版的文件列表信息。
具体地,软件有效代码量统计装置根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的基础版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的基础版的文件列表信息;
软件有效代码量统计装置根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的目标版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的目标版的文件列表信息。
S303:软件有效代码量统计装置确定目标版待统计文件,并确定对应目标版待统计文件的基础版待统计文件。
具体地,软件有效代码量统计装置针对所述目标版的文件列表信息中涉及的每个文件,在所述基础版的文件列表信息中查找与该文件具有相同名称的文件;若没查找到,或者查找到的文件的版本信息与该文件的版本信息不同,则将该文件确定为目标版待统计文件,将查找到的文件确定为对应该目标版待统计文件的基础版待统计文件。
S304:软件有效代码量统计装置对该目标版待统计文件,以及对应该目标版待统计文件的基础版待统计文件的有效代码量进行统计。
具体地,对于每个目标版待统计文件,软件有效代码量统计装置根据该目标版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该目标版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该目标版待统计文件的有效代码量;
软件有效代码量统计装置根据对应该目标版待统计文件的基础版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该基础版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该基础版待统计文件的有效代码量。
由于本发明的技术方案中,仅对待统计软件/软件模块中文件版本信息不同的目标版文件和基础版文件进行有效代码量统计,提高了统计软件有效代码量的效率。
S305:软件有效代码量统计装置计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值。
具体地,软件有效代码量统计装置根据上述步骤S304统计出的该目标版待统计文件与对应该目标版待统计文件的基础版待统计文件的有效代码量,计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值。
S306:软件有效代码量统计装置统计当前统计任务的该待统计软件/软件模块的有效代码量。
具体地,软件有效代码量统计装置根据上述步骤S305计算出的差值,以及前次统计任务中统计出的该待统计软件/软件模块的有效代码量,得到当前统计任务的该待统计软件/软件模块的有效代码量。
进一步,依据上述图2或图3所示的方法,在统计出该待统计软件/软件模块的有效代码量后,还可以根据该待统计软件/软件模块的相关信息中的负责人信息,统计出该待统计软件/软件模块的负责人的编写代码量;
进一步,还可以根据该待统计软件/软件模块的有效代码量、开发周期、负责人信息,统计出该待统计软件/软件模块的负责人的每天编写代码量。
本发明提供的软件有效代码量统计装置的内部结构框图,如图4所示,包括:统计任务执行模块404。
统计任务执行模块404用于获取调度模块403发送的统计任务列表后,与软件版本管理工具建立连接;所述统计任务列表中记录有至少一个待统计软件/软件模块的名称和存放路径信息;进一步,所述统计任务列表中对应每个待统计软件/软件模块,还记录有该待统计软件/软件模块的统计类型;而且,对于统计类型为差量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体包括:基础版存放路径信息和目标版存放路径信息。
统计任务执行模块404还用于针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;所述文件列表信息中包括该待统计软件/软件模块下的各文件的名称和存放路径信息;
统计任务执行模块404还用于对于所述文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
统计任务执行模块404还用于根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量。
进一步,本发明提供的软件有效代码量统计装置(如图4所示),还可以包括:软件信息录入模块401,统计任务列表生成模块402,调度模块403和统计结果存储模块405。
软件信息录入模块401用于接收用户录入的软件/软件模块的相关信息,所述软件/软件模块的相关信息包括:软件/软件模块的名称和存放路径信息。
统计任务列表生成模块402用于对于用户选择出的待统计软件/软件模块,根据选择出的待统计软件/软件模块的相关信息,以及用户针对每个选择出的待统计软件/软件模块设置的统计类型,生成所述统计任务列表。
调度模块403用于对统计任务列表生成模块402所生成的统计任务列表进行统计任务的调度:依次获取所述统计任务列表生成模块所生成的统计任务列表发送给统计任务执行模块404。
统计结果存储模块405用于存储统计任务执行模块404统计出的待统计软件/软件模块的有效代码量。
上述软件有效代码量统计装置中的统计任务执行模块404的内部结构框图,如图5所示,具体包括:连接建立单元501、文件列表信息获取单元502、文件有效代码量统计单元503和软件有效代码量确定单元504。
连接建立单元501用于获取统计任务列表后,与软件版本管理工具建立连接。
文件列表信息获取单元502用于针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据如下方法获取该待统计软件/软件模块的文件列表信息:对于统计类型为全量统计的待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息。
文件有效代码量统计单元503用于对于统计类型为全量统计的待统计软件/软件模块,对于该待统计软件/软件模块的文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量。
软件有效代码量确定单元504用于对于统计类型为全量统计的待统计软件/软件模块,根据文件有效代码量统计单元503对于该待统计软件/软件模块的文件列表信息中涉及的每个文件所统计的有效代码量,统计出该待统计软件/软件模块的有效代码量。
进一步,文件列表信息获取单元502还用于对于统计类型为差量统计的待统计软件/软件模块,根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的基础版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的基础版的文件列表信息;以及
文件有效代码量统计单元503还用于对于统计类型为差量统计的待统计软件/软件模块,针对该待统计软件/软件模块的目标版的文件列表信息中涉及的每个文件,在该待统计软件/软件模块的基础版的文件列表信息中查找与该文件具有相同名称的文件;若没查找到,或者查找到的文件的版本信息与该文件的版本信息不同,则将该文件确定为目标版待统计文件,将查找到的文件确定为对应该目标版待统计文件的基础版待统计文件;
文件有效代码量统计单元503还用于对于每个目标版待统计文件,根据该目标版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该目标版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该目标版待统计文件的有效代码量;并根据对应该目标版待统计文件的基础版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该基础版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该基础版待统计文件的有效代码量;计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值;
软件有效代码量确定单元504还用于对于统计类型为差量统计的待统计软件/软件模块,根据前次统计任务中统计出的该待统计软件/软件模块的有效代码量,以及文件有效代码量统计单元503计算出的差值,得到当前统计任务的该待统计软件/软件模块的有效代码量。
软件有效代码量确定单元504还用于将得到的待统计软件/软件模块的有效代码量存储到统计结果存储模块405中。
本发明实施例的技术方案中,根据统计任务列表中的待统计的软件/软件模块的名称和存放路径信息,通过调用软件版本管理工具的相关接口命令对待统计的软件/软件模块的每个文件分别进行有效代码量统计后,统计出该待统计的软件/软件模块的有效代码量,避免了将待统计的软件/软件模块复制或下载到指定的文件夹的操作,从而提高了统计软件有效代码量的效率和方便性;而且,根据本发明的统计任务列表可以分别对各软件模块进行有效代码量统计,大大方便了对大型的多模块软件的各模块进行有效代码量统计。
进一步,本发明的技术方案在对待统计软件/软件模块软件的有效代码量进行差量统计时,仅对待统计软件/软件模块中文件版本信息不同的目标版文件和基础版文件进行有效代码量统计,更进一步提高了统计软件有效代码量的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种软件有效代码量统计方法,其特征在于,包括:
获取统计任务列表后,与软件版本管理工具建立连接;所述统计任务列表中记录有至少一个待统计软件/软件模块的名称和存放路径信息;
针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;所述文件列表信息中包括该待统计软件/软件模块下的各文件的名称和存放路径信息;以及
对于所述文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量。
2.如权利要求1所述的方法,其特征在于,所述统计任务列表中对应每个待统计软件/软件模块,还记录有该待统计软件/软件模块的统计类型;以及
对于统计类型为差量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体包括:基础版存放路径信息和目标版存放路径信息;以及
在所述根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量后,还包括:
在之后的统计任务中若获取的另一个统计任务列表中的该待统计软件/软件模块的统计类型为差量统计,则:
根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的基础版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的基础版的文件列表信息;并
根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的目标版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的目标版的文件列表信息;
针对所述目标版的文件列表信息中涉及的每个文件,在所述基础版的文件列表信息中查找与该文件具有相同名称的文件;若没查找到,或者查找到的文件的版本信息与该文件的版本信息不同,则将该文件确定为目标版待统计文件,将查找到的文件确定为对应该目标版待统计文件的基础版待统计文件;
对于每个目标版待统计文件,根据该目标版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该目标版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该目标版待统计文件的有效代码量;并根据对应该目标版待统计文件的基础版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该基础版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该基础版待统计文件的有效代码量;计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值;
根据计算出的差值,以及前次统计任务中统计出的该待统计软件/软件模块的有效代码量,得到当前统计任务的该待统计软件/软件模块的有效代码量。
3.如权利要求2所述的方法,其特征在于,在所述针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息之前,还包括:
确定该待统计软件/软件模块的统计类型为全量统计。
4.如权利要求3所述的方法,其特征在于,在所述获取统计任务列表之前,还包括:
根据预先录入的软件/软件模块的相关信息,选择待统计软件/软件模块;所述软件/软件模块的相关信息包括:软件/软件模块的名称和存放路径信息;
针对每个选择的待统计软件/软件模块,分别设定各待统计软件/软件模块的统计类型;
根据每个选择的待统计软件/软件模块的相关信息和统计类型,生成所述统计任务列表。
5.如权利要求4所述的方法,其特征在于,所述软件/软件模块的相关信息中还包括:所述软件/软件模块的负责人信息;以及
在所述统计出该待统计软件/软件模块的有效代码量后,还包括:
根据该待统计软件/软件模块的相关信息中的负责人信息,统计出该待统计软件/软件模块的负责人的编写代码量;或者
所述软件/软件模块的相关信息中还包括:所述软件/软件模块的开发周期;以及
在所述统计出该待统计软件/软件模块的有效代码量后,还包括:
根据该待统计软件/软件模块的有效代码量、开发周期、负责人信息,统计出该待统计软件/软件模块的负责人的每天编写代码量。
6.一种软件有效代码量统计装置,包括:
统计任务执行模块,用于获取统计任务列表后,与软件版本管理工具建立连接;所述统计任务列表中记录有至少一个待统计软件/软件模块的名称和存放路径信息;
所述统计任务执行模块针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;所述文件列表信息中包括该待统计软件/软件模块下的各文件的名称和存放路径信息;以及
对于所述文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
所述统计任务执行模块根据所述文件列表信息中涉及的每个文件的有效代码量,统计出该待统计软件/软件模块的有效代码量。
7.如权利要求6所述的装置,其特征在于,所述统计任务列表中对应每个待统计软件/软件模块,还记录有该待统计软件/软件模块的统计类型;以及
对于统计类型为差量统计的待统计软件/软件模块,该待统计软件/软件模块的存放路径信息中具体包括:基础版存放路径信息和目标版存放路径信息;以及
所述统计任务执行模块具体包括:
连接建立单元,用于获取统计任务列表后,与软件版本管理工具建立连接;
文件列表信息获取单元,用于针对所述统计任务列表中涉及的每个待统计软件/软件模块,根据如下方法获取该待统计软件/软件模块的文件列表信息:对于统计类型为全量统计的待统计软件/软件模块,根据该待统计软件/软件模块的名称和存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的文件列表信息;
文件有效代码量统计单元,用于对于统计类型为全量统计的待统计软件/软件模块,对于该待统计软件/软件模块的文件列表信息中涉及的每个文件,根据该文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该文件的有效代码量;
软件有效代码量确定单元,用于对于统计类型为全量统计的待统计软件/软件模块,根据所述文件有效代码量统计单元对于该待统计软件/软件模块的文件列表信息中涉及的每个文件所统计的有效代码量,统计出该待统计软件/软件模块的有效代码量。
8.如权利要求7所述的装置,其特征在于,
所述文件列表信息获取单元还用于对于统计类型为差量统计的待统计软件/软件模块,根据该待统计软件/软件模块的名称,以及该待统计软件/软件模块的存放路径信息中的基础版存放路径信息,调用所述软件版本管理工具的获取文件列表的接口命令,以获取该待统计软件/软件模块的基础版的文件列表信息;以及
所述文件有效代码量统计单元还用于对于统计类型为差量统计的待统计软件/软件模块,针对该待统计软件/软件模块的目标版的文件列表信息中涉及的每个文件,在该待统计软件/软件模块的基础版的文件列表信息中查找与该文件具有相同名称的文件;若没查找到,或者查找到的文件的版本信息与该文件的版本信息不同,则将该文件确定为目标版待统计文件,将查找到的文件确定为对应该目标版待统计文件的基础版待统计文件;
所述文件有效代码量统计单元还用于对于每个目标版待统计文件,根据该目标版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该目标版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该目标版待统计文件的有效代码量;并根据对应该目标版待统计文件的基础版待统计文件的名称和存放路径信息,调用所述软件版本管理工具的读取代码的接口命令,将该基础版待统计文件的代码读取到本地缓存后,对缓存中的代码进行有效代码量统计,得到该基础版待统计文件的有效代码量;计算该目标版待统计文件与对应的基础版待统计文件之间的有效代码量差值;
所述软件有效代码量确定单元还用于对于统计类型为差量统计的待统计软件/软件模块,根据前次统计任务中统计出的该待统计软件/软件模块的有效代码量,以及所述文件有效代码量统计单元计算出的差值,得到当前统计任务的该待统计软件/软件模块的有效代码量。
9.如权利要求8所述的装置,其特征在于,还包括:
软件信息录入模块,用于接收用户录入的软件/软件模块的相关信息,所述软件/软件模块的相关信息包括:软件/软件模块的名称和存放路径信息;
统计任务列表生成模块,用于对于用户选择出的待统计软件/软件模块,根据选择出的待统计软件/软件模块的相关信息,以及用户针对每个选择出的待统计软件/软件模块设置的统计类型,生成所述统计任务列表;
调度模块,用于对所述统计任务列表生成模块所生成的统计任务列表进行统计任务的调度:依次获取所述统计任务列表生成模块所生成的统计任务列表发送给所述统计任务执行模块。
10.如权利要求6-9任一所述的装置,其特征在于,还包括:统计结果存储模块;以及
所述软件有效代码量确定单元还用于将得到的待统计软件/软件模块的有效代码量存储到所述统计结果存储模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310153322.5A CN103246575B (zh) | 2013-04-27 | 2013-04-27 | 软件有效代码量统计方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310153322.5A CN103246575B (zh) | 2013-04-27 | 2013-04-27 | 软件有效代码量统计方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246575A true CN103246575A (zh) | 2013-08-14 |
CN103246575B CN103246575B (zh) | 2016-01-13 |
Family
ID=48926106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310153322.5A Active CN103246575B (zh) | 2013-04-27 | 2013-04-27 | 软件有效代码量统计方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246575B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750469A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 源代码统计分析方法和系统 |
CN109597642A (zh) * | 2017-09-30 | 2019-04-09 | 车伯乐(北京)信息科技有限公司 | 一种代码统计方法、装置、服务器、设备及可读介质 |
CN110704094A (zh) * | 2019-09-19 | 2020-01-17 | 上海易点时空网络有限公司 | 代码统计方法以及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582072A (zh) * | 2008-05-16 | 2009-11-18 | 鸿富锦精密工业(深圳)有限公司 | 代码统计系统及方法 |
CN102722436A (zh) * | 2012-05-29 | 2012-10-10 | 百度在线网络技术(北京)有限公司 | 一种增量覆盖信息的统计方法和装置 |
-
2013
- 2013-04-27 CN CN201310153322.5A patent/CN103246575B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582072A (zh) * | 2008-05-16 | 2009-11-18 | 鸿富锦精密工业(深圳)有限公司 | 代码统计系统及方法 |
CN102722436A (zh) * | 2012-05-29 | 2012-10-10 | 百度在线网络技术(北京)有限公司 | 一种增量覆盖信息的统计方法和装置 |
Non-Patent Citations (2)
Title |
---|
XYANG0917: "Java正则表达式(三)、代码统计工具(统计java源文件中注释、代码、空白行)", 《HTTP://BLOG.CSDN.NET/XYANG81/ARTICLE/DETAILS/7714994》 * |
戴楠等: "用SVN实现软件的版本控制", 《电脑知识与技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750469A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 源代码统计分析方法和系统 |
CN104750469B (zh) * | 2013-12-30 | 2018-01-02 | 中国银联股份有限公司 | 源代码统计分析方法和系统 |
CN109597642A (zh) * | 2017-09-30 | 2019-04-09 | 车伯乐(北京)信息科技有限公司 | 一种代码统计方法、装置、服务器、设备及可读介质 |
CN110704094A (zh) * | 2019-09-19 | 2020-01-17 | 上海易点时空网络有限公司 | 代码统计方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103246575B (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810051B1 (en) | Autoscaling using file access or cache usage for cluster machines | |
CN101278265B (zh) | 用于收集剖析信息的方法和用于优化代码段的系统 | |
US8606905B1 (en) | Automated determination of system scalability and scalability constraint factors | |
Harrold et al. | Reuse-driven interprocedural slicing | |
CA2657878A1 (en) | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs | |
CN108984652A (zh) | 一种可配置数据清洗系统和方法 | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
JP2016100006A (ja) | パフォーマンス試験のためのベンチマーク・アプリケーションを生成する方法および装置 | |
CN110347407A (zh) | 一种获取内存占用量的方法、装置、计算机设备及介质 | |
CN103246575A (zh) | 软件有效代码量统计方法和装置 | |
CN110532559B (zh) | 规则的处理方法及装置 | |
US10089088B2 (en) | Computer that performs compiling, compiler program, and link program | |
CN107368351B (zh) | 一种虚拟机配置自动升级扩容方法和装置 | |
US9348566B1 (en) | Continuous profiling for automatic feedback directed optimization | |
CN110502486B (zh) | 日志处理方法、装置、电子设备和计算机可读存储介质 | |
CN104461832A (zh) | 一种监控应用服务器资源的方法及装置 | |
CN106202374A (zh) | 一种数据处理方法及装置 | |
CN103902445A (zh) | 一种回归测试对象确定方法及装置 | |
CN107908697B (zh) | 主机批处理作业结果的自动采集方法及装置 | |
CN113448867B (zh) | 一种软件压力测试方法及装置 | |
US10496524B2 (en) | Separating test coverage in software processes using shared memory | |
CN113296788B (zh) | 指令调度方法、装置、设备及存储介质 | |
CN114169985A (zh) | 一种资产减值阶段确定方法及装置 | |
CN105302604B (zh) | 应用程序的版本更新方法及装置 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170213 Address after: 266100 Shandong Province, Qingdao city Laoshan District Songling Road No. 399 Patentee after: Poly Polytron Technologies Inc Address before: 266061 Laoshan, Qingdao province Hongkong District No. East Road, room 248, room 131 Patentee before: Qingdao Hisense Media Networks Co., Ltd. |