掌桥专利:专业的专利平台
掌桥专利
首页

一种项目管理事项与代码提交的关联系统

文献发布时间:2024-01-17 01:27:33


一种项目管理事项与代码提交的关联系统

技术领域

本发明涉及项目管理与代码提交技术领域,尤其涉及一种项目管理事项与代码提交的关联系统。

背景技术

当前软件开发领域都会使用Subversion、Git等代码版本工具对代码进行管理,软件工程师通过一次次的代码提交(Commit)将自己的代码集成到团队的代码库。软件的需求、缺陷和项目中的任务都是通过这些代码提交完成或者修复的,即绝大多数的代码提交都会对应项目中的管理事项。但是目前市面上的项目管理系统中,管理事项与代码提交普遍缺乏明确的关联关系。用户无法直观地查找某一个事项(需求、任务、缺陷等)是由哪一次或几次代码提交完成和修复的。

现有项目管理与代码管理存在以下问题:

(1)编程人员的代码提交说明中,通常只写一两句内容,无法将代码完成的事项进行充分说明;

(2)当软件出现问题后,无法通过查找项目管理系统中出现问题的功能所对应的需求、任务、缺陷,直接定位到具体的代码提交。目前只能找到出现问题的功能所对应的代码模块或大体位置,阅读代码进行推断;

(3)项目管理人员统计某一个项目中编程人员的工作量,只能精确到该项目所有完成事项花费了多少工时,不能精确到代码的提交量,因此统计结果可能出现较大偏差。

可见,现有软件项目管理流程中,管理的事项(需求、惹任务、缺陷)和代码提交是割裂的,相互之间没有联系,不能实现对代码的有效管理。

发明内容

本发明的目的是为了解决现有技术中存在的缺点,而提出的一种项目管理事项与代码提交的关联系统。

为了实现上述目的,本发明采用了如下技术方案:

一种项目管理事项与代码提交的关联系统,包括代码库管理模块、代码提交检验模块、管理事项模块,所述代码库管理模块运转过程包括以下所述的技术方案:

系统维护了所有需要进行扫描关联的代码库列表,包括代码库地址和认证访问方式;

系统通过使用钩子(hook)或者客户端读取的方式,实时扫描、查询代码库中的代码提交记录;

如果发现代码库中有新的代码提交没有解析,则获取这些代码提交的说明和修改的代码内容;

依次解析所有代码提交的说明和代码内容,查找是否与某一个事项存在联系,如果确定存在,则将该代码提交与管理事项进行关联。

优选地,在判断代码提交和管理事项是否存在联系时,具体包括下述步骤:

解析代码提交说明,如果说明中提及了某一个管理事项的编号,则认为该次代码提交与此编号的管理事项存在关联关系;

解析提交的代码,如果代码注释中提及了某一个管理事项的编号,则认为该次代码提交与此编号的管理事项存在关联关系;

通过自然语言处理(NLP)将代码注释中的词汇与管理系统中所有的事项的标题进行匹配,相似度高的管理事项也会跟此次代码提交进行弱关联。

优选地,在确定代码提交和管理事项存在关联关系后,还包括以下步骤:

在数据库的关联表中存储代码提交的编号与管理事项的编号;

更新已经扫描过的最新代码提交,防止重复扫描;

所述项目管理事项模块,用于记录具体的管理事项(需求、任务、缺陷等)。

优选地,所述代码库管理模块,用于管理需要扫描的代码库;

所述代码提交检查模块,用于实时扫描、查询代码库中的代码提交说明和代码注释的收集,解析这些内容与项目管理事项是否存在关联。

本发明还提供一种计算机设备,其特征在于,采用了如下所述的技术方案:

包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的管理事项与代码提交进行关联方法的步骤。

本发明还提供一种计算机可读存储介质,采用了如下所述的技术方案,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的管理事项与代码提交进行关联方法的步骤。

本发明与现有技术相比,其有益效果为:

1、与现有技术相比,本发明允许用户阅读某次提交在项目管理系统中关联的需求、任务、缺陷,充分了解该提交的目的和改动细节。

2、与现有技术相比,本发明可以应用于当软件出现问题后,通过查找项目管理系统中出现问题的功能所对应的需求、任务、缺陷,直接定位到具体的代码提交。

3、本发明通过项目管理系统统计某一个产品或项目中编程人员的工作量时,可以统计产品下所有需求、缺陷或项目下所有任务涉及到的代码提交量,实现更为精确的工作量统计。

附图说明

图1为本发明提出的可以应用于其中的示例性系统架构图;

图2为本发明提出的管理事项与代码提交关联流程示意图;

图3为本发明提出的图2中步骤S203的关联关系检测方式的流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。

需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。

参照图1-3,一种项目管理事项与代码提交的关联系统,包括代码库管理模块,用于管理需要扫描的代码库;

代码提交检验模块用于实时扫描、查询代码库中的代码提交说明和代码注释的收集,解析这些内容与项目管理事项是否存在关联;管理事项模块,所述代码库管理模块运转过程包括以下所述的技术方案:

系统维护了所有需要进行扫描关联的代码库列表,包括代码库地址和认证访问方式;

系统通过使用钩子(hook)或者客户端读取的方式,实时扫描、查询代码库中的代码提交记录;

如果发现代码库中有新的代码提交没有解析,则获取这些代码提交的说明和修改的代码内容;

依次解析所有代码提交的说明和代码内容,查找是否与某一个事项存在联系,如果确定存在,则将该代码提交与管理事项进行关联。

在判断代码提交和管理事项是否存在联系时,具体包括下述步骤:

解析代码提交说明,如果说明中提及了某一个管理事项的编号,则认为该次代码提交与此编号的管理事项存在关联关系;

解析提交的代码,如果代码注释中提及了某一个管理事项的编号,则认为该次代码提交与此编号的管理事项存在关联关系;

通过自然语言处理(NLP)将代码注释中的词汇与管理系统中所有的事项的标题进行匹配,相似度高的管理事项也会跟此次代码提交进行弱关联,在确定代码提交和管理事项存在关联关系后,还包括以下步骤:

在数据库的关联表中存储代码提交的编号与管理事项的编号;

更新已经扫描过的最新代码提交,防止重复扫描;

所述项目管理事项模块,用于记录具体的管理事项(需求、任务、缺陷等)。

本发明还提供一种计算机设备,其特征在于,采用了如下所述的技术方案:

包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的管理事项与代码提交进行关联方法的步骤。

本发明还提供一种计算机可读存储介质,采用了如下所述的技术方案,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的管理事项与代码提交进行关联方法的步骤。

如图1-3所示内容,为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整的描述。

首先,针对本申请实施例中涉及的名词进行简单介绍:

代码库:软件产品的功能都是通过编程代码实现的,团队会使用统一的代码服务器存储该产品的相关代码,使用的管理系统即代码库。

代码提交:软件工程师在编写软件的代码后,需要将本次添加或修改的内容提交到代码库中。在提交的过程中,软件工程师需要填写该次提交的说明。因此代码提交包括两个部分,分别为代码内容和关于该代码内容的说明。

管理事项:项目管理领域的管理事项通常包括软件的需求、功能缺陷(Bug)以及项目的任务和待办。这些管理事项是项目管理的主要内容,团队成员通过维护管理事项来保证项目的正常进行。

结合上述名词解释和系统设计,对本申请实施例的系统架构进行说明。

如图1所示,该实施系统中包括代码库管理模块101,代码提交检查模块102,管理事项模块103。

软件工程师完成了某一个事项,将涉及的代码提交到代码库中。比如软件工程师完成了编号为137的任务。那么该编程人员在编写的代码提交说明中可以加入“完成了任务#137”或者“Finish task#137”等内容。

需要说明的是,代码库模块101可以作为管理系统的一部分,也可以作为第三方软件集成到项目管理系统中。

代码检查模块102通过钩子或周期访问的方式,获取代码提交记录。如果发现有未解析过的代码提交,通过代码检查模块解析判断与管理事项是否存在关联关系。

管理事项模块103维护了系统的所有管理事项,如果代码提交与管理事项存在关联关系,则该模块通过关联事项编号和代码提交的编号进行关联并存储在模块的数据库内。

请参考图2,其示出了本申请一个示例性实施例提供的管理事项与代码提交方法的实现流程图,在本申请实施例中,以该方法应用于终端中进行说明,该方法包括:

步骤S201:系统扫描查找代码库中最新的代码提交。

系统扫描的代码库为代码库管理模块中维护的代码库列表,扫描的方式可以通过代码库钩子机制(推送)或者周期性访问(获取)。

通常系统会记录最新已扫描的编号,在此基础上对增量的代码提交进行扫描。

步骤S202:代码提交检查模块发现有未扫描过的代码提交,则从代码库同步这些代码提交的说明和代码改动。

步骤S203:通过解析引擎匹配代码提交说明、代码内容与管理事项的关联关系。

在本申请的实施例中,可以解析代码提交说明来确定是否提及某个管理事项。参考图3的S301,比如一次代码提交说明为“完成了任务137”或者“Finish task#137”,系统会提取到编号为137的任务,然后认为任务137与该次代码提交有关联关系;

系统也会解析代码的注释内容,参考图3的S302。如果发现代码注释中提及某一个关联事项,比如“任务137”,则系统将任务137与该次代码提交进行关联;

参考图3的S303,系统进一步通过解析引擎的自然语言处理(NLP)将代码提交说明和注释的词汇与事项进行匹配。比如一次代码提交的说明为“完成了微信登录页面”,系统会认为该次代码提交与系统中的一个名为“集成微信登录作为快捷登录方式”的任务存在弱关联关系。

步骤S204:将存在关联关系的事项与代码提交编号进行存储,并提供查询服务。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

相关技术
  • 一种基于代码更改关键类判定的代码提交注释预测方法
  • 一种基于代码提交的软件知识图谱增量更新方法
技术分类

06120116224146