基于流程驱动研发任务的方法及系统与流程

文档序号:11234680阅读:524来源:国知局
基于流程驱动研发任务的方法及系统与流程

本发明属于计算机软件技术领域,涉及一种研发任务驱动方法,尤其涉及一种基于流程驱动研发任务的方法;同时,本发明还涉及一种基于流程驱动研发任务的系统。



背景技术:

对软件开发而言,当开发产品或者构建系统时,遵循一系列可预测的步骤是非常重要的,它有助于及时交付高质量的产品。但是在软件研发全生命周期中,软件过程不是对如何构建计算机软件的严格的规定,而是一种可适应性调整的方法,以便于工作人员(软件团队)可以挑选适合的研发活动和研发任务的集合。

研发活动主要实现宽泛的目标(如与利益相关者进行沟通、项目策划),它与应用领域、项目大小、结果复杂性或者实施软件的重要程度没有太多的直接关系。研发任务主要关注小而明确的目标,它的主要目的是产生实际的产品(如构建一个单元测试)。

在软件研发的全生命周期中,所有的这些研发活动、研发任务中的每一个都属于某一个过程框架或者过程模型,框架或模型定义了它们同过程之间或者相互之间的关系。过程框架或者过程模型提高了软件研发活动/任务的稳定性、可控性和有组织性,如果没有过程约束,软件研发活动/任务将逐渐失控并变得混乱。

传统上,项目立项后,项目负责人将基于经验或先前项目的基础为本项目建立顶层项目计划。由于在项目初期,项目的活动/任务分解通常粒度较粗,每个活动/任务的完成时间往往也较长。

在项目具体活动的执行时,活动负责人将基于最新的信息将该活动进一步进行任务分解、资源分配等,并可能在前期的顶层项目计划中将新分解的细粒度任务添加为先前粗粒度活动/任务的子任务,或者重新为具体活动建立子计划。在任务进一步分解后,具体的执行人员将依据更新后的细粒度计划开展工作。

活动负责人或项目经理将跟踪和监控具体任务的执行情况,并将任务执行的信息,如完成百分比,添加入项目计划或其他用于项目跟踪的数据中。

此外,如果涉及到需要并行或先后开展的多项任务时,往往需要活动负责人和各个任务执行人进行大量线下沟通和协调,确认各项任务有序、高效的开展。

当前现有的技术制定的整个软件项目的研制流程,存在以下缺点:

(1)需人工跟踪研发任务:研发任务是否依据计划执行、研发任务在规定时间内的完成情况等,都必须要有相应的人员时刻进行跟踪、比对、汇总。由于人的主观因素的存在可能会直接导致任务执行不力、项目进度数据统计不准确等问题,同时也造成了资源的浪费,降低了项目资源的利用率。

(2)不利于并行工作:一般情况下,对于没有工作输出物相互依赖关系的两项活动,而仅共同依赖于其他活动的输出时,可以直接在项目计划中将两项任务排定为同时开始。但是,项目存在大量任务其工作量很大,工期很长,而且其输出是后续活动的输入,为了提高项目执行效率,往往需要在这样工作部分输出稳定时,及部分交付给后续任务,从而实现并行化。但是,在传统工具当中,为实现这一目的,一方面需要在工具中将两个活动的前后置关系设置为同时开始,还需要工作人员在线下及时沟通,先行活动的执行人及时将先行工作的部分稳定输出提交给后续活动的执行人,才能实现并行工作。这就在很大程度上依赖于人的主观能动性。

(3)项目进度计划不稳定:传统工具当中,在项目初期制定项目进度计划时,往往只能在较粗的粒度上确定项目的整体工作内容,而在后续项目执行中,通常需要不断修订,细化项目进度计划,以满足实际工作中任务灵活分配的需要,这就导致项目进度计划的不稳定。

有鉴于此,如今迫切需要设计一种新的任务分配方式,以便克服现有分配方式的上述缺陷。



技术实现要素:

本发明所要解决的技术问题是:提供一种基于流程驱动研发任务的方法,可根据软件研发流程自动生成研发任务,提高任务分配效率及精确度。

此外,本发明提供一种基于流程驱动研发任务的系统,可根据软件研发流程自动生成研发任务,提高任务分配效率及精确度。

为解决上述技术问题,本发明采用如下技术方案:

一种基于流程驱动研发任务的方法,所述方法包括:解析项目预设好的流程数据,当满足活动的前置要求、限制类型及延迟间隔及活动的计划开始时间时,系统驱动该研发活动,并根据研发活动的种类,将研发活动按照系统预设的分类,将活动分解成为一个或多个研发任务,并将研发任务分配给活动的负责人和参与人。

作为本发明的一种优选方案,所述方法包括步骤s1、将软件研发流程实例化为软件项目计划;

将承担项目的组织机构的软件研发流程框架及其相关的数据内嵌在驱动系统中,内嵌的研发流程框架和相关数据来自于先前项目积累的历史数据积累、组织创建的标准规程指南;

组织资产中的标准软件研发流程框架,包含软件过程、各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出。在具体的项目立项后,依据本项目的特点,在标准软件研发数据的基础上进行个性化定制和裁剪,进行定制和裁剪的数据包括软件研发流程框架中的各项基本元素,包括软件研发流程中包含的各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出,然后将定制化的软件研发流程框架拷贝到实际项目中,并为各研发活动指派活动的负责人和参与人及计划开始和完成的日期,从而生成软件项目计划。

