◎北京航天自動控制研究所 曾思等
航天軟件配置管理自動化平臺的建設與應用
◎北京航天自動控制研究所 曾思等*

通過軟件配置管理工具標識和確定各系統軟件配置管理項對過程進行管理,在軟件全生命周期內控制軟件配置管理項的投放、變更,記錄并報告軟件配置狀態和變更要求,以驗證軟件配置的完整性和正確性。
目前,計算機系統在各行各業中得到了廣泛應用,軟件開發項目也急劇增加,軟件項目規模日益龐大、系統功能日趨復雜,導致軟件配置項的管理問題日漸突顯。現有軟件配置項的管理方式和工具均不能滿足當前航天型號任務軟件的質量和管理水平,直接影響到型號任務的順利完成,因此急需探索一套流程自動流轉,以基線管理和技術狀態管控為抓手的高效的軟件全生命周期自動化工具,以進一步提高軟件產品質量。
在航天型號產品研制生產過程中,型號軟件的配置管理是其中的關鍵一環。按照國軍標的有關要求,軟件開發管理應建立軟件“三庫”(開發庫、受控庫和產品庫),并提供相應的資源對軟件配置項入庫、訪問、出庫、維護、更改和發行等活動實施管理,以確保軟件產品的正確性、完整性、可控性和可追溯性。
1.軟件配置項
軟件開發的最終結果包括三類信息,分別為計算機程序、描述計算機程序的文檔、數據結構,組成這些信息的所有項目構成了一個軟件配置,其中每個項稱為一個軟件配置項(SCI),其是配置管理的基本單位。
在軟件開發過程中,最早的軟件配置項是系統軟件規格說明書,隨著軟件開發過程的不斷深入,軟件配置項也迅速增加,包括在軟件全生命周期內所產生的各種管理文檔和技術文檔、源代碼及其可執行代碼、運行時所需的各種數據以及相應的存儲介質等,這些均可構成軟件配置管理項,它們經評審和檢查通過后進入軟件配置管理系統。
2.“三庫“管理
軟件開發庫。在軟件全生命周期的某一階段,存放與該階段軟件開發工作有關的計算機/人工可讀信息的數據庫,通常數據庫中所存放的各種信息在該階段經常處于動態變化之中。軟件受控(配置)庫。在軟件全生命周期的某一階段結束時,存放作為該階段產品發行的與軟件開發工作有關的計算機/人工可讀信息的數據庫。數據庫中所存放的各種信息應是經過審查或評審,并履行完手續得到確認后處于“凍結”狀態的階段產品。
軟件產品庫。在軟件全生命周期的組裝與系統測試階段結束后,存放最終要交付給用戶運行或現場安裝的軟件產品的數據庫。數據庫中的產品都來自受控庫。因此,軟件配置管理就是對受控庫和產品庫中的各個軟件配置項進行管理。
3.基線管理
基線是軟件開發中的里程碑,其標志是有一個或多個軟件配置項的交付,而且這些軟件配置項已經過正式技術復審獲得認可。軟件配置管理包含以下3種基線:
功能基線。最初通過的功能配置,包括需求說明書、軟件項目計劃、軟件質量保證計劃、軟件配置管理計劃等,以及相關的評審報告。
分配基線。最初通過的分配配置,包括測試軟件需求規范、軟件系統測試計劃等,以及相關的評審報告。
產品基線。最初通過的或有條件通過的產品配置,包括用戶手冊、產品發布備注、安裝指導等,以及相關的評審報告。
航天型號軟件配置管理自動化平臺的建設目標主要包括:軟件配置項標識與建庫管理、軟件文檔簽署管理、軟件程序受控庫初始入庫管理、軟件程序受控庫出庫管理、軟件程序產品庫初始入庫管理、軟件配置管理問題報告等14項內容。
1.總體結構
航天型號軟件配置管理自動化平臺是一個分布式,支持多庫、多層次、權限控制力度細致的適合大規模使用的型號配置管理系統,針對型號軟件配置管理流程進行頂層設計、優化。 軟件配置管理系統由開發庫、受控庫和產品庫構成(見圖1),其中開發庫設在各項目組,受控庫設在各研究室,產品庫設在資料室。

