1 引言
随着企业人员规模的增长和业务的快速扩张以及互联网时代产品的快速更新迭代,企业需要开发和迭代越来越多的产品。企业要利用现代化信息管理方式,来实现人力和效能的高效管理[1]。传统项目管理方式采用单点式系统架构,所涉及到业务模块打包在一个项目中,可扩展性较差,无法满足产品的性质及开发要求的多样性和差异性。本文基于微服务架构,设计了面向互联网企业的研发效率平台,解决了企业研发过程管理中的效能透明问题,从而提高企业的研发效率。
2 相关技术介绍
2.1 SpringBoot简介
SpringBoot是目前Java后端流行的一种框架,它大大简化了Spring应用的开发步骤以及减少了代码所需的相应的配置文件,并且可以实现自动化配置[2]。
2.2 Mybatis简介
Mybatis是目前流行的一种Java持久层架构,它支持自定义SQL及存储过程等,是关系型数据库与面向对象应用程序连接的桥梁[3-4]。
2.3 Dubbo简介
Dubbo是Apache的一款微服务开发框架,其具有RPC通信及微服务治理等功能[5]。其架构如图1所示:
图1 dubbo架构
3. 系统设计
3.1 系统总体设计
本系统采用dubbo微服务架构,业务上分为任务、需求及项目三大子系统。三者的区别主要是根据研发侧工作量来确定,见表1
表 1 不同类型研发工作量
由上表可知,任务子系统适用于研发比较简单的功能,需求子系统适用于研发工作量中等的功能,而项目子系统适用于研发工作量较大的功能。
本系统采用微服务架构模式,系统的总体设计框架如图2所示:
图2 总体设计框架
3.2 功能设计
该系统包含任务子系统、需求子系统及项目子系统,系统功能如如图3所示。
图3 系统功能图
任务子系统的功能描述如下:
(1)创建任务:用户可以根据自己的工
作要求创建对应的任务。具体任务字段包括任务名称、计划开始时间、计划结束时间、备注等,此时任务处于未进行状态。
(2)修改任务:在任务处于未进行状态时,可以修改任务名称等各项基本信息。
(3)删除任务:在任务处于未进行状态时,用户可以删除创建的任务。
(4)拖动任务:当用户开始任务时,需要将任务由未进行状态拖动到进行中状态。当用户完成该任务时,需要将任务由进行中状态拖动到已完成状态。
(5)任务统计:可以从个人及部门维度统计任务相关的数据,例如任务完成数以及延期率等,其中延期率计算公式如下:
延期率=(结束时间-开始时间)/计划时间
需求子系统的功能描述如下:
(1)创建需求:当用户的研发工作量在1到5(人/日)间时,需要创建对应的需求。需求的基本字段包括需求名称,需求简介,计划开始时间,计划结束时间等。此时需求未进行状态。
(2)修改需求:当需求处于未进行状态时,可以修改需求基本信息。
(3)删除需求:当需求处于未进行状态时,可以删除对应的需求。
(4)需求排期:跟任务所不同的是需求需要进行排期,这是因为需求所需要的工时相对较长。排期的作用是根据重要程度对需求进行优先级的排列。
(5)需求统计:该功能模块可以统计个人及所在的部门完成的需求个数及延期率等指标,其中延期率的计算方法同任务。
项目子系统的功能描述如下:
(1)创建项目:当用户的研发工作量大于5(人/日),需要创建对应的项目。一个项目由若干个任务及需求组成。项目的基本字段包括项目的名称,简介,计划开始时间,计划结束时间等。此时项目处于未进行状态。
(2)修改项目:当项目处于未进行状态时,可以修改项目的基本信息。
(3)删除项目:当项目处于未进行状态时,可以删除对应的项目。
(4)项目里程碑:由于项目所需要的研发时间较长,需要制定出项目的里程碑,包括里程碑的名称及里程碑的计划开始时间和计划结束时间。
(5)项目统计:利用该模块可以统计出个人及所在部门完成的项目数以及项目的延期率。其中项目的延期率包括总体延期率及各个里程碑的延期率。
4 数据库设计
数据库使用的是mysql5.6,由对系统设计分析可知,系统数据库主要包含任务、需求及项目等实体,其中项目和任务、需求是一对多的关系,关系图如下所示:
图4 数据库关系图
系统主要涉及到的表如下:
task表(任务表),主要涉及到的字段有:name(任务名称)、start_time(任务计划开始时间)、end_time(任务计划结束时间)、remark(备注)、real_start_time(任务实际开始时间)、real_end_time(任务实际结束时间)、project_id(所属项目的主键id)、status(任务状态)。
demand表(需求表),主要涉及到的字段有:name(需求名称)、description(需求描述)、status(需求状态)、sequence(需求优先级排期)、project_id(所属项目的主键id)、status(需求状态)、start_time(需求计划开始时间)、end_time(需求计划结束时间)、real_start_time(需求实际开始时间)、real_end_time(需求实际结束时间)。
project表(项目表),主要涉及到的字段有:name(项目名称)、description(项目描述)、status(项目状态)、start_time(项目计划开始时间)、end_time(项目计划结束时间)、real_start_time(项目实际开始时间)、real_end_time(项目实际结束时间)。
project_milestone(项目里程碑表),主要涉及到的字段有:project_id(所属项目的主键id)、name(里程碑名称)、start_time(里程碑计划开始时间)、end_time(里程碑计划结束时间)、real_start_time(里程碑实际开始时间)、real_end_time(里程碑实际结束时间)。
5 总结
本文主要介绍了基于微服务架构的研发效率平台系统的功能设计与数据库设计。本系统利用微服务架构,拆分成任务、需求及项目三个子系统,在代码上实现了各个功能模块的解耦性[6],从而增加了系统的可扩展性。本系统从功能和架构方面为互联网企业解决了效能透明问题,从而使得人力效能最大化。
参考文献:
[1] 夏燕.中小型科技企业人力资源管理效能的路径研究—以OA办公软件开发公司为例[J].办公自动化,2022,27(03):9-11.
[2] 齐保峰,张毛毛,蔡鲲鹏,陈宇琪.基于SpringBoot的自助洗车店运营系统设计[J].电脑知识与技术,2021,17(12):33-35.
[3] 单树倩,任佳勋.基于SpringBoot和Vue框架的数据库原理网站设计与实现[J].电脑知识与术,2021,17(30):40-41.
[4] 张恒铭.基于SpringBoot+MyBatis框架的高校人事信息发布系统设计与实现[J].电脑知识与技术,2020,16(18):68-70.
[5] 苏树鹏.Dubbo架构在大型电商平台的应用[J].福建电脑,2021,37(10):74-77.
[6] 姚艳,牛明雷,孙法军,姚京婵,常晓燕.基于微服务架构的农业转移支付项目管理系统设计与实现[J].中国农业科学, 2021,54(15) 3207-321: 8.
作者简介:
作者姓名:胡越(1992-),男(汉族),安徽省马鞍山市人,硕士研究生,主要研究领域为软件开发。