软件开发的任务调度方法及装置与流程

文档序号:11949498阅读:275来源:国知局
软件开发的任务调度方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种软件开发的任务调度方法及装置。



背景技术:

随着互联网技术的发展和变革,技术语境也随之发生改变。互联网的发展从以技术为主导逐渐转化为以用户体验为主导。为了能够快速响应用户需求,软件的快速更新迭代正日益成为常态。为了能够使得软件开发迭代周期缩短,众多开发团队逐渐放弃传统的软件开发模式转而采取敏捷开发模式。每周推出一个版本或者每周推出多个版本愈发成为开发常态,同时一个开发团队还可能同时迭代开发多个项目,每个项目由多个成员合作完成,所以更加需要一个优良的项目管理平台以此作为保持高效开发效率的保证。基于持续集成(其为一种软件开发实践,即团队开发成员经常集成各自的工作,每次集成都通过自动化的构建(包括:编译,发布,自动化测试)来验证,一方面能够尽快地发现集成错误,另一方面还可以将构建、回归测试重复的动作都变成自动化的,无需太多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上)的通用版本管理平台便是为了提供一个通用的、高自动化的版本管理平台,其通常具备技术优势:第一,使得开发人员和测试人员从大量的重复工作和沟通工作中解脱出来,进而更专注于产品研发;第二,便于项目成员和管理人员高效便捷地参与和管理整个项目的推进;第三,满足于不同项目的流程需求。

目前,相关技术中所提供的版本管理方案主要包括以下两种方式:

第一种方式以人工管理为主,通过产品经理和项目经理的主动沟通来了解整个项目的开发迭代进度。

然而,此种方案存在如下明显缺陷:首先,通过人工管理的方式管理效率低下,项目管理人员需要通过主动接触项目内的开发人员、测试人员来保证项目开发进度,双方都需要耗费大量的交流成本;其次,项目内的流程之间需要多人合作,而不同职能人员难以快速地了解项目的开发迭代进度,由此导致需要大量的沟通交流方能推动项目的进行;第三,人工管理容易存在失误和遗漏的情况;第四,项目管理人员需要为每个项目定制专门的流程;第五,流程不清晰,使得项目组中的新成员难以快速了解项目开发的全流程;第六,流程中依然存在大量重复性的工作,例如:软件的构建、打包、回归测试等。

第二种方式是借助Redmine(其利用Ruby开发的基于web的项目管理软件,通过“项目(Project)”的形式将成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度)等项目管理软件进行版本管理。这种项目管理软件通常将每个迭代周期划分为项目开发、项目测试、漏洞(bug)修复等阶段进行版本管理,项目中各职能成员以完成各自任务的形式参与项目推进。开发者和管理者都能够通过项目管理软件的用户界面(UI)便能够了解到项目的推进情况。

此种方案相比于以人工管理为主的方案而言,首先使用项目管理软件可以使项目的所有人员都能够通过UI了解到项目的整体开发迭代进度,进而使得管理者能够更便捷地管理项目。然而,此种方案仍然存在如下明显缺陷:这种项目管理软件的流程之间缺乏耦合,流程合作仍然需要通过大量的沟通来完成;同时,流程中存在大量重复性工作的问题仍然没有得到解决。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种软件开发的任务调度方法及装置,以至少解决相关技术中所提供的版本管理方式在对应项目的各个流程之间缺乏耦合,需要人工交流来辅助完成的技术问题。

根据本发明实施例的一个方面,提供了一种软件开发的任务调度方法,包括:

在确定建立软件开发项目的版本管理计划的触发下,从预设存储区域获取与当前版本管理计划相对应的软件开发项目的配置信息;按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程。

可选地,上述配置信息包括:在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息;按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程包括:按照软件迭代开发流程信息中设定的待执行流程数量创建软件迭代开发流程;根据流程调度信息中设定的执行顺序依次执行软件迭代开发流程。