圖1 軟件配置管理系統構成圖
其中,受控庫的主要功能包括以下幾個方面內容:
配置管理策劃是在項目啟動初期明確配置管理的相關策劃信息,包括審批流程、階段劃分、工作產品策劃、基線內容、標識策劃等。
基線管理包括基線的建立、發布、變更、工作產品獲取等,產品基線正式形成后需納入產品庫。
變更管理包括問題報告單、更改單、變更出庫單、更改完成單、變更入庫單全過程的監控及跟蹤閉環。
出入庫管理是軟件項目相關工作產品(含文檔和代碼)的入庫和出庫(包括交付確認測試、分系統聯試、先行交付的整星測試和第三方評測等)。
配置審核及狀態紀實是對基線內容和數據庫內產品進行定期審計,并將情況進行發布。
度量分析包括軟件變更次數、規模、所耗工作量、缺陷等簡單的數據統計。
版本管理是對軟件類數據的全生命周期版本狀態進行管控。
電子簽名是對入庫文件格式進行五級電子簽署,并進行軟件類文檔的全生命周期管控。
2.項目整體工作流程
軟件配置項目管理的整體流程如圖2所示。

圖2 項目管理整體工作流程
首先,對于新型號項目,需要管理員根據軟件的配置管理規定策劃幾套不同的規則,每套規則中應能夠針對組織、審批、版本、標識、階段、基線等進行具體的策劃。
其次,若系統中已經有了可選擇的規則,則需要室級配置管理員建立項目基本信息,為項目選擇適用的規則,并為每個項目指定項目級配置管理員。
第三,主管設計人員為項目指定普通用戶的角色分配,包括項目經理、測試人員、開發人員、質量人員等。
第四,項目管理員檢查所使用的規則是否適用于本項目,若不適用,則在規則的基礎上更改策劃內容。
最后,項目中的各個角色根據項目策劃開始實施項目配置管理的各項工作。
3.產品歸檔流程
項目成員在文檔入庫完成后,可提交產品歸檔申請單。產品歸檔總流程如圖3所示。

圖3 軟件產品歸檔流程圖
在項目創建之初,由室級配置管理員指定項目中具有在線編輯權限的角色,并指定具體負責人。在軟件配置管理完成入庫后,項目中的任何用戶均可發起制定產品歸檔單的申請,在系統顯示出來的已入庫的配置管理項中選擇對應的版本,再制定檔案管理員,選擇審批流程,并發起歸檔流程。
此外,系統還實施了軟件文檔打印與外場交付光盤刻錄控制。為保證在驗證/交付出庫(受控庫)、產品出庫(產品庫)時出庫資料版本的唯一性,增強出庫版本和下載刻錄權限的管理,軟件配置管理自動化平臺與單位內部自助刻錄系統進行了接口集成,設計了一套一鍵刻錄的組件,實現了打印光盤貼、自助式光盤刻錄技術。
軟件配置管理系統以軟件配置管理為核心,實現了軟件文檔和代碼等資產全周期狀態管理,通過軟件配置管理工具標識和確定各系統軟件配置管理項對其過程進行管理,在軟件整個生命周期內控制軟件配置管理項的投放、變更,記錄并報告軟件配置狀態和變更要求,驗證了軟件配置的完整性和正確性。
通過探討軟件配置管理自動化平臺的建設解決方案,有效解決了航天型號軟件配置管理尚未采用正式系統進行統一管理、軟件代碼全生命周期管控有待加強、無法有效實現軟件程序的集中管控等諸多典型問題,規范了日常軟件配置管理的業務流程,實現了軟件技術狀態的及時受控以及歷史數據系統與現有數據系統的集成,提高了軟件的開發效率和開發質量。
*其他作者:王曉玲、劉京濤、郭曉慧、聶振斌、劉勇