于國際,鐘建栩,余少鋒,馬一寧,廖崇陽
(南方電網調峰調頻發電有限公司信息通信分公司,廣東 廣州 511400)
關聯表單是指管理信息系統或商業互聯網服務系統調取表單時,充分利用相關信息協助用戶完成大部分表單內容填寫的一種表單實現方式。敏捷開發指在軟件工程中將對應功能進行有效分割,使每個功能形成可以獨立操作的子系統,且在不改變子系統對外數據接口的前提下實現對子系統進行獨立開發的系統開發模式[1]。在敏捷開發和關聯表單的開發管理模型中,管理客體為關聯表單,管理模式為敏捷開發,管理對象為開發過程。
關聯表單的需求是豐富的數據融合過程,需要將系統內更多模塊的相關數據進行傳值、融合,但敏捷開發系統的獨立性需要充分分割子系統才可以實現。因此在進行管理模型開發時,如果單純在敏捷開發與關聯表單之間尋求平衡,無法發揮二者的最大效能[2]。本文將探尋一種可以將敏捷開發和關聯表單效能均發揮到最大的開發管理模型。
對關聯表單來說,根據用戶注冊信息和應用場景信息,在數據庫中獲得數據輸入表單信息后,將數據輸入到數據庫中,完成關聯表單的通用開發目標。關聯表單系統內部數據流如圖1所示。
圖1中,關聯表單的核心數據流來源于對生成數據查詢和對數據查詢后進行的數據治理,將數據治理結果導入到表單完善表單信息后,對表單數據進行數據治理,再將治理后的數據輸送到數據庫中[3]。為了實現該過程,在數據處理過程中,需要構建數據查詢策略,而該策略需要整合當前頁面的框架信息和用戶信息,針對特定用戶的特定權限在當前框架場景下構建數據查詢策略。而在表單頁面,需要用戶手動輸入信息,或從API虛擬數據接口中調用數據信息,或支持用戶使用表單處理器通過數據輸入模塊對表單信息進行填寫。

圖1 關聯表單系統內部數據流圖
在敏捷開發模型下,如果將關聯表單作為一個獨立的敏捷開發模塊,則根據圖1 ,其外部數據傳輸方式可在圖2所示的數據流圖中反映出來。

圖2 關聯表單系統外部數據流圖
圖2中,敏捷開發的關聯表單獨立模塊需要有與數據庫平臺進行數據傳輸的全功能數據接口,另外還應支持圖左側的諸多數據輸入接口[4],即關聯表單是一個擁有豐富數據輸入接口且輸出接口單一向數據庫提供數據支持的敏捷開發獨立模塊。因此在敏捷開發模型下對關聯表單進行開發,其關鍵點在于實現支持多種數據傳輸設計,同時開發可以調用數據庫的數據接口。
根據上述開發需求分析,可以進行基于敏捷開發模型的關聯表單開發任務分解,通過數據傳輸實現對數據接收端的設計,同時針對每一項輸入數據開發對應的數據輸入治理模塊[5]。完成輸入數據治理后,將數據導入到表單中,此時還需要根據導入的數據在數據庫中讀出表單關聯信息,根據表單對上傳數據進行數據出口治理,同時將數據上傳到數據庫驅動模塊中。關聯表單的敏捷開發任務分解如圖3所示。

圖3 關聯表單的敏捷開發任務分解示意圖
圖3中,除數據接口和數據輸入治理2組模塊外,還包含了表單頁面(前端)、查詢策略、數據庫驅動、數據上傳治理、數據上傳接口等5個模塊,這些模塊的具體開發任務如下。
1)數據接口模塊。數據接口模塊負責數據的請求、接收、反饋等,同時實現對UDP或者TCP接口的管理,或對API控件的驅動[6]。因為數據接口的信息傳輸是靠接收端完成的,所以應滿足與對方接口開發團隊之間設定的數據協議,協議包括數據請求與數據反饋的格式與響應機制。
2)數據輸入治理模塊。接收數據后應對數據進行治理,包括雙向加密傳輸數據的解密、涉密數據的進一步數據脫敏、防止數據注入的二次數據保護、強制數字化數據的數據解釋還原、流媒體數據或二進制數據的文件重構等。
3)查詢策略模塊。
查詢策略模塊需要對所有數據治理模塊提交的數據進行識別并分組,確認用戶身份和相關積分數據的狀態、判斷鏈接到表單的來源頁面地址等,以實現對表單中聯合信息的精確提取。
《普通高中生物學課程標準(2017年版)》提出:“積極開發與利用生物學課程資源”、“課程內容有機融入中華優秀傳統文化”。我國有56個民族,壯族是少數民族中人數最多的民族,主要分布在廣西壯族自治區。它具有獨特的飲食文化,其中蘊含著豐富的生物學知識,當地教師挖掘其中的生物學課程資源并運用到生物學教學中,既有利于學生認識壯族飲食文化中的生物學知識,又可拓寬生物學課程資源的開發路徑。
4)表單頁面模塊。表單頁面模塊是一個基于HTML5、PHP、ASP、C#或其他前端開發系統的前端頁面系統,也是該系統中用戶唯一可以看到的界面。該頁面模塊的設計包括UI設計、VI實現、CSS設計等開發任務。
5)數據上傳治理模塊。表單頁面一般位于用戶界面端口,從用戶界面向開發界面的數據一般需要進行雙向加密,數據加密時應選擇一種可充分解密的數據加密方式,一般有雙向字典式加密、數據位移式加密等方式。同時,還應確保用戶信息的安全性。對流媒體、位圖、音頻等數據應進行流媒體化以實現公網數據傳輸。
6)數據上傳模塊。將進行數據治理后的信息通過該模塊連接到數據庫驅動模塊中,實現數據的上傳,該模塊應對表單的數據增、刪、改等更新操作設定相應策略,在相應的策略下實現數據的上傳。
7)數據庫驅動模塊。數據庫驅動模塊一般由數據庫平臺系統控制,但也有一些要求較為復雜的系統需要對數據庫驅動模塊進行二次開發,以提升數據庫的驅動效率。該模塊的核心功能是執行SQL命令。
五螺旋開發模型是一種由需求驅動、持續改進的軟件工程開發模型,在敏捷開發模型下構建五螺旋模型,一方面可以實現敏捷開發的小團隊開發模式和快速響應模式[7],另一方面可實現五螺旋自驅動強需求的開發過程。五螺旋模型下的管理協調過程如圖4所示。

