一种Qone数据库生产率数据自动生成方法

文档序号:6356479阅读:314来源:国知局
专利名称:一种Qone数据库生产率数据自动生成方法
技术领域
本发明属于计算机软件工程领域,涉及一种代码版本控制方法,特别涉及一种 Qone数据库生产率数据自动生成方法。
背景技术
软件过程管理平台(以下简称Qone)基于全面质量管理理念,符合IS09000/CMM/ CMMI/GJB5000/GJB5000A要求,是一个能够全面、有效管理研发的协同工作平台。Qone围绕 软件组织的基本盈利单位——软件项目进行管理,确保软件项目依据软件开发组织自行定 义的开发流程的要求制定项目计划、调配资源、实施项目监督。通过对开发过程的量化度 量与控制,尽早发现和解决项目中存在的问题,规避项目风险。有效提高软件开发的“可视 性”、“可控性”、项目成功率和软件产品的质量,同时降低管理成本,提高管理效率。软件过程管理平台包括需求管理、项目管理、过程管理、过程与产品度量分析和软 件质量管理五个部分。依据PDCA循环的基本要求和CMM/CMMI/GJB5000分级模型的指导, 对企业的各种核心活动进行组合,Qone依据CMM/CMMI分级模型的指导,对企业的各种核心 活动进行组合,形成不同的产品级别满足企业从低成熟度到高成熟度的运作,可以有效的 协助软件开发组织实施过程改进。Qone主要围绕开发周期的活动对开发和生产的过程进行管理,将软件组织的过程 融入项目的日常开发中。1. Qone将所有过程活动对应到PDCA(如图1所示)组织软件过程的服务流程。PDCA是CMM/CMMI/IS09000/IS015504的理论基础,PDCA环的不断实施和运行,确
保软件质量管理过程得到持续的改进。P 策划(Plan)策划质量方针、目标和过程策划,识别和定义质量过程D 实施(Do)展开质量过程执行质量计划。C:检查(Check)检查执行结果,评价实施效果A 处理(Act)分析结果2.软件开发的决定性因素包括人员素质、开发技术、过程质量。软件过程管理平 台通过加强对过程的管理,降低人员流动和技术能力对产品质量的产生的负面影响。过程能力成熟度模型CMMI是软件过程领域中一个重要的参考模型,CMMI强调可 度量是持续软件过程改进的一个必要条件。这种可度量包括生产率数据的可度量,Qone作 为一款软件过程管理平台工具,理应实现对项目生产率数据的定量处理和分析。但在Qone 的实际使用过程中,由于在各个项目管理上以及对Qone使用上的原因,Qone中关于生产率 的数据缺失严重,对项目的管理,项目成员的评估,项目进度的评估以及过程监控和持续改 进造成不良的影响。

