基于大数据平台的需求自动同步更新管理系统设计与研究

2023-09-06 08:08文聪敏刘乃新
现代信息科技 2023年14期
关键词:数据处理

文聪敏 刘乃新

摘  要:针对当前软件需求变更日渐增多但管理效率低下的现状,基于大数据平台计算能力强、成本低的特点建立需求自动同步更新管理系统,并从总体设计、需求数据库以及数据处理流程三个方面对其进行了阐述。该系统通过将繁杂需求进行标签化处理建立起需求数据库,通过总库分库存储模式完善数据处理机制,有效优化需求建立、测试和变更流程,实现需求的快速查找和自动更新同步,同时减少资源投入和资源浪费,从而加快项目的研发进程。

关键词:需求管理;数据处理;需求变更;软件生命周期

中图分类号:TP311     文献标识码:A   文章编号:2096-4706(2023)14-0007-05

Design and Research of Requirements Automatic Synchronous Update Management System Based on Big Data Platform

WEN Congmin1, LIU Naixin2

(1.Guangdong Polytechnic of Science and Technology, Zhuhai  519090, China;

2.TCL Cloud Internet Corporation Technology Co., Ltd., Huizhou  516001, China)

Abstract: In view of the current situation of increasing software demand changes and low management efficiency, based on the characteristics of strong computing power and low cost of the big data platform, an automatic demand synchronization update management system is established, and it is described from three aspects of overall design, demand database and data processing flow. The system establishes a requirement database by labeling complex requirements, and improves the data processing mechanism through the overall database and sub database storage mode. It effectively optimizes the process of requirement establishment, testing, and change, achieving rapid search and automatic update synchronization of requirements, while reducing resource investment and waste, thereby accelerating the research and development process of the project.

Keywords: requirement management; data processing; requirement change; software life cycle

0  引  言

随着现代信息技术的不断发展,需求管理作为软件生命周期的关键阶段,伴随系统规划和开发的全过程,一直是研究的热点方向[1]。Standish Group的调查表明,软件需求正不断增多且趋于复杂化。因此,准确高效管理日新月异的需求是软件成败的关键[2,3]。

1  研究背景

当前企业使用的主流需求管理系统主要存在以下局限性[4,5]:

1)基于单机的服务器运营成本高,长期工作后积累的大量数据经常导致卡顿、宕机等问题。

2)需求间关系基于系统分配的ID,关联查找困难。

3)需求同步完全依靠人工,存在大量冲突的需求。

4)测试情况总结依赖人力,且缺乏数学依据。

针对以上缺陷,利用大数据平台组建成本较低、计算能力优越的特点[6],建立基于需求内容的需求库,并完善其数据处理机制,使需求实现快速查找和自动更新同步,减少在需求管理中的资源投入和由于需求冲突导致的测试资源浪费,从而加快项目研发进程。

2  系统总体设计

基于大数据平台的需求自动同步更新管理系统主要针对需求的建立、实现和测试进行管理,其中系统数据库涉及需求、测试用例和功能测试时产生的问题等对象,并包含需求文档、测试log和系统运行中所产生的所有数据。下面将从项目流程、系统结构、数据模块和数据处理四个方面对系统的总体设计进行阐述。

2.1  项目流程

从项目研发角度看,项目流程主要分为立项、需求建立、需求开发、测试验证、问题追踪和项目总结六大模块[7]。系统在传统项目流程基础上额外增加变更同步模块和数据分析模块,如图1所示。改進后的系统充分考虑需求的更新同步,即使在项目进行中有数据更新,其相关数据也会在系统中同步;加入测试数据的分析和对测试策略和计划的评估预测,即在系统中,建立起关系型数据库,其数据的输出都带有详细的特性标签,这样大大增强了缺陷分析的数据维度,减少不同场景下可能出现的数据模型与场景不匹配而导致分析结果不准确的情况。

2.2  系统结构

系统主要分为:数据采集层、数据处理和存储层、应用层,如图2所示。最底层是数据采集层,负责对需求库所有源数据的录入采集,源数据主要有需求表格、用户留言、用户操作日志、需求附件、问题日志等一系列用以描述和帮助研发人员理解需求、修复问题的数据文件以及各个用户在应用层与系统交互时产生的各类数据。第二层的数据处理和存储层,负责对数据清洗、转换、入库和存储,从上层应用层或底层数据采集层得来的数据都需要经过第二层的处理,然后以既定的格式存储在数据库中。上层的应用层则是需求管理系統软件,是用户跟整个系统交互的窗口,用于实现项目的流程、图像化UI、数据统计和查询等功能。

图2  系统功能框架图