作为本发明的一种优选方案,所述方法还包括步骤s2、任务驱动设置步骤;

所有已定义好的软件生命周期活动构成了软件项目计划,每个活动的名称、工时、工期、进度百分比、计划开始和结束时间、实际开始和结束时间,以及对应甘特图,都会相应的进行体现;项目负责人为每个活动分配相应的负责人和参与人;

设置负责人和参与人后,每个活动会根据已定义的计划开始时间、前置活动条件,为活动的负责人和参与人驱动出可执行任务;

驱动出的可执行任务的内容包括任务编号、任务名称、任务类型、发起人、执行人、工作量分布类型、发起时间、计划开始日期、计划完成日期、实际开始日期、实际完成日期、计划工时、任务状态、已用工时。

作为本发明的一种优选方案,所述方法还包括:步骤s3、设置驱动方式步骤;提供三种研发任务的驱动场景:前置活动驱动、数据驱动、周期性驱动;

(1)前置活动驱动作为最简单也是最典型的驱动场景,即第一事情做完了,才可以做第二事情,或者第一事情开始了,才可以做第二事情;

添加前置活动:提供添加、删除和保存前置活动功能,供用户在设置前置活动时随时对前置活动进行添加、删除和保存操作;系统提供添加前置活动的功能,为某项活动选择项目计划中的其他活动为前置活动;一个活动可以添加多个前置活动;添加前置活动提供下拉列表选择,下拉列表里面包含了软件研发流程里面的所有活动;

添加前置活动时设置前置类型,前置类型包括“完成-开始”、“开始-开始”,“完成-开始”说明该活动的驱动的前提条件之一为该活动的前置活动的任务状态达到100%;“开始-开始”说明该活动的驱动的前提条件之一为该活动的前置活动已经驱动;

删除前置活动:在前置活动列表里面选择一条前置活动,进行删除操作后,系统将自动删除已选择的前置活动,并刷新前置活动列表;

保存前置活动:活动的前置活动设置完成以后,对软件研发流程进行保存操作,所做的设置即刻生效;

设置限制类型及延迟间隔:提供活动限制类型的设置,活动的限制类型分为“越早越好”、“不得早于…开始”。当限制类型为“越早越好”,限制日期处于不能设置的状态;当活动的前置活动条件满足时,即驱动该活动,此时可能早于活动的计划开始日期。当限制类型为“不得早于…开始”,此时需要设置延迟间隔,对活动的驱动时间做进一步的限制;当活动的前置活动条件满足,并且到达了设置的延迟间隔日期,即驱动该活动。限制类型和前置活动的逻辑关系为与;

(2)数据驱动场景;

在实际的软件研发过程当中,有些时候,虽然研发任务与研发任务之间,满足任务驱动的必要条件,但由于任务所需要的数据对象尚未完全准备好,所以还不能真正驱动任务;任务驱动的必要条件包括前置条件、时间准则;

数据驱动实现并行化的过程如下:

将期望并行化的两个活动的前置活动类型设置为“开始-开始”,设置活动b的前置活动为活动a,并将前置类型设置为“开始-开始”,按项目期望设置按限制类型及延迟间隔;

在活动a满足驱动条件后,活动b与活动a同时驱动出来,或按限制类型及延迟间隔的时间活动b延迟相应时间驱动出来;此时,尽管活动b同时与活动a驱动出来,但是实际上活动b无法真正执行,因为其执行的输入,是活动a的输出,此时活动a也刚刚驱动出来,尚未产生输出。需要说明的是,本系统中活动a和活动b的执行均是以fog数据的粒度进行,这也是数据驱动能够实现并行化的基础;

在活动a的子活动a1执行完成后,其输出a1提交,此时活动b获得了可以执行的输入,真正具备执行的条件,因此其子活动b1可以执行;在b1执行时,活动a可以继续执行其他子活动a2;即,此时子活动a2子活动b1实现了并行化执行;

(3)周期性驱动场景;

每一个活动都关联到了相对应的活动类型,通过设置活动类型的周期性即可确定该活动的周期性;提供6种不同的周期性设置,每种不同的“活动类型周期”还能进行细化的具体设置;具体6种设置如下:

03-03-a)活动类型周期为日:设置周期性任务是每n个工作日进行一次驱动;(n代表不特定的数量)

03-03-b)活动类型周期为周:指定该周期性任务在每n周的第m周的具体的哪一天进行一次驱动,或者是在每n周的第/倒数x个工作日进行一次驱动,该周期性任务的驱动频率为每n周驱动一次;(n、m、x均代表不特定的数量)

03-03-c)活动类型周期为月:指定该周期性任务在每n月的第m月的第a周的具体哪一天进行一次驱动,或者是每n月的第/倒数的x个工作日进行一次驱动,该周期性任务的驱动频率为每n月驱动一次;(n、m、a、x均代表不特定的数量)

03-03-d)活动类型周期为里程碑:指定该周期性任务在里程碑活动始之前、开始之后、完成之前、完成之后的第n个工作日进行驱动,并且可以设置该里程碑是普通里程碑还是重要里程碑;整个软件研发流程有多少个里程碑该周期性任务就有多少个;(n代表不特定的数量)

