基于多重方面实体感知模型的开发者贡献分析方法与流程

文档序号:11865547阅读:258来源:国知局
基于多重方面实体感知模型的开发者贡献分析方法与流程
本发明属于软件开发领域,特别涉及基于多重方面实体感知生成模型的开发者贡献分析方法。
背景技术
:对于软件公司,软件开发与维护过程需要大量人力财力,如何衡量一位开发者的实际工作量与贡献,作为评价开发者的依据,使项目经理更好地了解开发者,督促开发者积极改进工作提高工作效率,甚至作为决定开发者去留的依据,关系到整个开发团队的开发质量以及公司未来的发展。为了使项目经理掌握开发者工作情况,督促开发者改进工作,提供与实际贡献相对等的薪水,一种准确的、高效的工作量分析方法亟待解决。为了完成这个任务,目前对开发者的研究缺乏工作质量和贡献这方面的研究技术,出现的相关研究也仅仅限于对开发者偏好和行为的研究,以预测开发者所适合的项目,但如果不以工作质量的评估为前提,而直接根据开发者的偏好来推荐项目,若某些开发者工作质量低下,对各个项目所做出的贡献寥寥无几,再向他们推荐项目是没有必要的,所以迫切需要对开发者贡献的分析方法进行研究。另外有些公司尚未对开发者的实际工作量和贡献进行监测,即使进行了监测,也仅限于统计开发者修改代码的行数,简单的统计代码修改行数或commit总提交数并不能真正反映开发者的贡献。比如:开发者为增加其代码修改行数,大量进行注释添加、定义无用变量等等以谋求更高报酬,或者开发者的报告不规范,提交的描述信息与实际代码修改并不相符,以上情况涉及的提交信息应视为无用工作量,这些效率低下甚至影响后期软件维护效率的工作对公司的软件开发而言是无效的没有贡献的甚至是有害的,正因为缺乏对开发者工作质量的监督才导致开发者开发质量的下降,贡献的减少。基于这个思想,一种准确的、有效的开发者的实际工作量即贡献分析方法有待解决。通过对开发者的工作质量的评估考量来判定开发者的贡献,提供给项目经理,督促开发者尽快改进。技术实现要素:本发明的目的就在于克服上述缺陷,研制基于多重方面实体感知生成模型的开发者贡献分析方法。本发明的技术方案是:基于多重方面实体感知模型的开发者贡献分析方法,其主要技术特征在于如下步骤:(1)识别某开发者在某段时间内的commit提交数据,建立其个人提交信息库,将开发者的每份commit报告分解为commit描述和代码修改两个文本;(2)使用多重方面实体感知模型,对上述结果commit描述文本和代码修改文本进行关键字提取,得到项目名称即事件关键字和项目所涉及不同开发任务即方面关键字,并同时提取出commit提交时间;(3)计算每份commit提交信息的commit描述和代码修改两文本通过步骤(2)所得的事件关键字和方面关键字的相似程度,并对相似度大小进行高质量、一般质量和低质量三个等级划分;(4)对开发者每份commit报告通过步骤(2)和步骤(3)所得的计算结果进行整合,生成开发者在某段时间内的总工作质量和开发者在某项目中的工作量和工作质量统计数据文本;(5)根据步骤(4)的数据生成直观的时间分布图、工作质量等级分布柱状图、每个项目的方面实体图,开发者在某段时间内的所有commit提交信息报表提供给项目经理,帮助了解开发者某段时间内的实际开发工作贡献。所述步骤(3)中高质量、一般质量和低质量三个等级分别为>0.8、0.5-0.8和<0.5。本发明的优点和效果在于对开发者某段时间内的提交信息进行事件和方面的挖掘,通过各种衡量标准,进而评价开发者工作质量即贡献,以方便项目经理及时掌握开发者动态,加深对开发者的了解,对开发者报酬划定,由此,督促开发者对未来工作的及时改进,提高了团队软件开发的效率。主要有如下一些优点:(1)本发明涉及的方法的处理对象是commit描述文本和代码修改文本,从两者的一致性出发,只需对从两者提取出关键字进行相似程度计算得出数值,即可按照数值大小进行工作质量的评估,简单易行。另外,对于某一给定时间段来说的,开发者的commit提交数是有限的,所以处理的数据量并不大。(2)本方法有效利用了commit报告中的时间信息,通过提取的时间信息作为参数,可以对项目经理所指定得某一时间段,动态构建出该时间段内的项目-工作量统计表,以衡量该段时间内开发者的贡献。更加准确客观地评价了开发者所有历史工作中不同时间段内的工作,体现出开发者不同时间段内的工作质量。(3)本发明涉及的方法最终可以提供直观的时间分布图、工作质量等级分布柱状图、每个项目的方面实体图,开发者在某段时间内的所有commit提交信息报表提供,项目经理可以快速地通过查阅这些图表了解开发者贡工作质量。附图说明图1——本发明流程示意图。图2——本发明多重方面实体感知模型示意图。图3——本发明分解层次示意图。图4——本发明项目-事件分布统计示意图。图5——本发明工作质量对比示意图。图6——本发明项目的工作分布示意图。图7——本发明提交信息汇总示意图。具体实施方式本发明的技术思路是:多方面实体感知事件/方面发现模型(Multi-AspectEntity-awareEvent/aspectDiscoveryModel简称多重方面实体感知模型)将递归分解和动态实体感知相结合,通过其自上而下的递归应用可以将文本节点划分为不同的事件节点,即开发项目节点,再通过递归调用,可以进而将事件节点划分为方面节点,即项目部涉及的不同开发任务节点,项目所涉及的不同开发任务有系统相关、接口相关、用户界面相关、数据库相关、软件包相关和文档相关等等,各个节点用相关的描述符表示。通过对某开发者在某段时间内的所有commit提交信息进行逐个分解,对commit描述与代码修改两文本进行事件和方面关键字提取,计算相似度大小,进行质量等级划分,生成开发者在某段时间内的总工作质量和开发者在某项目中的工作量和工作质量统计数据文本。下面具体说明本发明。本发明有如下步骤:(1)识别开发者的所有历史commit提交数据,建立其个人提交信息库,将开发者的每份commit报告分解为commit描述和代码修改两个文本。例如:对每位开发者进行编号D1,D2,…,Dn,将commit报告分解后形成的commit描述和代码修两个文本也进行编号,下表为开发者D1个人提交信息库汇总表,表中第i份Commit报告、Commit描述文本和代码修改文本分别用ri、di和ci表示。Commit报告编号Commit描述文本编号代码修改文本编号r1d1c1………rndncn(2)使用多重方面实体感知模型,按照附图中图3的分解层次结构先挖掘项目功能时间,再挖掘功能的子任务方面,对步骤1)的结果commit描述文本和代码修改文本进行关键字提取,得到项目名称、项目所涉及不同方面,同时提取commit提交时间作为之后统计的参数,其中commit描述文本短小,易于分解和提取。例如:对开发者D1的编号为r1的commit报告进行项目、项目所涉及不同方面进行实体关键字提取,按照关键字比例从大到小的顺序进行编号,同时从commit描述中提取提交时间,下表是对提取信息的汇总,其中项目关键字用pi表示,项目pi方面关键字用aij表示,commit报告不存在提交时间不一致问题,所以仅需从描述文本中提取出提交时间ti作为时间关键字即可。考虑到开发者撰写的commit描述不够规范,因此,在关键字提取时将commit报告名称归并到commit描述文本中。关键字的比例=关键字/文本总词汇。(3)计算commit描述和代码修改两文本通过步骤2)所得的项目名称和项目涉及不同方面的关键字的相似程度,并对相似度大小进行高质量(>0.8)、一般(0.5-0.8)和低质量(<0.5)三个等级划分。例如:对于开发者D1编号为r1的commit报告的两个文本提取出的关健字先对项目关键字进行相似度计算,若为低质量工作(<0.5),则该项目所涉及的不同方面不再计算相似度;若为一般及以上(>0.5),则计算相应项目涉及方面的相似度。假设计算结果如下,其中项目的各个方面的相似度和工作质量等级要与之前的方面关键字对应:上表中的相似度计算方法为向量相似度计算,其公式如下:cosdi,ci>=di→*ci→|di→|*|ci→|]]>其中的向量表示commit描述i和代码修改i的关键字向量。(4)对开发者每份commit报告通过步骤2)和步骤3)所得的计算结果进行整合,生成按时间、项目和工作质量等级为参数的统计数据文本。例如:开发者D1的所有历史commit提交信息汇总假设如下表:再对汇总的数据进行整合,计算出开发者的工作质量数据,例如:对开发者D1的所有工作按项目进行汇总,计算出各个项目的工作质量,计算公式为:其中Aij表示项目i的j方面的相似度,pi表示项目i的相似度,分母为项目i涉及的方面数。按相同的等级划分假设得到一下结果:项目p1…pn工作质量0.6…0.9工作质量等级一般…高再对汇总数据进行整合,计算出开发者在一段时间内的总工作质量,例如:对开发者D1在某时间段内的开发项目进行汇总,计算出这段时间内的总工作质量,计算公式为:其中Ai为项目i涉及的方面数,pi为项目i的相似度,分母为所有项目涉及的方面总数。假设计算结果如下表:时间t0-t1t1-t2t2-t3总工作量质量0.60.70.8工作质量等级一般一般高(5)根据步骤(4)的数据生成直观的时间分布图、工作质量等级分布柱状图、每个项目的方面实体图,开发者所有提交报表项目提供给项目经理,帮助了解开发者,对开发者未来工作提出意见。例如:假设对开发者D1进行基于多重方面实体感知模型的开发者贡献衡量,得出附图中的四幅图表提供给项目经理。图4为开发者D1项目-时间分布统计图,每个项目的峰值处标出了时间,该时间表示涉及该项目代码行数最多的commit报告提交时间,同时可以赋予曲线不同的颜色以区分不同的项目。图5为开发者D1在具体的tb-tf时间段总commit提交数和一般以上工作提交数的对比柱状图,每个项目由两矩形构成,左边为提交总数右边为一般质量提交数,并在一般质量提交数中划分出高质量提交数,所占总提交数的百分比,通过比例直观看出开发者工作质量。图6为开发者D1的工作所涉及的项目p1中不同方面工作的饼状分布图,这是对开发者某时间段内对某一项目的工作的评估。图中将整个项目用饼图表示,按照不同方面的工作所占该项目总工作的比例进行划分,可以直观地看出开发者对项目最多作出的是哪些方面的贡献,开发者其他项目也将生成与p1类似的饼状图。图7为开发者D1在ta-tg时间段内所有commit提交信息报表,表中汇总出开发者每份commit的标题描述、项目和项目涉及不同方面的关键字及分析得出的commit亮点,该亮点标注出该份报告的优点或存在的问题等等。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1