可选地,上述配置信息包括:待通知的指定用户信息;根据执行顺序依次执行软件迭代开发流程包括:按照执行顺序执行当前软件迭代开发流程;在每次对当前软件迭代开发流程执行完毕后,按照待通知的指定用户信息通过预设用户界面向指定用户发送通知消息;在指定用户返回的确认消息的触发下,按照执行顺序继续执行下一个软件迭代开发流程,并在预设存储区域中持续更新软件迭代开发流程的处理进度信息。

可选地,按照执行顺序执行当前软件迭代开发流程包括:通过执行顺序确定当前软件迭代开发流程的流程标识;根据流程标识判断是否需要通过第一预设接口调用预先采用持续集成工具构建的任务,其中,任务用于自动执行预先设定的重复性工作。

可选地,在按照执行顺序执行当前软件迭代开发流程之前,还包括:通过第二预设接口调用项目管理系统,追踪与软件开发项目对应的项目完成情况。

可选地,按照配置信息执行软件开发项目所需经历的软件迭代开发流程还包括:从预设存储区域获取处理进度信息以及根据当前版本持续集成确定当前版本标识;将当前版本标识和处理进度信息发送至预设用户界面。

根据本发明实施例的另一方面,还提供了一种软件开发的任务调度装置,包括:

获取模块,用于在确定建立软件开发项目的版本管理计划的触发下,从预设存储区域获取与当前版本管理计划相对应的软件开发项目的配置信息;处理模块,用于按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程。

可选地,上述配置信息包括:在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息;处理模块包括:创建单元,用于按照软件迭代开发流程信息中设定的待执行流程数量创建软件迭代开发流程;执行单元,用于根据流程调度信息中设定的执行顺序依次执行软件迭代开发流程。

可选地,上述配置信息包括:待通知的指定用户信息;执行单元包括:执行子单元,用于按照执行顺序执行当前软件迭代开发流程;通知子单元,用于在每次对当前软件迭代开发流程执行完毕后,按照待通知的指定用户信息通过预设用户界面向指定用户发送通知消息;处理子单元,用于在指定用户返回的确认消息的触发下,按照执行顺序继续执行下一个软件迭代开发流程,并在预设存储区域中持续更新软件迭代开发流程的处理进度信息。

可选地,执行子单元,用于通过执行顺序确定当前软件迭代开发流程的流程标识,并根据流程标识判断是否需要通过第一预设接口调用预先采用持续集成工具构建的任务,其中,任务用于自动执行预先设定的重复性工作。

可选地,执行单元还包括:追踪子单元,用于通过第二预设接口调用项目管理系统,追踪与软件开发项目对应的项目完成情况。

可选地,处理模块还包括:处理单元,用于从预设存储区域获取处理进度信息以及根据当前版本持续集成确定当前版本标识;发送单元,用于将当前版本标识和处理进度信息发送至预设用户界面。

在本发明实施例中,采用在预设存储区域预先设置完成与当前版本管理计划对应软件开发项目的配置信息的方式,通过在确定建立软件开发项目的版本管理计划的触发下,从预设存储区域获取与当前版本管理计划对应软件开发项目的配置信息以及按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程,从而实现了提高版本管理的人员协作效率,降低版本管理的人员沟通成本的技术效果,进而解决了相关技术中所提供的版本管理方式在对应项目的各个流程之间缺乏耦合,需要人工交流来辅助完成的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的软件开发的任务调度方法的流程图;

图2是根据本发明实施例的软件开发的任务调度装置的结构框图;

图3是根据本发明优选实施例的软件开发的任务调度装置的结构框图;

图4是根据本发明优选实施例的软件开发的任务调度装置的架构示意图;

图5是根据本发明优选实施例的基于图4的配置信息的配置过程示意图;

图6是根据本发明优选实施例的基于图4的按照配置信息创建对应流程的示意图;

图7是根据本发明优选实施例的基于图4的按照配置信息执行对应流程的示意图;

图8是根据本发明优选实施例的基于图4的按照配置信息发送通知消息的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种软件开发的任务调度方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的软件开发的任务调度方法的流程图,如图1所示,该方法包括如下步骤:

步骤S12,在确定建立软件开发项目的版本管理计划的触发下,从预设存储区域获取与当前版本管理计划相对应的软件开发项目的配置信息;

步骤S14,按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程。

通过上述步骤,通过在确定建立软件开发项目的版本管理计划的触发下,从预设存储区域获取与当前版本管理计划对应软件开发项目的配置信息以及按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程,从而实现了提高版本管理的人员协作效率,降低版本管理的人员沟通成本的技术效果,进而解决了相关技术中所提供的版本管理方式在对应项目的各个流程之间缺乏耦合,需要人工交流来辅助完成的技术问题。

可选地,上述配置信息可以包括:在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息;在步骤S14中,按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程可以包括以下执行步骤:

步骤S141,按照软件迭代开发流程信息中设定的待执行流程数量创建软件迭代开发流程;

步骤S142,根据流程调度信息中设定的执行顺序依次执行软件迭代开发流程。

在现存项目管理流程中,开发组内可能存在数量众多的项目,每个项目可能还需要执行差异化的流程,由此需要基于项目管理平台定制差异化流程。在本发明提供的优选实施例中,项目管理人员可以预先配置、查看、修改每个项目对应的配置信息(包括:在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息),该配置信息会被存储于特定区域(例如:数据库)中。在新建版本管理计划时,可以从数据库中获取每个项目对应的在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息,进而在版本执行过程中,根据在软件开发项目中待执行的软件迭代开发流程信息创建各个流程(包括:分支确认、QA测试、回归测试、上线检查、线上确认、测试报告撰写等),并根据流程调度信息(即每个流程的执行顺序是预先配置完成的,当一个流程执行完成后,才会按照上述执行顺序开始执行下一个流程,而这些流程的完成状态是用户通过预设界面确认完成的)调度各个流程的执行。

可选地,上述配置信息可以包括:待通知的指定用户信息;在步骤S142中,根据执行顺序依次执行软件迭代开发流程可以包括以下执行步骤:

步骤S1421,按照执行顺序执行当前软件迭代开发流程;

步骤S1422,在每次对当前软件迭代开发流程执行完毕后,按照待通知的指定用户信息通过预设用户界面向指定用户发送通知消息;

步骤S1423,在指定用户返回的确认消息的触发下,按照执行顺序继续执行下一个软件迭代开发流程,并在预设存储区域中持续更新软件迭代开发流程的处理进度信息。

由于每个项目由多个职能的成员协作完成,相关技术中所提供的版本管理方案并没有设置一个高效地信息交流方式,导致协作效率降低。对此,在优选实施例中,当该项目的一个版本管理计划建立完成后,在每个流程执行结束后,可以根据待通知的指定用户信息通过预设用户界面(例如:Web端)通知和提醒相关项目成员。在相关职能人员确认其中任一流程完成后,根据流程执行顺序继续调用下一流程,并不断更新数据库中的流程状态信息。

在优选实施过程中,可以通过django、Flask等前端框架实现Web前端功能。

可选地,在步骤S1421中,按照执行顺序执行当前软件迭代开发流程可以包括以下执行步骤:

步骤S14211,通过执行顺序确定当前软件迭代开发流程的流程标识;

步骤S14212,根据流程标识判断是否需要通过第一预设接口调用预先采用持续集成工具构建的任务,其中,任务用于自动执行预先设定的重复性工作。

在现存项目管理流程中存在着大量的重复性工作,消耗着开发人员和测试人员精力。对此,本发明优选实施例基于持续集成的通用版本管理平台,在上述各个流程所包含的能够单独执行并能够调用jenkins(其为基于Java开发的一种持续集成工具,用于监控持续重复的工作)的流程的执行过程中,会通过外部系统接口(相当于上述第一预设接口)调用jenkins,从而使得一些重复性工作(例如:构建、回归测试)能够伴随着流程的推进而自动执行,进而通过持续集成工具的集成,使得项目成员从大量的重复工作中解脱出来,更专注于产品质量,并且缩短测试时间。