03-03-e)活动类型周期为阶段:指定该周期性任务是在每个阶段开始之前、开始之后、完成之前、完成之后的第n个工作日进行驱动,并且可以设置该周期性任务是按照计划日期驱动还是按照实际日期驱动;该周期性任务的驱动频率为每个阶段驱动一次;(n代表不特定的数量)

03-03-f)活动类型周期为基于某活动类型:提供18种活动类型,包括编写、核查、测试执行、质量保证、会议、评审、项目管理、里程碑会议、日常活动、流程、报告、培训、测量、线下活动、关系人跟踪、关键依赖、承若、其他,并且能选择是在活动开始的时候进行该周期性任务的驱动还是在活动结束的时候进行该周期性任务的驱动。

作为本发明的一种优选方案,所述方法还包括:步骤s4、任务再分配步骤;

对于软件计划中需要多人完成的活动,提供负责人和参与人的设置;任务负责人具有在任务驱动出来后进一步为任务参与人分配任务的权限;

具有任务分配权限的任务负责人登陆该系统后,该系统将为其自动驱动出的一个任务名称为“活动名称-任务分配”的任务;

人工介入任务分配进一步细化了软件研发任务,任务负责人能基于“fog数据”的粒度给相关的项目组成员分配研发任务;同样任务的执行人也能基于“fog数据”的粒度进行任务执行操作;

任务再分配流程描述如下:

04-01)编写任务的负责人在本系统中将待编写的数据的输入以fog数据的粒度分配给编写任务的参与人;

04-02)收到任务的参与人分别在本系统中按其收到的编写任务、以输入fog数据为依据,编写相应的fog数据;

04-03)每个参与人编写完成各个fog数据后,逐个提交fog数据;

04-04)核查任务的负责人会在本系统中自动收到已有新完成的fog数据的提示,该负责人将该fog数据分配给核查任务的某个参与人;

04-05)核查任务的参与人会在本系统中收到已有新的fog数据分配给自己核查的提示,对收到的fog数据进行核查;

04-06)各个核查参与人在完成自己的fog数据核查后逐个提交。

一种基于流程驱动研发任务的系统,所述系统包括:

研发活动生成模块,用以根据项目定制好的流程数据驱动出软件研发流程中涉及到的所有研发活动;

研发任务分配模块,用以将研发活动细化为研发任务,将研发任务分配到相应的项目组成员。

作为本发明的一种优选方案,所述研发活动生成模块用以将承担项目的组织机构的软件研发流程框架及其相关的数据内嵌在驱动系统中,内嵌的研发流程框架和相关数据来自于先前项目积累的历史数据积累、组织创建的标准规程指南;

组织资产中的标准软件研发流程框架,包含软件过程、各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出。在具体的项目立项后,依据本项目的特点,在标准软件研发数据的基础上进行个性化定制和裁剪,可进行定制和裁剪的数据包括软件研发流程框架中的各项基本元素,包括软件研发流程中包含的各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出,然后将定制化的软件研发流程框架拷贝到实际项目中,并为各研发活动指派活动的负责人和参与人及计划开始和完成的日期,从而生成软件项目计划。

作为本发明的一种优选方案,所述系统还包括任务驱动设置模块,用以设置任务驱动;

所有已定义好的软件生命周期活动构成了软件项目计划,每个活动的名称、工时、工期、进度百分比、计划开始和结束时间、实际开始和结束时间,以及对应甘特图,都会相应的进行体现;项目负责人为每个活动分配相应的负责人和参与人;

设置负责人和参与人后,每个活动会根据已定义的计划开始时间、前置活动条件,为活动的负责人和参与人驱动出可执行任务;

驱动出的可执行任务的内容包括任务编号、任务名称、任务类型、发起人、执行人、工作量分布类型、发起时间、计划开始日期、计划完成日期、实际开始日期、实际完成日期、计划工时、任务状态、已用工时。

作为本发明的一种优选方案,所述系统还包括:驱动方式设置模块,用以提供三种研发任务的驱动场景:前置活动驱动、数据驱动、周期性驱动;

(1)前置活动驱动作为最简单也是最典型的驱动场景,即第一事情做完了,才可以做第二事情,或者第一事情开始了,才可以做第二事情;

添加前置活动:提供添加、删除和保存前置活动功能,供用户在设置前置活动时随时对前置活动进行添加、删除和保存操作;系统提供添加前置活动的功能,为某项活动选择项目计划中的其他活动为前置活动;一个活动可以添加多个前置活动;添加前置活动提供下拉列表选择,下拉列表里面包含了软件研发流程里面的所有活动;

添加前置活动时设置前置类型,前置类型包括“完成-开始”、“开始-开始”,“完成-开始”说明该活动的驱动的前提条件之一为该活动的前置活动的任务状态达到100%;“开始-开始”说明该活动的驱动的前提条件之一为该活动的前置活动已经驱动;

删除前置活动:在前置活动列表里面选择一条前置活动,进行删除操作后,系统将自动删除已选择的前置活动,并刷新前置活动列表;

保存前置活动:活动的前置活动设置完成以后,对软件研发流程进行保存操作,所做的设置即刻生效;

设置限制类型及延迟间隔:提供活动限制类型的设置,活动的限制类型分为“越早越好”、“不得早于…开始”。当限制类型为“越早越好”,限制日期处于不能设置的状态;当活动的前置活动条件满足时,即驱动该活动,此时可能早于活动的计划开始日期。当限制类型为“不得早于…开始”,此时需要设置延迟间隔,对活动的驱动时间做进一步的限制;当活动的前置活动条件满足,并且到达了设置的延迟间隔日期,即驱动该活动。限制类型和前置活动的逻辑关系为与;

