首页> 中国专利> 用户故事工时计算的方法、装置、设备及计算机存储介质

用户故事工时计算的方法、装置、设备及计算机存储介质

摘要

本申请实施例提供了一种用户故事工时计算的方法、装置、设备及计算机存储介质,其中,方法包括:获取用户故事工时的第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。由于计算用户故事工时只需判断第一工时影响因子与用户故事工时是否具有相关性,不需要关注第一工时影响因子的相关程度,因此,将相关性值大于0的第一工时影响因子确定为目标工时影响因子,使得用于计算用户故事工时的工时影响因子更加客观准确,减少主观评估的误差,提升评估效率。

著录项

说明书

技术领域

本申请属于软件开发管理技术领域,尤其涉及一种用户故事工作量评估的方法、装置、设备及计算机存储介质。

背景技术

目前,协作与整合(Develop Operations,DevoOps)体系下用户故事工作量的评估主要将用户故事拆分为任务,在评估各子任务的工作量,从而得到整个用户故事的工作量,以开发管理流程驱动产品经理、专家评审团队对用户故事开发工时进行评估稽核。

但是,整个用户故事开发工时评估过程依赖系统流程驱动产品经理及相关专家进行主观评估,对产品经理的能力要求较高,如果产品经理的能力达不到要求,造成评估结果误差较大,评估效率低。

发明内容

本申请实施例提供一种用户故事工时计算的方法、装置、设备及计算机存储介质,能够将人为确定的工时影响因子进行客观地计算,使得工时影响因子更加准确,提升评估效率。

第一方面,本申请实施例提供一种用户故事工时计算的方法,方法包括:

获取用户故事工时的第一工时影响因子;

计算第一工时影响因子与用户故事工时的相关性值;

从第一工时影响因子中确定目标工时影响因子,目标工时影响因子与用户故事工时的相关性值大于0;

根据目标工时影响因子计算用户故事工时。

在一种可能的实现方式中,第一工时影响因子包括新增代码行数;获取用户故事工时的第一工时影响因子,包括:

获取源程序代码,源程序代码包括用户故事源程序代码和历史用户故事源程序代码;

计算用户故事源程序代码和历史用户故事源程序代码的程序代码相似度值;

根据程序代码相似度值,获取用户故事工时的新增代码行数。

在一种可能的实现方式中,第一工时影响因子还包括用户故事分解的任务数、测试用例数、新增数据表数、外部系统接口数中的至少一种。

在一种可能的实现方式中,计算第一工时影响因子与用户故事工时的相关性值,包括:

获取历史用户故事工时;

根据历史用户故事工时和第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。

在一种可能的实现方式中,根据目标工时影响因子计算用户故事工时,包括:

根据目标工时影响因子,获取目标工时影响因子值;

将目标工时影响因子值输入自适应拉索Adaptive Lasso算法模型,得到用户故事工时;

Adaptive Lasso算法模型是根据历史用户故事工时和工时影响因子的关系训练得到的。

第二方面,本申请实施例提供了一种用户故事工时计算的装置,装置包括:

获取模块,用于获取用户故事工时的第一工时影响因子;

计算模块,用于计算第一工时影响因子与用户故事工时的相关性值;

确定模块,用于从第一工时影响因子中确定目标工时影响因子,目标工时影响因子与用户故事工时的相关性值大于0;

计算模块,还用于根据目标工时影响因子计算用户故事工时。

在一种可能的实现方式中,第一工时影响因子包括新增代码行数;获取模块,具体用于:

获取源程序代码,源程序代码包括用户故事源程序代码和历史用户故事源程序代码;

计算用户故事源程序代码和历史用户故事源程序代码的程序代码相似度值;

根据程序代码相似度值,获取用户故事工时的新增代码行数。

在一种可能的实现方式中,第一工时影响因子还包括用户故事分解的任务数、测试用例数、新增数据表数、外部系统接口数中的至少一种。

在一种可能的实现方式中,计算模块,具体用于:

获取历史用户故事工时;

根据历史用户故事工时和第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。

在一种可能的实现方式中,计算模块,还具体用于:

根据目标工时影响因子,获取目标工时影响因子值;

将目标工时影响因子值输入自适应拉索Adaptive Lasso算法模型,得到用户故事工时;

Adaptive Lasso算法模型是根据用户故事工时和工时影响因子的关系训练得到的。