作为本发明优选实施例的一个可替代方案,通过jenkins实现的持续集成功能也可以通过CruiseControl,Continuum等持续集成工具来实现。

可选地,在步骤S1421,按照执行顺序执行当前软件迭代开发流程之前,还可以包括以下执行步骤:

步骤S1420,通过第二预设接口调用项目管理系统,追踪与软件开发项目对应的项目完成情况。

当该项目的一个版本管理计划建立完成后,可以通过调用外部系统接口(相当于上述第二预设接口)与项目管理系统(例如:redmine)互动,获取该版本的项目完成情况(包括但不限于:项目各个工作环节的具体任务,每个任务所消耗的具体时间,在项目进行过程中执行过更新操作的更新人员信息以及更新时间信息),并以此作为版本管理的源头。

可选地,在步骤S14中,按照配置信息执行软件开发项目所需经历的软件迭代开发流程还可以包括以下执行步骤:

步骤S140,从预设存储区域获取处理进度信息以及根据当前版本持续集成确定当前版本标识;将当前版本标识和处理进度信息发送至预设用户界面。

在版本的执行过程中,还可以在Web端显示整个版本的开发迭代进度,以便于项目成员快速了解版本进度。

根据本发明实施例,还提供了一种软件开发的任务调度装置的实施例。图2是根据本发明实施例的软件开发的任务调度装置的结构框图。如图2所示,该装置可以包括:获取模块10,用于在确定建立软件开发项目的版本管理计划的触发下,从预设存储区域获取与当前版本管理计划相对应的软件开发项目的配置信息;处理模块20,用于按照配置信息创建并执行软件开发项目所需经历的软件迭代开发流程。

可选地,图3是根据本发明优选实施例的软件开发的任务调度装置的结构框图。如图3所示,上述配置信息包括:在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息;处理模块20可以包括:创建单元200,用于按照软件迭代开发流程信息中设定的待执行流程数量创建软件迭代开发流程;执行单元202,用于根据流程调度信息中设定的执行顺序依次执行软件迭代开发流程。

可选地,上述配置信息包括:待通知的指定用户信息;执行单元202可以包括:执行子单元(图中未示出),用于按照执行顺序执行当前软件迭代开发流程;通知子单元(图中未示出),用于在每次对当前软件迭代开发流程执行完毕后,按照待通知的指定用户信息通过预设用户界面向指定用户发送通知消息;处理子单元(图中未示出),用于在指定用户返回的确认消息的触发下,按照执行顺序继续执行下一个软件迭代开发流程,并在预设存储区域中持续更新软件迭代开发流程的处理进度信息。

可选地,执行子单元(图中未示出),用于通过执行顺序确定当前软件迭代开发流程的流程标识,并根据流程标识判断是否需要通过第一预设接口调用预先采用持续集成工具构建的任务,其中,任务用于自动执行预先设定的重复性工作。

可选地,执行单元202还可以包括:追踪子单元(图中未示出),用于通过第二预设接口调用项目管理系统,追踪与软件开发项目对应的项目完成情况。

可选地,如图3所示,处理模块20还可以包括:处理单元204,用于从预设存储区域获取处理进度信息以及根据当前版本持续集成确定当前版本标识;发送单元206,用于将当前版本标识和处理进度信息发送至预设用户界面。

下面将结合以下几个优选实施方式对上述优选实施过程作进一步地描述。

图4是根据本发明优选实施例的软件开发的任务调度装置的架构示意图。如图4所示,该架构可以包括:项目配置模块(相当于上述获取模块),流程调度模块(相当于上述处理模块中的部分功能),外部系统接口模块(相当于上述处理模块中的部分功能),UI模块(相当于上述处理模块中的部分功能)和消息通知模块(相当于上述处理模块中的部分功能)。