(2)数据驱动场景;

在实际的软件研发过程当中,有些时候,虽然研发任务与研发任务之间,满足任务驱动的必要条件,但由于任务所需要的数据对象尚未完全准备好,所以还不能真正驱动任务;任务驱动的必要条件包括前置条件、时间准则;

数据驱动实现并行化的过程如下:

将期望并行化的两个活动的前置活动类型设置为“开始-开始”,设置活动b的前置活动为活动a,并将前置类型设置为“开始-开始”,按项目期望设置按限制类型及延迟间隔;

在活动a满足驱动条件后,活动b与活动a同时驱动出来,或按限制类型及延迟间隔的时间活动b延迟相应时间驱动出来;此时,尽管活动b同时与活动a驱动出来,但是实际上活动b无法真正执行,因为其执行的输入,是活动a的输出,此时活动a也刚刚驱动出来,尚未产生输出。需要说明的是,本系统中活动a和活动b的执行均是以fog数据的粒度进行,这也是数据驱动能够实现并行化的基础;

在活动a的子活动a1执行完成后,其输出a1提交,此时活动b获得了可以执行的输入,真正具备执行的条件,因此其子活动b1可以执行;在b1执行时,活动a可以继续执行其他子活动a2;即,此时子活动a2子活动b1实现了并行化执行;

(3)周期性驱动场景;

每一个活动都关联到了相对应的活动类型,通过设置活动类型的周期性即可确定该活动的周期性;提供6种不同的周期性设置,每种不同的“活动类型周期”还能进行细化的具体设置;具体6种设置如下:

03-03-a)活动类型周期为日:设置周期性任务是每n个工作日进行一次驱动;(n代表不特定的数量)

03-03-b)活动类型周期为周:指定该周期性任务在每n周的第m周的具体的哪一天进行一次驱动,或者是在每n周的第/倒数x个工作日进行一次驱动,该周期性任务的驱动频率为每n周驱动一次;(n、m、x均代表不特定的数量)

03-03-c)活动类型周期为月:指定该周期性任务在每n月的第m月的第a周的具体哪一天进行一次驱动,或者是每n月的第/倒数的x个工作日进行一次驱动,该周期性任务的驱动频率为每n月驱动一次;(n、m、a、x均代表不特定的数量)

03-03-d)活动类型周期为里程碑:指定该周期性任务在里程碑活动始之前、开始之后、完成之前、完成之后的第n个工作日进行驱动,并且可以设置该里程碑是普通里程碑还是重要里程碑;整个软件研发流程有多少个里程碑该周期性任务就有多少个;(n代表不特定的数量)

03-03-e)活动类型周期为阶段:指定该周期性任务是在每个阶段开始之前、开始之后、完成之前、完成之后的第n个工作日进行驱动,并且可以设置该周期性任务是按照计划日期驱动还是按照实际日期驱动;该周期性任务的驱动频率为每个阶段驱动一次;(n代表不特定的数量)

03-03-f)活动类型周期为基于某活动类型:提供18种活动类型,包括编写、核查、测试执行、质量保证、会议、评审、项目管理、里程碑会议、日常活动、流程、报告、培训、测量、线下活动、关系人跟踪、关键依赖、承若、其他,并且能选择是在活动开始的时候进行该周期性任务的驱动还是在活动结束的时候进行该周期性任务的驱动。

作为本发明的一种优选方案,所述研发任务分配模块用以每间隔设定时间为不同人员自动更新研发任务;

对于软件计划中需要多人完成的活动,提供负责人和参与人的设置;任务负责人具有在任务驱动出来后进一步为任务参与人分配任务的权限;

具有任务分配权限的任务负责人登陆该系统后,该系统将为其自动驱动出的一个任务名称为“活动名称-任务分配”的任务;

人工介入任务分配进一步细化了软件研发任务,任务负责人能基于“fog数据”的粒度给相关的项目组成员分配研发任务;同样任务的执行人也能基于“fog数据”的粒度进行任务执行操作;

任务再分配流程描述如下:

04-01)编写任务的负责人在本系统中将待编写的数据的输入以fog数据的粒度分配给编写任务的参与人;

04-02)收到任务的参与人分别在本系统中按其收到的编写任务、以输入fog数据为依据,编写相应的fog数据;

04-03)每个参与人编写完成各个fog数据后,逐个提交fog数据;

04-04)核查任务的负责人会在本系统中自动收到已有新完成的fog数据的提示,该负责人将该fog数据分配给核查任务的某个参与人;

04-05)核查任务的参与人会在本系统中收到已有新的fog数据分配给自己核查的提示,对收到的fog数据进行核查;

04-06)各个核查参与人在完成自己的fog数据核查后逐个提交。

本发明的有益效果在于:本发明提出的基于流程驱动研发任务的方法及系统,可根据软件研发流程自动生成研发任务,提高任务分配效率及精确度。

可以在该发明系统内进行具体的任务执行,任务执行所产生的数据全都存储在该系统中,便于软件研发数据的统一管理和维护。

基于本系统采用的数据驱动的任务驱动方式更加有利于并行工作的开展,提高研发工作的效率。

