邵帥,李夢瑤
(中國電子科技集團公司第二十八研究所,江蘇南京 210000)
目前,隨著計算機技術的迅速發展和計算機相關產品的大范圍普及,軟件相關產業蒸蒸日上,從事軟件開發的人員越來越多,軟件開發項目也急劇增加,軟件配置管理問題逐漸得到重視[1]。軟件配置管理貫穿整個軟件生命周期,項目組成員和項目經理通過配置管理可以更好地識別潛在的項目問題,管理變更、跟蹤軟件項目的進展情況[2]。對軟件的變更進行管控,提高軟件產品的可復用性和可維護性變得尤為重要[3]。
本文提出基于研發平臺持續集成流水線的自動化軟件配置管理模式,通過研發平臺持續集成流水線來讓配置管理人員能更加簡單,高效地實現軟件研制過程中的配置管理工作。
軟件配置管理又稱為技術狀態管理,指在產品生命周期內,為建立和維護產品功能特性、物理特性與需求的一致性、完整性、正確性而開展的一系列管理活動[4]。配置管理的主要活動包含記錄配置項的功能特性和物理特性,控制特性變更,記錄并報告變更的處理過程和實現狀態,驗證配置項的功能特性,物理特性和規定的需求的一致性,完整性、正確性[5]。
配置管理中的關鍵活動包含標識配置項、制定配置管理計劃、建立和維護配置管理環境、出入庫管理、建立并發布基線、配置審核、配置狀態報告、備份管理、變更控制等[6],配置管理流程如圖1所示。

圖1 配置管理關鍵活動流程圖
配置管理“三庫”按照控制級別分成開發庫,受控庫,產品庫[7]。開發庫作為開發人員使用的配置庫,保存項目研制過程中產生的所有軟件源代碼、設計文檔等,開發人員在權限范圍內對開發庫內的配置項進行檢入,檢出,修改等操作。受控庫用來保存已經批準的軟件源代碼、安裝包、配置文件、數據文件、環境工具、設計文檔以及統一管理的過程目錄,由配置管理人員進行管理和維護,配置項出入庫必須經過批準。產品庫作為保存發布的平臺產品或者項目交付用戶的軟件源代碼、安裝包、配置文件、數據文件、環境工具、配置文檔等,由配置管理人員進行管理和維護,任何人員進行產品庫的相關操作必須經過批準[8]。
三庫的權限管理如表1所示

表1 三庫的權限管理
研發平臺是“工具+資源+制度”的有機融合體,貫通軟件開發全過程,集成需求設計、編譯構建、代碼掃描、測試等各類工具,統管數據、模型等研發資源和需求條目、設計成果、源代碼、安裝包等工作產品,落地產品研制、資源使用維護、配置管理等研發制度,統一提供各類研發服務。
如圖2所示,研發平臺采用“平臺+應用”構建模式,以資源為基礎、以任務為主線、以數據為驅動,按照數據層、服務層及應用層三層架構進行設計,其中數據層包含八庫,資源庫統一管理研發所需各類軟資源,另外需求庫、設計庫、代碼庫、受控庫、缺陷庫、用例庫和產品庫七個庫,統管研發過程中產出的工作成果;服務層包含容器管理、第三方組件庫、日志管理等共性組件,統一提供服務注冊、負載均衡、安全認證等基礎共性服務能力;應用層包含規劃設計、任務管理、資源管理、研發態勢共四個基礎支撐分系統,及需求設計、持續集成、聯試驗證和仿真驗證等四大專業應用分系統。

圖2 研發平臺架構圖
針對軟件配置管理過程中人工管理存在的手工維護量大,易出錯等問題,研發平臺通過持續集成流水線,隨研發活動自動實現軟件出入庫流轉,大大降低了維護成本,減少出錯情況,項目組成員和配置管理人員可以實現無感化操作。
如圖3 所示,項目組成員首先在研發平臺上創建對應開發活動的迭代,迭代需要關聯和研發活動相關的軟件需求和代碼缺陷,項目組在代碼倉庫創建代碼變更分支,項目組完成代碼開發后將代碼上傳至變更分支,并在研發平臺上配置工程部署參數和部署環境。完成配置之后在研發平臺對代碼分支進行軟件構建,軟件構建成功之后開始對分支代碼進行掃描,歸零掃描發現的代碼掃描問題并更新分支代碼。項目組需要通過研發平臺單元測試節點和同行評審節點,歸零單元測試缺陷問題和同行評審缺陷問題,當問題回歸完成后封裝軟件安裝包,同時自動將代碼和安裝包提交至受控庫進行受控管理。當項目組發起集成測試或者系統測試申請的時候,研發平臺自動將軟件部署到測試環境供測試人員進行測試,針對測試發現的缺陷,在項目組成員歸零問題后,經過代碼掃描重新將代碼和軟件安裝包入受控庫受控管理,項目組成員基于研發平臺持續集成流水線可以實現配置管理的自動無感化操作。

圖3 受控庫出入庫流程圖
如圖4 所示,項目組首先將準備進行系統考核的軟件版本通過持續集成流水線入受控庫,當項目組發起系統考核申請之后,研發平臺自動將受控庫內的軟件部署到考核環境,由質量工程師驗證產品與合同要求的符合性,如果考核不通過則歸零相關問題重新通過持續集成流水線入受控庫,并重新進行系統考核。考核通過后由質量工程師在研發平臺將通過系統考核的軟件版本經持續集成流水線入產品庫管理。當項目組需要在研發平臺開展聯試活動時,研發平臺將受控庫內的代碼部署到聯試環境,經聯試策劃和聯試執行等活動,歸零聯試相關問題,經質量工程師在研發平臺將通過聯試驗證的版本經持續集成流水線入產品庫管理。當項目組需要將已經研制完成的軟件交付給用戶,項目組首先在研發平臺發起產品庫出庫申請,經質量工程師和配置管理委員會批準同意,研發平臺自動將產品庫中軟件的下載鏈接發送給項目組成員進行下載,流程結束后鏈接將自動失效。

圖4 產品出入庫流程圖
綜上所述,基于研發平臺持續集成流水線的配置管理可以實現軟件出入庫流轉自動化,大大提高了出入庫效率,同時也進一步降低維護成本,研發平臺持續集成流水線在研發平臺得到了極大的應用,大大提高了開發的質量和速度,保證項目團隊可以及時地完成開發任務。