发明内容
本发明的目的在于提供一种Qone数据库生产率数据自动生成方法,针对Qone (软
4件过程管理平台)项目管理数据和SVN版本控制数据的特点实现生产率数据的自动修复。本发明的技术方案为一种Qone数据库生产率数据自动生成方法,其步骤为1)数据提取模块从Qone数据库中提取软件项目数据,建立人力资源-任务数据 集;所述软件项目数据包括人力资源名称、人力资源所属任务的任务名称、任务类型、工 作量、开始时间、结束时间;2)数据提取模块从SVN代码库中提取软件项目的代码提交数据,建立人力资 源-提交数据集;所述代码提交数据包括人力资源名称、人力资源所属提交的提交日期、 提交文件、动作类型、影响行数;3)映射模块根据人力资源名称对人力资源-任务数据集和人力资源-提交数据集 进行映射操作,建立任务-人力资源-提交数据集,得到每个人力资源的任务数据和提交数 据;4)映射模块根据任务-人力资源-提交数据集中任务的实际执行时间与提交文件 的提交时间确定任务与提交之间状态;5)映射模块根据任务数据和提交数据建立网状关系结构图(V,E);然后每次选取 网状结构图(V,E)中强度最大的边及其相应的两个顶点进行状态合并,直到网状关系结构 图(V,E)中E为空为止,确定每个提交文件所对应的任务,生成任务-提交数据集;其中,V 是图的顶点集合,即提交文件的集合,E是边的集合,即提交文件间联系的强弱程度;6)生产率数据生成模块根据任务-提交数据集中每个任务上提交的数据,生成每 个任务的生产率数据。进一步的,建立所述人力资源-任务数据集的方法为1)从Qone数据库中提取每一人力资源,包括人力资源的id和姓名;2)对于每个人力资源,提取其所有所属的叶子任务,包括任务名称、任务类型、工 作量、开始时间、结束时间;3)移除每个人力资源所属叶子任务中处于未分配和已取消状态的任务;4)利用任务类型,移除每个人力资源所属叶子任务中制品不包含代码的任务,得 到所述人力资源-任务数据集。进一步的,建立所述人力资源-提交数据集的方法为采用MatSVN工具从从SVN 代码库中提取SVN Log数据,然后利用XML解析方法对提取SVN Log数据进行解析,得到 SVN中每个人力资源的提交数据,建立所述人力资源-提交数据集。进一步的,建立所述任务-人力资源-提交数据集的方法为1)将所述人力资源-任务数据集中人力资源的中文名称转化为对应拼音并提取 首字母缩写;2)在所述人力资源-提交数据集中查找与所述人力资源-任务数据集中拥有相同 首字母缩写的的人力资源;3)根据查找结果建立起属于同一人力资源的任务数据和提交数据,得到所述任 务-人力资源-提交数据集。进一步的,生成所述任务与提交之间状态包括状态0、状态1、状态2 ;其中,状态 0为提交文件不属于任何一个任务,状态1为提交文件属于其中唯一的一个任务,状态2为提交文件属于多个任务;进一步的,所述每次选取网状结构图(V,E)中强度最大的边及其相应的两个顶点 进行状态合并的方法为1)如果两个顶点都处于状态0,则合并这两个顶点,并且合并后的顶点状态仍然 为状态0 ;2)如果其中一个顶点处于状态0,另一个处于状态1,则合并这两个顶点,并且合 并后的顶点状态为状态1 ;3)如果两个顶点都处于状态1,并且它们都属于同一个任务,则合并这两个顶点, 并且合并后的顶点状态仍然为状态1 ;4)如果其中一个顶点处于状态0,另一个处于状态2,则移除它们之间的边;5)如果其中一个顶点处于状态1,另一个处于状态2,并且它们之间无时间冲突, 则合并这两个顶点,并且合并后的顶点状态为状态1 ;6)如果两个顶点都处于状态2,并且它们之间无时间冲突,则合并这两个顶点,并 根据任务的实际执行时间与提交文件的提交时间来确定合并后顶点的状态。进一步的,利用遍历方法来建立每两个顶点之间的边;采用链表结构存储所建立 的边。进一步的,根据提交文件共同出现的频率和时间信息来共同确定所述提交文件间 联系的强弱程度。进一步的,如果所述任务-提交数据集中仍然有提交文件不属于任何一个任务 时,则将该提交文件分配给执行时间离它提交时间最近的任务。进一步的,对于所述任务-提交数据集中提交文件属于多个任务的提交文件,则 采用平均的方法将该提交文件分布到各个相关的任务上。本发明的主要内容包括1)数据提取模块从软件项目管理系统中提取软件项目数据,建立人力资源-任务 数据集。数据的格式定义为 HR-Tasks = {hr,Itask1, task2, . . .,taskj},其中 HR-Tasks 表示提取的数据集,hr表示人力资源,taski表示人力资源所属的任务。每个任务的数据格 式定义为 Itaski = {ID" namei typei workload^ StartDatei, endDateJ,其中各项依次表 示任务标识、名称、类型、工作量、开始时间和结束时间;2)数据提取模块从SVN代码库中提取软件项目的代码提交数据,建立人力 资源-提交数据集。数据格式的定义为HR-Commits = {hr, Icommit1, commit2,..., commitj},其中HR-Commits表示提取的数据集,hr表示人力资源,commit」表示人力资 源所属的提交。每个提交的数据格式定义为=Commitj = {date」,author」,IocChangej, revision」,Iafileljj, afile2jJ, ... , af ilq,」}},其中各项依次表示提交日期、提交者、影响 行数、版本和提交文件。每个提交文件的数据格式定义为afilek,j= {action,, J5Pathk,,., IocAddkij, locRemovey},其中各项依次表示提交动作类型、文件路径、增加代码行数和删 除代码行数;3)映射模块进行人力资源间的映射操作。根据提取的两组数据集,针对它们进 行人力资源的映射操作,操作完成后得到结果为“任务-人力资源-提交”格式的数据集, 数据集的格式定义为Tasks-HR-Commits = {hr, Itask1, task2,...,taskn},{commit”Commit2, ...,Commit1J },其中各项表示意义同前述步骤;4)映射模块进行任务-提交间的映射操作。根据上一步骤得到的数据集,针 对它们进行任务-提交的映射操作,操作完成后得到结果为任务-提交格式的数据集, 数据集的格式定义为Tasks-HR-Commit s = {hr, Itask-Commit1, task_commit2,..., task-commitj },其中hr表示人力资源,task-commiti表示任务-提交映射关系。任务-提 交映射关系的数据格式定义为Aask-Commiti = {task」,af,其中各项表示意义同前 述步骤;5)生产率数据生成模块根据得到的任务-提交格式的数据集,在每个任务上提交 的数据均已确定,即可运用统计的方法统计出各个任务的生产率数据。所述方法为从软件项目管理系统中提取软件项目数据,其数据的预处理过程需遵 循如下步骤a)从Qone中提取所有的人力资源,包括人员的id和姓名等;b)对于每个人力资源,提取其所有所属的叶子任务,包括任务名称,任务描述,任 务成员,开始时间,结束时间,任务类型等;c)对于每个人力资源,移除其处于未分配和已取消状态的任务;d)对于每个人力资源,移除其制品不包含代码的任务。所述提交文件是区别于普通文件的一个专有名词,其定义为某次提交中携带提交 相关信息的文件。一个普通文件可能对应多个提交文件,但一个提交文件只能属于某一个 特定的普通文件。一个提交文件可以通过如下公式表示,其意义为一个普通文件Hlei在 提交commit」中被提交,其中i标识一个普通的文件filei; j标识一个提交Commitj afIleij j = affected(fIlei, Commitj)所述方法需要进行人力资源间的映射操作。如果发现两个映射中的人力资源是指 向同一个实际存在的人,则可以在这两个人力资源之间建立起一一对应的关系。这种关系 的假设是基于如下的发现a) Qone中的绝大部分帐户都有对应人力资源的中文名称;b)SVN中的用户名都是其中文名称首字母的缩写;基于上述发现,即可建立起两组人力资源之间的一一对应关系。对于提取的两组 人力资源数据,一部分包含用户中文名称,一部分包含用户中文名称首字母缩写,因而,建 立起一一对应关系的步骤如下a)对Qone中的人力资源,提取其中文用户名,将其转化为对应拼音并最终提取首 字母的缩写;b)对SVN中的人力资源,提取其用户名称,并在Qone中寻找拥有相同首字母缩写 的的人力资源;c)如果寻找的结果是唯一的,则建立起一一对应关系;否则需要寻求项目经理的 帮助来确定最终的映射关系。所述方法需要进行任务-提交间的映射操作。建立起属于同一人力资源的任务和 提交两个数据集之间的映射关系。对于任务和提交之间的关系,可以定义出如下3中状态a)状态0,提交文件不属于任何一个任务;b)状态1,提交文件属于其中唯一的一个任务;
c)状态2,提交文件属于多个任务。这些状态是通过任务的实际执行时间和提交的提交时间来共同确定的。如果一个 提交的提交时间不落入到任何一个任务的实际执行时间段内,则它们之间的关系处于状态 0;如果一个提交的提交时间只落入在一个任务的实际执行时间段内,则它们之间的关系处 于状态1 ;如果一个提交的提交时间落入到多个任务的实际执行时间段内,则它们之间的 关系处于状态2。其中“落入”的定义为提交的提交时间晚于任务的实际开始时间,但早于 任务的实际结束时间。进行映射操作的关键在于将状态0和状态2向状态1转化。所述方法将状态0和状态2向状态1转化,是基于一个假设条件如果两个文件频 繁的在提交中同时出现,则这两个文件的提交文件可能属于同一个提交。基于这个假设,可 以根据任务-人力资源-提交数据集中的任务数据和提交数据建立起网状结构图(V,E), 并且由于在本方法中的图中“边”一般较为稀疏,适合用链表结构进行存储,并且可利用遍 历的方法来建立每两个顶点之间的边。其中图(V,E)中的V是图的顶点集合,即是提交文 件的集合;E是边的集合,即是提交文件间联系的强弱程度。这种联系的强弱程度是通过提 交文件共同出现的频率和时间信息来共同确定的,计算其强弱的公式如下weightiafiL·, h afilem, ) = ^ a* bttmeDlffl^k
exist (afilei,k,afilem,k)其中i和m分别标识两个普通文件,j,η, k分别标识三个不同的提交commit」, Commitn 禾口 commitk, tImeDiffjj n> k 是提交 Commitj, Commitn 禾口 Commitk 提交时间的最大差 值,a是权重的相关系数,b是时间的衰减因子,Bfileijj表示一个提交文件,exist (afile,, k,afiIemjk)表示提交文件afilei,k和afilem,k均实际存在。在建立好一张网状结构图以后,可以遵循如下步骤来实现状态的转换。每次选取 权重最大的那条边以及其相应的两个顶点,对它们进行如下操作,直到图中的所有边均处
理完毕。a)如果两个顶点都处于状态0,则合并这两个顶点,并且合并后的顶点状态仍然 为状态O ;b)如果其中一个顶点处于状态0,另一个处于状态1,则合并这两个顶点,并且合 并后的顶点状态为状态1 ;c)如果两个顶点都处于状态1,并且它们都属于同一个任务,则合并这两个顶点, 并且合并后的顶点状态仍然为状态1 ;d)如果其中一个顶点处于状态0,另一个处于状态2,则移除它们之间的边;e)如果其中一个顶点处于状态1,另一个处于状态2,并且它们之间无时间冲突, 则合并这两个顶点,并且合并后的顶点状态为状态1 ;f)如果两个顶点都处于状态2,并且它们之间无时间冲突,则合并这两个顶点,并 根据前文给出的确定状态的方法来确定合并后顶点的状态。如果处理完毕后,仍然后顶点的状态处于状态0,则将它分配给实际结束时间离它 提交时间最近的一个任务,并将其状态置为状态1,因而当该过程完成后,所有提交文件的 状态均为状态1或者状态2。所述方法进行生产率数据的统计,在于根据确定的任务和提交之间的映射关系, 统计出生产率数据,此时所有的提交文件均处于状态1或者状态2,对于处于状态2的提交
8文件,其数据可以采用平均的方法分布到各个相关的任务。与现有技术相比,本发明的积极效果随着软件应用愈来愈广泛和复杂,对软件可信性的要求也越来越高。由于软件的 可信程度依赖于软件的开发过程,因而可信过程是进行可信软件开发的必需条件。而生产 率是软件可信过程的一个重要要素,通过自动修复缺失的生产率数据,能够帮助对过程的 能力进行评估,支撑未来实际软件项目的开发,因而能够增强软件的可信程度。而且历史项 目数据和SVN代码库是在软件组织实际项目开发过程中积累的真实数据,本法通过数据分 析和挖掘的方法,从中修复缺失的生产率数据,具有更高的准确性和客观性。