此外,本系统支持任务执行时的再分配功能,从而一方面保证了项目整体进度计划的稳定性,另一方面还提高了任务分配的灵活性,大大提高了项目研发活动的效率。

附图说明

图1为本发明系统的组成示意图。

图2为本发明基于流程驱动研发任务方法的流程图。

图3为本发明软件研发流程框架的示意图。

图4为本发明生产的软件项目计划的示意图。

图5为本发明方法驱动的可执行任务的示意图。

图6为本发明方法设置前置活动驱动的流程图。

图7为本发明方法数据驱动实现并行化的流程图。

图8为本发明方法任务再分配的流程图。

具体实施方式

下面结合附图详细说明本发明的优选实施例。

实施例一

请参阅图2,本发明揭示了一种基于流程驱动研发任务的方法和系统,根据项目定制好的流程数据一步步把软件研发流程中涉及到的所有研发活动精确的驱动出来,研发活动经过细化形成研发任务分配到相应的项目组成员。具体包括:解析项目预设好的流程数据,当满足活动的前置要求、限制类型及延迟间隔及活动的计划开始时间时,系统驱动该研发活动,并根据研发活动的种类,将研发活动按照系统预设的分类,将活动分解成为一个或多个研发任务,并将研发任务分配给活动的负责人和参与人。

例如预设项目流程数据包含研发活动a、研发活动b,其中,研发活动b的前置活动为研发活动a(类型:完成—开始),那么当研发活动a完成时,系统自动驱动研发活动b,并将研发活动b按照系统预设的活动分类细化成为一个或多个研发任务,并将研发任务分配给研发活动b的负责人和参与人。

所述基于流程驱动研发任务的方法(驱动研发任务指:根据定义好的软件研发流程自动生成/分配研发任务)具体包括如下步骤:

【步骤s01】软件研发流程定制与实例化为软件项目计划。

将承担项目的组织机构的软件研发流程框架及其相关的数据内嵌在系统中,内嵌的研发流程框架和相关数据来自于先前项目积累的历史数据积累、组织创建的标准规程指南等。

组织资产中的标准软件研发流程框架,包含软件过程、各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出。在具体的项目立项后,需要依据本项目的特点,在标准软件研发数据的基础上进行个性化定制和裁剪,可进行定制和裁剪的数据可以包括软件研发流程框架中的各项基本元素,如软件研发流程中包括的各个软件过程包括的活动、活动之间的关联关系、软件活动包括的任务、软件活动的输入输出等。软件研发流程框架示意图参见图3。

然后将定制化的软件研发流程框架拷贝到实际项目中,并为各研发活动指派活动的负责人和参与人及计划开始和完成的日期,从而生成软件项目计划。本系统生成的软件项目计划如图4所示。

【步骤s02】任务驱动设置步骤。

所有已定义好的软件生命周期活动(图4中显示不为粗体的每一行即可看成是一个活动)构成了软件项目计划,每个活动的名称、工时、工期、进度百分比、计划开始和结束时间、实际开始和结束时间,以及对应甘特图,都会相应的进行体现。项目负责人需要为每个活动分配相应的负责人和参与人。

设置负责人和参与人后,每个活动会根据已定义的计划开始时间、前置活动等条件,为活动的负责人和参与人驱动出如图5所示的可执行任务。

驱动出的可执行任务的内容包括任务编号、任务名称、任务类型、发起人、执行人、工作量分布类型、发起时间、计划开始日期、计划完成日期、实际开始日期、实际完成日期、计划工时、任务状态、已用工时……等,详细任务信息说明见表1。

表1本系统驱动的任务的详细说明

【步骤s03】驱动方式设置步骤。

本发明在综合考虑了在软件研发过程当中的种种复杂情况,为了及时地、高质量地交付软件,以满足软件项目资助方和最终用户的需求,那么软件开发研发过程当中的研发任务必须是灵活多变的,据此,在立足于软件研发流程的基础之上,本发明提供了三种研发任务的驱动场景:前置活动驱动、数据驱动、周期性驱动。

03-01)前置活动驱动:

前置活动驱动作为最简单也是最典型的驱动场景,即某某事情做完了,可以做某某事情,或者某某事情开始了,可以做某某事情。设置前置活动驱动的具体步骤参见图6。

基于图6对前置活动驱动的描述如下:

(1)添加前置活动:提供添加、删除和保存前置活动功能,供用户在设置前置活动时随时对前置活动进行添加、删除和保存操作。

添加:系统提供添加前置活动的功能,可以为某项活动选择项目计划中的其他活动为前置活动。一个活动可以添加多个前置活动,如添加了多个前置活动,多个前置活动均完成时,本项活动才具备被驱动的条件。

添加前置活动提供下拉列表选择,下拉列表里面包含了软件研发流程里面的所有活动。

添加前置活动时可以设置前置类型,前置类型包括“完成-开始(fs)”、“开始-开始(ss)”,“完成-开始(fs)”说明该活动的驱动的前提条件之一为该活动的前置活动的任务状态达到100%;“开始-开始(ss)”说明该活动的驱动的前提条件之一为该活动的前置活动已经驱动。

删除:在前置活动列表里面选择一条前置活动,进行删除操作后,系统将自动删除已选择的前置活动,并刷新前置活动列表。

保存:活动的前置活动设置完成以后,对软件研发流程进行保存操作,所做的设置即刻生效。