圖4 五螺旋模型下的管理協調過程
圖4所示的管理協調過程是一種循環的開發模式,通過五螺旋模型下的管理協調過程實現各部門之間的互相協調,最終協同完成開發任務。五螺旋模型下,并不執行交付過程,而是直接在團隊內由測試部門、環境部門、產品部門觀察運行結果,根據運行結果來決定下一步的開發需求。
引入敏捷開發前,表單開發為單純性的前端開發,架構部門、開發部門等其他相關部門對表單開發的支持力度并不大。引入敏捷開發后,成立了針對特定關聯表單的敏捷開發團隊,團隊內在設立前端部門的同時,也設立了其他相關部門,接到任務后,由該聯合表單開發團隊獨立完成整個開發過程。
通過上述分析可以看出,五螺旋模型可作為敏捷開發與關聯表單充分結合的紐帶,其結合方式有以下2點特征:
1)將關聯表單形成獨立子系統進行持續開發。
五螺旋模型驅動下,關聯表單的開發團隊必須包含產品部門、架構部門、開發部門、前端部門、測試部門、環境部門等六大部門。關聯表單作為一個開發目標,必須具備獨立子系統的相關條件[8]。將關聯表單形成獨立子系統完成特定功能軟件的開發存在可行性。
2)將敏捷開發運用到全系統執行中。
全系統執行敏捷開發的關鍵在于系統內的子功能模塊數量足夠集約,且功能之間的邊界足夠清晰。因為敏捷開發模式下,團隊內的配合更加簡約,所以團隊內六大部門的人員配置相對較少,如15~20人的開發團隊,就可以構成一個敏捷開發體系。一般來講,70個功能頁面的管理信息系統開發項目,其整體開發人員在1 500人以內,而20個功能頁面的商業化互聯網APP項目,其整體開發人員在400人以內。與動輒數千人的開發團隊規模相比,可以節約大量的人力資源成本。
以國內某二線軟件開發服務公司為例,該公司承擔3個APP軟件項目和2個管理信息系統項目的持續開發任務,企業擁有合同制員工4 200人,其中專業技術人員3 700人。為測試敏捷開發項目管理模型在該企業中的應用效果[9],選擇1個APP軟件項目作為敏捷開發的試點,該軟件擁有功能頁面21個,其中關聯表單6個。傳統的開發模式用APP1和APP2表示,A為APP1和APP2的平均值,敏捷開發模式用APP3表示,對傳統的開發模式和敏捷開發模式進行比較,得出關聯表單的持續開發模型比較結果見表1。

表1 關聯表單持續開發模型
由表1可見,敏捷開發模式下需要投入的人員大幅度減少,人均周工時壓縮了36.83%,人均績效增加了36.64%,用戶對開發過程的滿意度提高到94.5%。主要原因是:1)敏捷開發過程對項目功能模塊的劃分更加細致,開發過程更加簡便。2)基于敏捷開發,配合五螺旋模型,針對特定的功能頁(如關聯表單頁)形成相對穩定的開發團隊,可有效提升管理效率,開發執行效果也更加明顯。
將敏捷開發模型和五螺旋開發模型合并,對關聯表單進行功能模塊劃分時,將數據提供模塊和數據接收模塊劃分到兩個不同的敏捷開發模塊中分別進行開發,可以有效地解決敏捷開發和關聯表單開發需求的矛盾[10],團隊人數和人均周工時均有效減少,人均績效顯著提升,從而可實現更高的項目管理效能。