图1. PDCA要素及其相互关系框图;图2.缺失生产率修复方法总体流程图。
具体实施例方式下面结合附图,对从Qone软件项目数据和SVN Log数据修复缺失生产率的过程作 进一步的说明,但不构成对本发明的限制,从Qone软件项目数据和SVN Log数据修复缺失 生产率的总体流程图如图2所示。(一 )数据预处理数据提取模块分别从Qone和SVN中提取数据1、从Qone中提取数据。从Qone中提取数据需要用到Qone的数据库,当建立好和 Qone数据库的连接之后,执行如下步骤从Qone数据库中提取数据,得到“人力资源-任务” 的数据集。a)从Qone中提取所有的人力资源,包括人员的id和姓名等;b)对于每个人力资源,提取其所有所属的叶子任务,包括任务名称,任务描述,任 务成员,开始时间,结束时间,任务类型等;c)对于每个人力资源,移除其处于未分配和已取消状态的任务(由于处于未分配 和已取消状态的任务虽然没有被该人力资源执行,但它仍然保留了和人力资源之间的关联 关系,因此进行移除优化处理);d)对于每个人力资源,移除其制品不包含代码的任务。2、从SVN库中提取SVN Log数据。提取SVN Log数据需要用到StatSVN工具,安 装好MatSVN工具之后,运行如下命令java statsvn. jar[log path][working copy path]-output-dir[output path]-xml即可从SVN库中导出SVN Log数据。利用XML解析技术对SVNLog数据进行解析 处理,即可得到SVN中每个人力资源的提交数据,为“人力资源-提交”的数据集。( 二)映射模块进行人力资源的映射当两组数据分别提取完成之后,在两组数据之间建立人力资源的映射关系。建立 映射关系的步骤如下a)对Qone中的人力资源,提取其中文用户名,将其转化为对应拼音并最终提取首 字母的缩写,例如用户A的中文名称为“张三”,则其首字母的缩写为“ZHS”;
b)对SVN中的人力资源,提取其用户名称,并在Qone中寻找拥有相同首字母缩写 的的人力资源,例如SVN中某人力资源的用户名为“ZHS”,则可以寻找到Qone中相应的用 户“张三”;c)如果寻找的结果是唯一的,则建立起一一对应关系;否则需要寻求项目经理的 帮助来确定最终的映射关系,例如如果通过“S1S”只找到了“张三”唯一一个人力资源,则 可以简历其一一对应关系;否则如果还存在“张四”也对应到“ZHS”,则需要借助于项目经 理来进一步判断其对应关系。根据映射的结果和在步骤(一)中提取的数据“人力资源-任务”的数据集和“人 力资源-提交”的数据集,即可得到“任务-人力资源-提交”数据集。(三)映射模块进行任务-提交的映射第一步、在步骤(二)中,“任务-人力资源-提交”数据集已经被提取,因而每个 人力资源的任务数据和提交数据均已确定。在进行映射操作之前,需要利用前文提到的方 法根据任务数据和提交数据的时间信息确定每个提交文件所处的状态a)如果一个提交的提交时间不落入到任何一个任务的实际执行时间段内,则它们 之间的关系处于状态0;b)如果一个提交的提交时间只落入在一个任务的实际执行时间段内,则它们之间 的关系处于状态1 ;c)如果一个提交的提交时间落入到多个任务的实际执行时间段内,则它们之间的 关系处于状态2。第二步、建立提交文件之间的网状关系结构对于每一个人力资源,利用提取的任务数据和提交数据建立网状关系结构。其中 提交数据构成顶点,任务和提交之间的关系确定了顶点的状态(如状态0、1、2)。网状结构 图用(V,E)表示,其中V是图的顶点集合,即是提交文件的集合;E是边的集合,即是提交文 件间联系的强弱程度。每条边的强度可以通过如下的公式进行计算Weightiafilel, h afilem, ) = ^ α * btimeDlfJh",k
exist (afilei,k,afilem,k)其中i和m分别标识两个普通文件,j, η, k分别标识三个不同的提交commit」, Commitn 禾口 commitk, tImeDiffjj n> k 是提交 Commitj, Commitn 禾口 Commitk 提交时间的最大差 值,a是权重的相关系数,b是时间的衰减因子,Bfileijj表示一个提交文件,exist (afile,, k,afiIemjk)表示提交文件afilei,k和afilem,k均实际存在。第三步、进行映射操作在前一步建立好的网状结构图上,每次选取权重最大的那条边e以及其相应的两 个顶点vl和v2,对它们进行如下操作a)如果vl和v2都处于状态0,则合并vl和v2,并且合并后的顶点状态仍然为状 态0 ;b)如果其中vl处于状态0,v2处于状态1,或者相反,则合并vl和v2,并且合并 后的顶点状态为状态1 ;c)如果vl和v2都处于状态1,并且它们都属于同一个任务,则合并vl和v2,并且 合并后的顶点状态仍然为状态1 ;
d)如果其中vl处于状态0,v2处于状态2,或者相反,则移除它们之间的边e ;e)如果其中vl处于状态1,v2处于状态2,或者相反,并且它们之间无时间冲突, 则合并vl和v2,并且合并后的顶点状态为状态1 ;f)如果vl和v2都处于状态2,并且它们之间无时间冲突,则合并vl和v2,并根据 时间信息来确定合并后顶点的状态。重复执行上述步骤,直到结构图(V,E)中E为空为止,如果仍然有顶点的状态为状 态0,则将该顶点分配给执行时间离它提交时间最近的任务,并设置其状态为状态1。此时, V中的每个顶点均包含了任务和提交的对应关系,其中状态1为提交文件对应到一个任务, 状态2为提交文件对应到多个任务,即是“任务-提交”格式的数据集。(四)生产率数据生成模块统计生产率数据基于确定的任务和提交之间的映射关系,生产率数据生成模块可以统计出每个人 力资源的生产率数据。此时所有的提交文件均处于状态1或者状态2,对于处于状态2的提 交文件,其数据可以采用平均的方法分布到各个相关的任务。处于状态1的提交文件,其数 据处理是平均方法的一种特殊情况,因而可以使用统一的方法进行计算。统计生产率数据 的公式如下
权利要求
1.一种Qone数据库生产率数据自动生成方法,其步骤为1)数据提取模块从Qone数据库中提取软件项目数据,建立人力资源-任务数据集;所 述软件项目数据包括人力资源名称、人力资源所属任务的任务名称、任务类型、工作量、开 始时间、结束时间;2)数据提取模块从SVN代码库中提取软件项目的代码提交数据,建立人力资源-提 交数据集;所述代码提交数据包括人力资源名称、人力资源所属提交的提交日期、提交文 件、动作类型、影响行数;3)映射模块根据人力资源名称对人力资源-任务数据集和人力资源-提交数据集进行 映射操作,建立任务-人力资源-提交数据集,得到每个人力资源的任务数据和提交数据;4)映射模块根据任务-人力资源-提交数据集中任务的实际执行时间与提交文件的提 交时间确定任务与提交之间状态;5)映射模块根据任务数据和提交数据建立网状关系结构图(V,E);然后每次选取网 状结构图(V,E)中强度最大的边及其相应的两个顶点进行状态合并,直到网状关系结构图 (V,E)中E为空为止,确定每个提交文件所对应的任务,生成任务-提交数据集;其中,V是 图的顶点集合,即提交文件的集合,E是边的集合,即提交文件间联系的强弱程度;6)生产率数据生成模块根据任务-提交数据集中每个任务上提交的数据,生成每个任 务的生产率数据。
2.如权利要求1所述的方法,其特征在于其特征在于建立所述人力资源-任务数据集 的方法为1)从Qone数据库中提取每一人力资源,包括人力资源的id和姓名;2)对于每个人力资源,提取其所有所属的叶子任务,包括任务名称、任务类型、工作量、 开始时间、结束时间;3)移除每个人力资源所属叶子任务中处于未分配和已取消状态的任务;4)利用任务类型,移除每个人力资源所属叶子任务中制品不包含代码的任务,得到所 述人力资源-任务数据集。
3.如权利要求1或2所述的方法,其特征在于建立所述人力资源-提交数据集的方法 为采用MatSVN工具从从SVN代码库中提取SVN Log数据,然后利用XML解析方法对提取 SVN Log数据进行解析,得到SVN中每个人力资源的提交数据,建立所述人力资源-提交数 据集。
4.如权利要求1或2所述的方法,其特征在于建立所述任务-人力资源-提交数据集 的方法为1)将所述人力资源-任务数据集中人力资源的中文名称转化为对应拼音并提取首字 母缩与;2)在所述人力资源-提交数据集中查找与所述人力资源-任务数据集中拥有相同首字 母缩写的的人力资源;3)根据查找结果建立起属于同一人力资源的任务数据和提交数据,得到所述任务-人 力资源-提交数据集。
5.如权利要求4所述的方法,其特征在于生成所述任务与提交之间状态包括状态O、 状态1、状态2 ;其中,状态O为提交文件不属于任何一个任务,状态1为提交文件属于其中唯一的一个任务,状态2为提交文件属于多个任务;
6.如权利要求5所述的方法,其特征在于所述每次选取网状结构图(V,E)中强度最大 的边及其相应的两个顶点进行状态合并的方法为1)如果两个顶点都处于状态0,则合并这两个顶点,并且合并后的顶点状态仍然为状 态0 ;2)如果其中一个顶点处于状态0,另一个处于状态1,则合并这两个顶点,并且合并后 的顶点状态为状态1 ;3)如果两个顶点都处于状态1,并且它们都属于同一个任务,则合并这两个顶点,并且 合并后的顶点状态仍然为状态1 ;4)如果其中一个顶点处于状态0,另一个处于状态2,则移除它们之间的边;5)如果其中一个顶点处于状态1,另一个处于状态2,并且它们之间无时间冲突,则合 并这两个顶点,并且合并后的顶点状态为状态1 ;6)如果两个顶点都处于状态2,并且它们之间无时间冲突,则合并这两个顶点,并根据 任务的实际执行时间与提交文件的提交时间来确定合并后顶点的状态。
7.如权利要求6所述的方法,其特征在于利用遍历方法来建立每两个顶点之间的边; 采用链表结构存储所建立的边。
8.如权利要求7所述的方法,其特征在于根据提交文件共同出现的频率和时间信息来 共同确定所述提交文件间联系的强弱程度。
9.如权利要求6所述的方法,其特征在于如果所述任务-提交数据集中仍然有提交文 件不属于任何一个任务时,则将该提交文件分配给执行时间离它提交时间最近的任务。
10.如权利要求9所述的方法,其特征在于对于所述任务-提交数据集中提交文件属于 多个任务的提交文件,则采用平均的方法将该提交文件分布到各个相关的任务上。
全文摘要
本发明公开了一种Qone数据库生产率数据自动生成方法,属于计算机软件工程领域。本方法为1)数据提取模块从Qone数据库中提取软件项目数据,从SVN代码库中提取软件项目的代码提交数据;2)映射模块对所提取数据进行映射操作,建立任务-人力资源-提交数据集;3)映射模块根据任务的实际执行时间与提交文件的提交时间确定任务与提交之间状态,并建立网状关系结构图(V,E),确定每个提交文件所对应的任务,生成任务-提交数据集;4)生产率数据生成模块根据任务-提交数据集中每个任务上提交的数据,统计出每个任务的生产率数据。本发明增强了软件可信程度,使软件开发具有更高的准确性和客观性。
文档编号G06F17/30GK102122304SQ201110067910
公开日2011年7月13日 申请日期2011年3月21日 优先权日2011年3月21日
发明者李明树, 王青, 肖俊超, 黄辉 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1