第三方面,本申请实施例提供了一种用户故事工时计算设备,设备包括:处理器,以及存储有计算机程序指令的存储器;处理器读取并执行计算机程序指令,以实现第一方面或第一方面任意一种可能的实现方式中的用户故事工时计算的方法。

第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面或第一方面任意一种可能的实现方式中的用户故事工时计算的方法。

本申请实施例提供的用户故事工时计算的方法、装置、设备及计算机存储介质,其中,方法包括:获取用户故事工时的第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。由于计算用户故事工时只需判断第一工时影响因子与用户故事工时是否具有相关性,不需要关注第一工时影响因子的相关程度,因此,将相关性值大于0的第一工时影响因子确定为目标工时影响因子,使得用于计算用户故事工时的工时影响因子更加客观准确,减少主观评估的误差,提升评估效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种用户故事工时计算方法的流程示意图;

图2是本申请实施例提供的一种用户故事工时计算装置的结构示意图;

图3是本申请实施例提供的一种用户故事工时计算设备的结构示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

用户故事是从用户的角度来描述用户渴望得到的功能,当前用户故事开发工时评估,主要是通过产品经理和相关专家评估影响用户故事的因子进行计算。由于根据评估人自身经验确定的用户故事工时影响因子受其自身能力的影响,其确定的用户故事影响因子存在一定的误差。虽然在进行用户故事工时计算时,会根据用户故事工时与工时影响因子的相关性值与预设阈值的关系对主观评估的工时影响因子进行筛选,但是这种筛选方法会武断地将一些相关性值小于预设阈值但对用户故事工时有影响的影响因子剔除,使得最终计算的用户故事工时存在误差。

为了解决现有技术问题,本申请实施例提供了一种用户故事工时计算的方法、装置、设备及计算机存储介质。

在本申请实施例中,通过获取用户故事工时的第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。由于计算用户故事工时只需判断第一工时影响因子与用户故事工时是否具有相关性,不需要关注第一工时影响因子的相关程度,因此,将相关性值大于0的第一工时影响因子确定为目标工时影响因子,使得用于计算用户故事工时的工时影响因子更加客观准确,减少主观评估的误差,提升评估效率。

下面首先对本申请实施例所提供的用户故事工时计算的方法进行介绍。

图1示出了本申请一个实施例提供的用户故事工时计算的方法的流程示意图。如图1所示,该方法可以包括以下步骤:

S110,获取用户故事工时的第一工时影响因子。

第一工时影响因子为产品经理和相关专家根据日常开发经验主观评估的工时影响因子,用户故事需求从需求分析到部署上线,大概经过需求调研、需求设计、代码开发、联调测试、部署上线等几个过程。

其中,需求调研的工时,根据各需求调研分析实际时长得到。

需求设计的工时,主要涉及到用户故事分解的任务数,任务越多,原型设计的工作量越大。任务数,可从DevOps综合管理系统中直接获取,由产品经理在系统中进行拆分得到。

代码开发的工时,可根据实际代码行数及新增的后台数据表数量来评估开发的工时,而实际的代码工时应该只算新增代码部分的工时。与历史故事重复的代码部分工作应不计工时或计极少工时。

新增的数据库表数量,可从详细设计文档评审时,将相关数据结构到DevOps综合管理系统中。

联调测试的工时,主要依赖于用户故事分解的任务数、测试用例数量及涉及的外部系统接口数。测试用例数量可以从DevOps综合管理系统的测试用例库中直接统计。

部署上线的工作量,涉及到应用系统集群规模的大小,有无先进的支撑工具等。

除此之外,还涉及到其他一些因素,如研发人员的技能水平,项目经理项目管理能力等非量化因子,在本申请实施例中,不计入用户故事工时的第一工时影响因子。

因此,第一工时影响因子包括新增代码行数、用户故事分解的任务数、测试用例数、新增数据表数、外部系统接口数中的至少一种。

S120,计算第一工时影响因子与用户故事工时的相关性值。

由于第一工时影响因子受评估人能力的影响较大,在获取用户故事工时的第一工时影响因子后,需要对第一工时影响因子进行验证,判断这些第一工时影响因子是否影响用户故事工时。进一步地,计算第一工时影响因子与用户故事工时的相关性值。

从代码库中获取全部的历史用户故事工时来计算各第一工时影响因子与用户故事工时的相关性,避免某一特殊阶段的历史数据影响相关性的计算结果。