2.3  数据模块

从数据模块角度看,改进后系统的数据模块类型包括需求、测试用例和缺陷问题以及存储这些数据的关系型数据库、规范化测试流程和处理流程工作流等,各模块共同建立起测试工作相关环节完整的处理流程,使工作流自动在不同角色间流动,从而提高不同角色共同完成测试工作的效率,而且由于数据存储和处理能力的提升,数据处理和分析更加透明和透彻,为质量管控提供了更多依据。

2.4  数据处理

从需求管理系统的数据处理模块角度看,如图3所示,处理层次包括源数据、数据采集、数据处理、数据分析建模和应用服务;其任务栈分成了任务调度管理、接口管理、集群管理、订阅管理、元数据管理、权限管理和应用服务管理。相较于传统需求管理系统,改进后的系统增加了对数据的统计和建模,输出能够作为测试计划和测试执行指导的数据,相比旧系统,使测试过程更加的规范,大大降低了项目的测试风险。

3  需求数据库设计

3.1  需求点关系标签建立

建立需求数据库首先需要对需求源进行录入。以通信类公司为例,运营商客户所提供的需求源复杂多样。针对非图片或视频类的需求,使用内容提取的技术分离需求,图片类的则需要处理形成形式统一的文件审核录入。例如,针对秘鲁无线紧急警报(Wireless Emergency Alerts, WEA)的需求,其原始需求文件是一份详细描述其小区广播(Cell Broadcast, CB)的文档。对于秘鲁WEA需求,在将其录入需求管理系统前需设置“秘鲁”“CB”“WEA”“ALL”(需求属于秘鲁的法律要求,所以针对其国家内所有的运营商,以“ALL”代表)等标签。此后把文档中描述的预期行为转化成需求点或者测试场景,将这些分好类的信息按照特定的顺序进行排列,然后在系统中设置读取的顺序标签,即可将这些需求顺利录入系统。为更好地分类和快速查找需求,除了添加描述中的关键字,还会在录入系统后加入层层相互独立的标签,如图4所示。

图4  WEA需求点的关系型特征示意图

3.2  需求关系库表建立

经过上述过程的数据录入,各需求点已建立初步关系标签。系统在获取需求数据后,首先进行数据清洗,提取标签、特征、描述等有用信息,过滤用于标记、排序等的多余信息或重复的信息,去除结构化数据。之后进行数据转换,加入关系嵌套,建立起关系库表,并最终将其存放在分布式文件系统中。

过滤后的数据即可视为数据列表,系统将数据列表进行编码、类型和格式等的转换,方便系统存放和读取。为了数据的有序存储和快速查找,数据库建立起分类完善的关系模型,对每个特征有详细的标签嵌套。每个标签被视为数据列表中的一个特征值,这些特征值组建起数据库的关系模型。为了需求管理系统易用性考虑,需求文件在被导入系统后,系统即会生成导入结果的报告并立即生成需求列表。这些需求在系统中以数据块的形式存储,每个数据块被存放在不同的DataNode中。基于HDFS分布式虚拟文件系统,虚拟系统中的文件与其实际的存储数据呈现映射关系,映射表被存储在NameNode中。参考如图5所示的数据库文件访问流程[8],当用户查询需求时,需先访问NameNode,获取目标数据的数据块位置列表,根据该列表即可获取所需数据,即查询到目标需求。

3.3  需求项目库功能分类

当需求文件被拆分入库后,每个需求点或需求场景均被转换成了具有独立编号的需求,以保证每项需求都能在需求库中找到且开发和测试的工作能被追溯到,从而实现研发工作有迹可循,流程化和标准化。系统基于关系型数据库中需求添加的特征标签,利用MapReduce模型快速筛选统计出所需数据。该过程只需动用存储目标数据的少数数据节点,任务被分解为若干个小任务分配到相应物理机上,处理效率提升可观。

图5  数据库文件访问流程

此外,每个项目分库的需求经过功能分类,与测试小组职责进行关联,当需求被开发完毕后,系统会生成对应版本的需求报告表格,自动将测试任务分配到对应测试小组以待验证。既可以保证开发好的需求迅速得到验证,也节省了需求分类和任务分组的时间成本,大大提高需求测试效率。

4  数据处理流程

4.1  需求处理流程

系统数据库中基于Hadoop大数据平台建立如图6所示的基本功能需求总库和针对各个运营商的需求总库。前者针对各种未做定制的基本功能测试项,后者则包含各个客户运营商的需求项。当某一项目立项后,在其产品功能支持情况和目标出货上市客户运营商计划下,从总库中复用相应的需求到针对项目而建立的项目分库中来。

