文聰敏 劉乃新



摘 ?要:針對當前軟件需求變更日漸增多但管理效率低下的現狀,基于大數據平臺計算能力強、成本低的特點建立需求自動同步更新管理系統,并從總體設計、需求數據庫以及數據處理流程三個方面對其進行了闡述。該系統通過將繁雜需求進行標簽化處理建立起需求數據庫,通過總庫分庫存儲模式完善數據處理機制,有效優化需求建立、測試和變更流程,實現需求的快速查找和自動更新同步,同時減少資源投入和資源浪費,從而加快項目的研發進程。
關鍵詞:需求管理;數據處理;需求變更;軟件生命周期
中圖分類號: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—),女,漢族,湖南益陽
人,助教,碩士研究生,研究方向:計算機技術。