该架构的工作原理如下:项目管理人员首先可以在项目配置模块中配置、查看、修改每个项目的流程配置信息(相当于上述在软件开发项目中待执行的软件迭代开发流程信息和流程调度信息)和消息通知配置信息(相当于上述待通知的指定用户信息),项目配置模块将单独为每个项目配置完成的流程配置信息和消息通知配置信息存储于数据库中。在新建版本管理计划时,流程调度模块可以从数据库中获取每个项目对应的流程配置信息和消息通知配置信息;在版本执行过程中,流程调度模块根据流程配置信息创建各个流程,并根据具体进度调度各个流程的执行。在上述各个流程所包含的能够单独执行并能够调用jenkins的流程的执行过程中,流程调度模块会通过外部系统接口模块调用jenkins,从而使得一些重复性工作(例如:构建、回归测试)能够伴随着流程的推进而自动执行,同时也会通过外部系统接口模块调用redmine,获取原始开发需求;此外,流程调度模块还可以根据版本的消息通知配置信息调用消息通知模块,在版本的不同阶段通知和提醒相关项目成员。最后,在版本的执行过程中,流程调度模块还会调用UI模块在Web端显示整个版本的开发迭代进度,以便于项目成员快速了解版本进度。

通过上述架构可以实现以下有益效果:

(1)通过在项目配置模块中配置、查看、修改每个项目的流程配置信息和消息通知配置信息,项目配置模块将单独为每个项目配置完成的流程配置信息和消息通知配置信息存储于数据库中可以使得本发明实施例所提供的技术方案适用于不同项目的需求。

(2)通过持续集成工具的集成,使得项目成员从大量的重复工作中解脱出来,更专注于产品质量,并且缩短测试时间。

(3)通过消息通知机制的集成,使得成员合作之间的沟通成本大幅降低,进而缩短整个测试流程的时间。

图5是根据本发明优选实施例的基于图4的配置信息的配置过程示意图。如图5所示,假如当前场景需要对新建项目project1进行版本管理,作为测试人员或项目管理人员首先需要登陆基于持续集成的通用版本管理平台编辑与project1对应的流程配置信息和消息通知配置信息,其需要配置的内容可以包括但不限于以下至少之一:项目所需经历的流程、流程调度顺序、各个流程的通知人员名单。这些项目配置通过系统提供UI由项目管理人员根据项目需求定制或修改,并在后台保存至数据库中。

图6是根据本发明优选实施例的基于图4的按照配置信息创建对应流程的示意图。如图6所示,在新建项目project1配置完成后,当测试人员或项目管理人员建立该项目的特定版本管理计划时,流程调度模块将从数据库中获取该版本对应项目的流程配置信息和消息通知配置信息,并根据流程配置信息为该版本生成对应的流程。这样实现的目的在于:能够适应不同的项目需求,保持对开发流程快速变化的适配性。

图7是根据本发明优选实施例的基于图4的按照配置信息执行对应流程的示意图。如图7所示,当该项目的一个版本管理计划建立完成后,流程调度模块首先会通过外部系统接口模块调用redmine接口获取该版本的开发任务,以作为版本管理的源头。在版本执行过程中,在相关职能人员确认其中任一流程完成后,后台的流程调度模块将被触发,从数据库中获取该版本的流程顺序,并根据该流程顺序调用下一流程,最终以此更新数据库中的流程状态信息。在一些特定流程(例如:构建、触发)结束时,流程调度模块会通过外部系统接口模块调用jenkins,以完成一些重复性的工作,例如:在“分支确认”流程结束时,流程调度模块会通过外部系统接口模块调用jenkins进行代码的自动构建,以便于后续的QA测试流程的开展;在“代码合并至主分支”流程结束时,流程调度模块会通过外部系统接口模块调用jenkins进行自动回归测试。

图8是根据本发明优选实施例的基于图4的按照配置信息发送通知消息的示意图。如图8所示,当一个流程状态发生变化时,流程调度模块首先会从数据库中获取该版本对应项目的消息通知配置信息,并检测是否已经为该流程配置相关的负责人员和下一流程的负责人员;如果是,则会调用消息通知模块,将版本标识、流程状态等信息通过交流工具通知相关负责人员,以确保消息发送的及时性和准确性,从而降低沟通成本。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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