(2)设置限制类型及延迟间隔:提供活动限制类型的设置,活动的限制类型分为“越早越好”、“不得早于…开始”。当限制类型为“越早越好”,限制日期处于不能设置的状态;当活动的前置活动条件满足时,即驱动该活动,此时可能早于活动的计划开始日期。当限制类型为“不得早于…开始”,此时需要设置延迟间隔,对活动的驱动时间做进一步的限制;当活动的前置活动条件满足,并且到达了设置的延迟间隔日期,即驱动该活动。注:限制类型和前置活动的逻辑关系为与。

03-02)数据驱动:

在实际的软件研发过程当中,有些时候,虽然研发任务与研发任务之间,满足了前置条件、满足了时间准则等一些任务驱动的必要条件,但由于任务所需要的数据对象尚未完全准备好,所以还不能真正驱动任务。例如:任务a—编写软件高层需求;任务b—核查软件高层需求,即便将任务a和任务b的前置类型关系设置为“开始—开始”,但是如果任务a还没有产生高层需求数据,那么即便任务a和任务b是在同一时间被驱动出来,任务b在进行“核查软件高层需求-任务分配”的执行操作的时候是选不到具体的数据对象给相应的任务执行人,换个角度而言在这种情况之下即便任务b被驱动出来了,但是由于获取不到任务a的数据对象,故任务b可执行的迁移准则还是没有被满足。

由于通常软件需求等数据其开发工作很大、工期很长,实际项目中往往希望尽早开展需求的核查工作。也即,需要完成部分需求,即开展相应部分的核查。正如在第一部分现有技术缺点中描述的,这需要大量的人工沟通。本系统使用基于数据驱动的任务驱动方式来解决这一问题,自动化实现更高程度的任务执行的并行化;其功能实现如图7所示。

如图7,数据驱动实现并行化的过程如下:

03-02-01)将期望并行化的两个活动的前置活动类型设置为“开始-开始”,例如,活动a为编写软件需求,活动b为核查软件需求,期望核查软件需求能够与编写软件需求并行开始,则设置活动b的前置活动为活动a,并将前置类型设置为“开始-开始”,按项目期望设置按限制类型及延迟间隔;

03-02-02)在活动a满足驱动条件后,活动b与活动a同时驱动出来(或按限制类型及延迟间隔的时间活动b延迟相应时间驱动出来)。此时,尽管活动b同时与活动a驱动出来,但是实际上活动b无法真正执行,因为其执行的输入,是活动a的输出,此时活动a也刚刚驱动出来,尚未产生输出。需要说明的是,本系统中活动a和活动b的执行均是以fog数据的粒度进行,这也是数据驱动能够实现并行化的基础。

03-02-03)在活动a的子活动a1执行完成后,其输出a1提交,此时活动b获得了可以执行的输入,真正具备执行的条件,因此其子活动b1可以执行。在b1执行时,活动a可以继续执行其他子活动,如a2。即,此时自活动a2子活动b1实现了并行化执行。

03-03)周期性驱动:

在软件研发过程当中,很多工作任务都具有一定的周期性,例如:项目组成员每周需要填写工作周报,项目负责人需要每周对风险进行监控,sqa人员每周需要填写质量保证周报,项目负责人需要填写项目月报、阶段报……等。故本发明针对以上提到的一些周期性的工作任务,提供了周期性驱动任务的这一机制。

每一个活动都关联到了相对应的活动类型,通过设置活动类型的周期性即可确定该活动的周期性。本发明提供6种不同的周期性设置,每种不同的“活动类型周期”还可以进行细化的具体设置,如周期性是以自然日为计算周期还是以工作日为计算周期,通过各种设置的组合,本发明能实现所有复杂的周期性任务的驱动。具体6中设置如下:

03-03-a)活动类型周期为每日:可以设置周期性任务是每一天都进行驱动还是每一个工作日进行驱动。

03-03-b)活动类型周期为每周:可以指定该周期性任务在一作周内具体哪一天被驱动出来,该周期性任务的驱动频率为每周驱动一次。

03-03-c)活动类型周期为每月:可以指定该周期性任务在一个月内具体哪一天被驱动出来,该周期性任务的驱动频率为每月驱动一次。

03-03-d)活动类型周期为每里程碑:可以指定该周期性任务在里程碑以后或里程碑之前的任何一个工作日进行驱动,并且可以设置该里程碑是普通里程碑还是重要里程碑,在另一方面该周期性的任务的驱动方式还可以设置是按照计划日期进行驱动还是按照实际日期进行驱动。整个软件研发流程有多少个里程碑该周期性任务就有多少个。

03-03-e)活动类型周期为每阶段:可以指定该周期性任务是在每个阶段开始之前、开始之后、完成之前、完成之后的任何一个工作日进行驱动,并且可以设置该周期性任务是按照计划日期驱动还是按照实际日期驱动。该周期性任务的驱动频率为每个阶段驱动一次。

03-03-f)活动类型周期为基于某活动类型:提供18种活动类型(编写、核查、测试执行、质量保证、会议、评审、项目管理、里程碑会议、日常活动、流程、报告、培训、测量、线下活动、关系人跟踪、关键依赖、承若、其他),并且可以选择是在活动开始的时候进行该周期性任务的驱动还是在活动结束的时候进行该周期性任务的驱动。