通过归一化相关算法公式来计算第一工时影响因子与用户故事工时的相关性值,归一化相关算法公式表示为以下公式:

其中,NCC表示第一工时影响因子与用户故事工时的相关性值,X表示历史用户故事的用户故事工时集合,Y表示第一工时影响因子集合,n表示历史用户故事的个数,x

以历史用户故事AA1及历史用户故事AA2为例,AA1对应的工时为10人/天,AA2对应的工时为20人/天,假设其他因子的值都相同,只有新增代码行数不一样,AA1新增代码行数为500,AA2程序新增代码行数为10000,那么,在这种情况下我们就可以认为用户故事工时与新增代码行数强相关。通过上述公式可计算出用户故事工时与新增代码行数的归一化相关值为1。

NCC的取值范围为(0,1],NCC值越接近于1,即相关值越大,则说明该第一工时影响因子对用户故事工时的影响越大,当|NCC|值为0时,说明该第一工时影响因子对用户故事工时没有影响。

S130,从第一工时影响因子中确定目标工时影响因子,目标工时影响因子与用户故事工时的相关性值大于0。

在选取目标工时影响因子时,不能仅仅根据相关理论中相关性值大于0.8的相关影响因子直接剔除,事实上,与用户故事工时相关的第一工时影响因子都可能会影响计算用户故事工时的准确性。因此,在进行用户工时计算时,只要与用户故事工时相关的工时影响因子都应该考虑。

当第一工时影响因子与用户故事工时的相关性值大于0时,说明该第一工时影响因子与用户故事工时具有相关性,将与用户故事工时的相关性值大于0的第一工时影响因子确定为目标工时影响因子。

将人为主观评估的第一影响因子通过相关性计算验证各个第一影响因子与用户故事工时的相关度,并根据相关度确定目标工时影响因子,把专家经验结合客观计算结果使得评估出来的工时影响因子更加准确,降低了对产品经理能力要求,有效减少用户故事工时评估的人力成本。

S140,根据目标工时影响因子计算用户故事工时。

在确定目标工时影响因子之后,将目标工时影响因子的数值输入自适应拉索Adaptive Lasso算法模型,计算得到用户故事工时。其中,Adaptive Lasso算法模型是根据历史用户故事工时和工时影响因子的关系训练得到的。

Adaptive Lasso算法是一种基于Lasso改进的方法,其参数估计定义为:

其中,

随着λ的增大,回归系数连续地向0靠近,若λ足够大时,则回归系数缩小到0,而且连续地缩小使得偏差被平衡掉,从而保证了用户故事工时计算结果的准确性。

其中权重