从图6可知,每个项目分库的需求均从总库中导出复用。同时,分库需求不仅与总库需求相独立,不同分库需求也相互独立。实际工作中多个项目常常同时进行,涉及立项、开发、测试、交付等多个工作模块用户,过程数据庞大。改进方案采用基于Hadoop大数据平台的生态模式,利用其分布式文件系统对服务器硬件要求不高以及MapReduce等软硬件结合快速处理海量数据算法的设计优势[9],不仅能降低服务器搭建成本,也极大优化需求库数据批量处理效率。

项目分库中的每一个需求都与其所对应的总库中的需求有映射关系,用户可以分别通过二者的链接入口快速查看到另一方需求。当测试工程师在实际的测试工作中发现需求有更改时,可在项目总结时提出总库需求修改申请,评审通过后需求修改的结果也会反馈在总库中。涉及需求总库和项目分库需求变更信息同步的流程如图7所示。

在实际测试工作中,测试工程师需要根据需求测试情况对结果进行记录,分库中需求基本狀态包括:新建(项目建立后将总库中的需求复用至项目分库的状态)、待开发(将分库需求转给对应的开发人员进行开发的状态)、待验证(开发人员将功能开发完毕后转给测试组进行验证的状态)、已验证(当测试人员验证后发现需求未被成功实现,用来记录失败结果,提问题让开发人员重新开发的状态)、关闭(验证通过后进行关闭的状态)和有变更(针对上一段中提到的总库需求有变更时待处理的特殊状态),以及删除(由于需求已经不适用现用的系统或由于需求变更导致需求的失效而不再生效的状态),分库需求的处理流程如图8所示。

4.2  缺陷处理流程

为了反映缺陷Issue的修复状态,对处于不同工作阶段的Issue进行状态特性标记,同需求状态类似,Issue状态可分为新建、待修复(开发工程师确认此Issue需要修复,将其状态更改为待修复)、待释放(修复Issue的代码必须被下一个正式版本收录)、待验证(测试工程师在代码生效的新版本上验证Issue是否被修复)、验证完毕(表明Issue已被验证,若通过,则等待有权限的用户关闭Issue;若不通过则又进入待修复状态继续修复)、关闭、删除和挂起(对于暂时不合适修改且不影响用户正常使用的Issue,做挂起处理,后续若确定需要修改,可重新进入待修复状态)。其处理流程如图9所示。

5  结  论

基于大数据平台的需求自动同步更新管理系统在降低庞大数据管理服务器搭建和维护费用的同时,将繁杂需求标签化处理,使得分类统计更加便捷。同时建立总库分库存储模式的需求数据库,方便业务层面的需求管理和快速导入。此外,优化后的需求变更流程大大降低多项目并行需求变更带来的风险,实现需求变更快速同步,保证软件开发效率,提升企业经济效益。

参考文献:

[1] SONG W Y. Requirement management for product-service systems:Status review and future trends [J].Computers in Industry,2017,85:11-22.

[2] HOOD C,WIEDEMANN S,FICHTINGER S,et al. Requirements Management:The Interface Between Requirements Development and All Other Systems Engineering Processes [M].[S.I.]:Springer,2007.

[3] KHAIRUDDIN S N,SARLAN A,AHMAD R. Challenges in Requirement Management Process:An Overview [C]//2021 International Conference on Computer & Information Sciences (ICCOINS).Kuching:IEEE,2021:120-124.

[4] 孙乾.软件需求管理系统的设计与分析 [D].长春:吉林大学,2015.

[5] 陈志.一个数据需求管理系统的设计与实现 [D].武汉:华中科技大学,2020.

[6] 宫夏屹,李伯虎,柴旭东,等.大数据平台技术综述 [J].系统仿真学报,2014,26(3):489-496.

[7] 李锦,张玲玲.大型软件项目管理的流程设计及分析 [J].科技管理研究,2010,30(15):204-206.

[8] 汤姆·怀特.Hadoop权威指南 [M].北京:清华大学出版社,2015.

[9] 李成华,张新访,金海,等.MapReduce:新型的分布式并行计算编程模型 [J].计算机工程与科学,2011,33(3):129-135.

作者简介:文聪敏(1994—),女,汉族,湖南益阳

人,助教,硕士研究生,研究方向:计算机技术。

猜你喜欢
数据处理
验证动量守恒定律实验数据处理初探
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
ADS-B数据处理中心的设计与实现
MATLAB在化学工程与工艺实验数据处理中的应用
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
大数据处理中基于热感知的能源冷却技术
Matlab在密立根油滴实验数据处理中的应用
我国首个“突发事件基础数据处理标准”发布