【步骤s04】任务再分配步骤。

对于软件计划中需要多人完成的活动,本系统提供负责人和参与人的设置。任务负责人具有在任务驱动出来后进一步为任务参与人进一步分配任务的权限。

具有任务分配权限的任务负责人登陆该系统后,该系统将为其自动驱动出的一个任务名称为“活动名称-任务分配”的任务(如活动名称为:“开发软件设计”这样一个有负责人和参与人的活动,经过系统驱动生成的分配任务为“开发软件设计-任务分配”)。

人工介入任务分配进一步细化了软件研发任务,任务负责人能基于“fog数据”的粒度(图8中fog数据a、fog数据b、fog数据c……fog数据n)给相关的项目组成员分配研发任务。同样任务的执行人也能基于“fog数据”的粒度进行任务执行操作,例如:(图8中所展示的fog数据编写、fog数据提交、fog数据核查分配、fog数据核查等)。人工介入任务分配具体流程图参见图8。

图8中所示的任务再分配流程描述如下:

04-01)编写任务的负责人在本系统中将待编写的数据的输入(例如,待编写软件需求,其输入为系统需求)以fog数据的粒度分配给编写任务的参与人。

04-02)收到任务的参与人分别在本系统中按其收到的编写任务、以输入fog数据为依据,编写相应的fog数据(如,依据系统需求fog数据x编写软件需求数据a)。

04-03)每个参与人编写完成各个fog数据后,可以逐个提交fog数据。

04-04)核查任务的负责人会在本系统中自动收到已有新完成的fog数据的提示,该负责人可以讲该fog数据(如fog数据a)分配给核查任务的某个参与人。

04-05)核查任务的参与人会在本系统中收到已有新的fog数据分配给自己核查的提示,可以对收到的fog数据进行核查。

04-06)各个核查参与人在完成自己的fog数据核查后,可以逐个提交。

人工介入任务分配便于并行开展软件研发任务,以fog数据b从编写到提交(图8中所示蓝色流程)和fog数据c从编写到提交(图8中所示黄色流程)为例,对于“fog数据b”的流程操作完全不会影响“fog数据c”的流程操作。

实施例二

本发明揭示一种基于流程驱动研发任务的系统,所述系统包括:研发活动生成模块、任务驱动设置模块、驱动方式设置模块、研发任务分配模块。

【研发活动生成模块】

研发活动生成模块用以根据项目定制好的流程数据驱动出软件研发流程中涉及到的所有研发活动。

所述研发活动生成模块用以将承担项目的组织机构的软件研发流程框架及其相关的数据内嵌在驱动系统中,内嵌的研发流程框架和相关数据来自于先前项目积累的历史数据积累、组织创建的标准规程指南。

组织资产中的标准软件研发流程框架,包含软件过程、各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出。在具体的项目立项后,依据本项目的特点,在标准软件研发数据的基础上进行个性化定制和裁剪,可进行定制和裁剪的数据包括软件研发流程框架中的各项基本元素,包括软件研发流程中包含的各个软件过程包含的活动、活动之间的关联关系,以及软件活动包含的任务、软件活动的输入输出,然后将定制化的软件研发流程框架拷贝到实际项目中,并为各研发活动指派活动的负责人和参与人及计划开始和完成的日期,从而生成软件项目计划。

【任务驱动设置模块】

所述任务驱动设置模块用以设置任务驱动。

所有已定义好的软件生命周期活动构成了软件项目计划,每个活动的名称、工时、工期、进度百分比、计划开始和结束时间、实际开始和结束时间,以及对应甘特图,都会相应的进行体现;项目负责人为每个活动分配相应的负责人和参与人。

设置负责人和参与人后,每个活动会根据已定义的计划开始时间、前置活动条件,为活动的负责人和参与人驱动出可执行任务。

驱动出的可执行任务的内容包括任务编号、任务名称、任务类型、发起人、执行人、工作量分布类型、发起时间、计划开始日期、计划完成日期、实际开始日期、实际完成日期、计划工时、任务状态、已用工时。

【驱动方式设置模块】

驱动方式设置模块用以提供三种研发任务的驱动场景:前置活动驱动、数据驱动、周期性驱动。

(1)前置活动驱动作为最简单也是最典型的驱动场景,即第一事情做完了,才可以做第二事情,或者第一事情开始了,才可以做第二事情;

添加前置活动:提供添加、删除和保存前置活动功能,供用户在设置前置活动时随时对前置活动进行添加、删除和保存操作;系统提供添加前置活动的功能,为某项活动选择项目计划中的其他活动为前置活动;一个活动可以添加多个前置活动;添加前置活动提供下拉列表选择,下拉列表里面包含了软件研发流程里面的所有活动;

添加前置活动时设置前置类型,前置类型包括“完成-开始”、“开始-开始”,“完成-开始”说明该活动的驱动的前提条件之一为该活动的前置活动的任务状态达到100%;“开始-开始”说明该活动的驱动的前提条件之一为该活动的前置活动已经驱动;

删除前置活动:在前置活动列表里面选择一条前置活动,进行删除操作后,系统将自动删除已选择的前置活动,并刷新前置活动列表;

保存前置活动:活动的前置活动设置完成以后,对软件研发流程进行保存操作,所做的设置即刻生效;