运用LARS算法来解决Adaptive Lasso算法中估计,对于每个一个γ,该算法会寻找一个最优的λ,此处取γ=1代入计算,得到系数β的矩阵记为:β=(β

根据历史用户故事工时和工时影响因子的关系预先训练好Adaptive Lasso算法模型,在进行用户故事工时计算时,将目标工时影响因子的数量,即新增代码行数数量、任务数数量、测试用例数数量、新增数据表数数量、外部系统接口数数量中的至少一种输入Adaptive Lasso算法模型,即可得到用户故事工时。无需关注目标工时影响因子的影响程度,只需直接代入目标工时影响因子的数值,尽可能带入更加全面的工时影响因子的数值,避免错漏比较重要的工时影响因子,使得计算出的用户故事工时更加准确。

在本申请实施例中,通过获取用户故事工时的第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。由于计算用户故事工时只需判断第一工时影响因子与用户故事工时是否具有相关性,不需要关注第一工时影响因子的相关程度,因此,将相关性值大于0的第一工时影响因子确定为目标工时影响因子,使得用于计算用户故事工时的工时影响因子更加客观准确,减少主观评估的误差,提升评估效率。

在一些实施例中,第一工时影响因子包括新增代码行数;获取用户故事工时的第一工时影响因子,包括:

获取源程序代码,源程序代码包括用户故事源程序代码和历史用户故事源程序代码,计算用户故事源程序代码和历史用户故事源程序代码的程序代码相似度值,根据程序代码相似度值,获取用户故事工时的新增代码行数。

通过开源软件工具得到两个用户故事的相似度值,比如说,CodePro、PMD-CPD等开源软件工具,相似度值的取值范围为(0,1),相似度值越大,说明代码重复率越高,重复率越高,说明用户故事工时越小。除了通过开源软件直接获取用户故事的相似度值之外,还可以自研相似度算法计算用户故事源程序代码和历史用户故事源程序代码的程序代码相似度值,此处不做限定。

在计算新增代码行数之前,需要先对程序代码做规格化处理,将相关注释语及变量更名等代码格式化处理,这部分内容不算工作量,代码规格化遵循以下原则:

规则1:删除代码中的所有的关键字、预定义标识符和库函数名称。如关键字include、预定义标识符alloc.h、库函数print等。

规则2:代码中不是关键字、标识符以及操作符的部分统一使用“$”代替。

规则3:删除代码中的注释以及空格。

比如说,有程序代码P如下:

对程序代码P进行规格化,使用以上规则一次删除关键字int、return、库函数min及空格和注释语句,以“$”代替后生成的规格化代码如下:

($,$){$;$=$<$?$:$;($);}。

获取与用户故事源程序代码相似度值最大的历史用户故事源程序代码作为计算用户故事的新增代码行数的目标历史用户故事源程序代码,计算公式如下:

A=B-(C*D)··························(3)

其中,A表示新增代码行数,B表示用户故事源程序代码总行数,C表示目标历史用户故事源程序代码总行数,D表示程序代码相似度值。

计算新增代码行数NL的伪代码实现过程如下:

图2是本申请实施例提供的一种装置结构示意图。如图2所示,用户故事工时计算装置200可以包括获取模块210,计算模块220和确定模块230。

获取模块210,用于获取用户故事工时的第一工时影响因子。

计算模块220,用于计算第一工时影响因子与用户故事工时的相关性值。

确定模块230,用于从第一工时影响因子中确定目标工时影响因子,目标工时影响因子与用户故事工时的相关性值大于0。

计算模块220,还用于根据目标工时影响因子计算用户故事工时。

在本申请实施例中,能够将人为确定的工时影响因子进行客观地计算,使得工时影响因子更加准确,提升评估效率,降低产品经理的能力要求,减少人工成本。

在一些实施例中,第一工时影响因子包括新增代码行数;获取模块210,具体用于:

获取源程序代码,源程序代码包括用户故事源程序代码和历史用户故事源程序代码;

计算用户故事源程序代码和历史用户故事源程序代码的程序代码相似度值;

根据程序代码相似度值,获取用户故事工时的新增代码行数。

在一些实施例中,第一工时影响因子还包括用户故事分解的任务数、测试用例数、新增数据表数、外部系统接口数中的至少一种。

在一些实施例中,计算模块220,具体用于:获取历史用户故事工时;

根据历史用户故事工时和第一工时影响因子,计算第一工时影响因子与用户故事工时的相关性值。

在一些实施例中,计算模块220,还具体用于:根据目标工时影响因子,获取目标工时影响因子值;

将目标工时影响因子值输入自适应拉索Adaptive Lasso算法模型,得到用户故事工时;

Adaptive Lasso算法模型是根据用户故事工时和工时影响因子的关系训练得到的。

图2所示装置中的各个模块具有实现图1中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。

图3示出了本申请实施例提供的用户故事工时计算设备的硬件结构示意图。

在用户故事工时计算设备可以包括处理器301以及存储有计算机程序指令的存储器302。

具体地,上述处理器301可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器302可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在一个实例中,存储器302可以包括可移除或不可移除(或固定)的介质,或者存储器302是非易失性固态存储器。存储器302可在综合网关容灾设备的内部或外部。

在一个实例中,存储器302可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器302包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的一方面的方法所描述的操作。

处理器301通过读取并执行存储器302中存储的计算机程序指令,以实现图1所示实施例中的步骤S110至S140,并达到图1所示实例执行其步骤达到的相应技术效果,为简洁描述在此不再赘述。

在一个示例中,用户故事工时计算设备还可包括通信接口303和总线310。其中,如图3所示,处理器301、存储器302、通信接口303通过总线310连接并完成相互间的通信。

通信接口303,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。

总线310包括硬件、软件或两者,将用户故事工时计算设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

该用户故事工时计算设备可以根据用户故事工时影响因子执行本申请实施例中的用户故事工时计算方法,从而实现结合图1描述的用户故事工时计算方法。

另外,结合上述实施例中的用户故事工时计算方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种用户故事工时计算方法。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RadioFrequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。

以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号