设置延迟间隔:对活动驱动出任务的时间设置一个缓冲值,在满足相应类型的前置活动条件后,被驱动的任务将在该缓冲值的时间之后被驱动出来;

设置限制类型:提供前置活动限制类型的设置和前置活动限制日期的设置,活动的限制类型分为“越早越好”、“不得早于…开始”;当限制类型为“越早越好”,限制日期就处于不能设置的状态;当限制类型为“不得早于…开始”,这个时候就必须要指定一个具体的日期,对该活动驱动出任务的时间做进一步的限制;限制类型和前置活动的逻辑关系为与。

(2)数据驱动场景;

在实际的软件研发过程当中,有些时候,虽然研发任务与研发任务之间,满足任务驱动的必要条件,但由于任务所需要的数据对象尚未完全准备好,所以还不能真正驱动任务;任务驱动的必要条件包括前置条件、时间准则;

数据驱动实现并行化的过程如下:

将期望并行化的两个活动的前置活动类型设置为“开始-开始”,设置活动b的前置活动为活动a,并将前置类型设置为“开始-开始”,按项目期望设置按限制类型及延迟间隔;

在活动a满足驱动条件后,活动b与活动a同时驱动出来,或按限制类型及延迟间隔的时间,活动b延迟相应时间驱动出来;此时,尽管活动b同时与活动a驱动出来,但是实际上活动b无法真正执行,因为其执行的输入,是活动a的输出,此时活动a也刚刚驱动出来,尚未产生输出。需要说明的是,本系统中活动a和活动b的执行均是以fog数据的粒度进行,这也是数据驱动能够实现并行化的基础;

在活动a的子活动a1执行完成后,其输出a1提交,此时活动b获得了可以执行的输入,真正具备执行的条件,因此其子活动b1可以执行;在b1执行时,活动a可以继续执行其他子活动a2;即,此时子活动a2子活动b1实现了并行化执行。

(3)周期性驱动场景;

每一个活动都关联到了相对应的活动类型,通过设置活动类型的周期性即可确定该活动的周期性;提供6种不同的周期性设置,每种不同的“活动类型周期”还能进行细化的具体设置;具体6种设置如下:

03-03-a)活动类型周期为日:设置周期性任务是每n个工作日进行一次驱动;(n代表不特定的数量)

03-03-b)活动类型周期为周:指定该周期性任务在每n周的第m周的具体的哪一天进行一次驱动,或者是在每n周的第/倒数x个工作日进行一次驱动,该周期性任务的驱动频率为每n周驱动一次;(n、m、x均代表不特定的数量)

03-03-c)活动类型周期为月:指定该周期性任务在每n月的第m月的第a周的具体哪一天进行一次驱动,或者是每n月的第/倒数的x个工作日进行一次驱动,该周期性任务的驱动频率为每n月驱动一次;(n、m、a、x均代表不特定的数量)

03-03-d)活动类型周期为里程碑:指定该周期性任务在里程碑活动始之前、开始之后、完成之前、完成之后的第n个工作日进行驱动,并且可以设置该里程碑是普通里程碑还是重要里程碑;整个软件研发流程有多少个里程碑该周期性任务就有多少个;(n代表不特定的数量)

03-03-e)活动类型周期为阶段:指定该周期性任务是在每个阶段开始之前、开始之后、完成之前、完成之后的第n个工作日进行驱动,并且可以设置该周期性任务是按照计划日期驱动还是按照实际日期驱动;该周期性任务的驱动频率为每个阶段驱动一次;(n代表不特定的数量)

03-03-f)活动类型周期为基于某活动类型:提供18种活动类型,包括编写、核查、测试执行、质量保证、会议、评审、项目管理、里程碑会议、日常活动、流程、报告、培训、测量、线下活动、关系人跟踪、关键依赖、承若、其他,并且能选择是在活动开始的时候进行该周期性任务的驱动还是在活动结束的时候进行该周期性任务的驱动。

【研发任务分配模块】

所述研发任务分配模块用以每间隔设定时间为不同人员自动更新研发任务。对于软件计划中需要多人完成的活动,提供负责人和参与人的设置;任务负责人具有在任务驱动出来后进一步为任务参与人分配任务的权限。

具有任务分配权限的任务负责人登陆该系统后,该系统将为其自动驱动出的一个任务名称为“活动名称-任务分配”的任务。

人工介入任务分配进一步细化了软件研发任务,任务负责人能基于“fog数据”的粒度给相关的项目组成员分配研发任务;同样任务的执行人也能基于“fog数据”的粒度进行任务执行操作。

任务再分配流程描述如下:

04-01)编写任务的负责人在本系统中将待编写的数据的输入以fog数据的粒度分配给编写任务的参与人;

04-02)收到任务的参与人分别在本系统中按其收到的编写任务、以输入fog数据为依据,编写相应的fog数据;

04-03)每个参与人编写完成各个fog数据后,逐个提交fog数据;

04-04)核查任务的负责人会在本系统中自动收到已有新完成的fog数据的提示,该负责人将该fog数据分配给核查任务的某个参与人;

04-05)核查任务的参与人会在本系统中收到已有新的fog数据分配给自己核查的提示,对收到的fog数据进行核查;

04-06)各个核查参与人在完成自己的fog数据核查后逐个提交。

综上所述,本发明提出的基于流程驱动研发任务的方法及系统,可根据软件研发流程自动生成研发任务,提高任务分配效率及精确度。

这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1