王力文 毛宇君 丁冠期 齊寶力 張健鋒
(上海機電工程研究所, 上海, 201109)
從兩彈一星的研制到載人飛船、 探月工程、空間站的建立、 火星探測等項目的實施, 面對各種挑戰, 進一步完善型號軟件工程化工作規范,實現全周期的型號軟件工程化管理, 是軟件研制的一項重要工作。
國外航天軟件的研制采用新技術、 新工具提升軟件質量。 軟件產品線提供了一套產品中管理共性和可變性的系統化方法, 是系統性軟件復用的重要途徑。 NASA 的LMA 軟件產品線, 通過大幅度地復用軟件資產, 使得需求分析周期由4個月縮短到2 周; 洛克希德·馬丁的CSL 軟件產品線, 近3年節約成本達1.66 億美元[1]。
航天八院戰術導彈武器系統總體設計單位(以下簡稱總體部) 面臨型號科研生產模式變更頻繁、 軟件研制固有思想嚴重、 軟件產品種類繁多、系統驗證復雜等諸多挑戰, 我所在落實國家軍用標準 《軍用軟件研制能力成熟度模型》 (以下簡稱 《成熟度模型》) 體系本地化的工作中, 對標“三高” (高質量、 高效率、 高效益) 要求, 采取了全方位的體系建設、 全員培訓、 全流程使用信息化技術、 全型號納入體系管理的 “四全” 措施,為推動軟件工程化標準體系建設積累了寶貴經驗。
軟件產品需求通過層層傳遞, 從系統總體—分系統—單機設備, 每一層級在研制中受設計狀態、 產品形態、 專業約束等因素影響, 呈現變更頻繁的狀態; 型號各階段工作并行, 科研生產流程中實施型號縱向分層管理, 由于變更頻發最終導致策劃工作落地困難。
總體所長久以來的工作模式主要是以型號縱向牽引為主, 尤其是系統、 分系統及管理人員,對基于 《成熟度模型》 的過程管理、 軟件工程等規范化和精細化要求的認識不足, 引入 《成熟度模型》 需要改變原有的工作習慣和傳統思維, 在思想上和行動上都會產生很多困難。
軟件產品種類多。 按照應用領域分為武器控制、 飛行控制、 發射控制、 仿真測試等軟件; 按照軟件工作方式分為實時處理軟件和非實時處理軟件; 按照研制類型分為研制、 批生產以及預研軍貿等軟件。 各類軟件在質量管理、 進度要求、重用程度等方面特點各異, 落實本地化的軟件研制模型分類存在一定困難。
導彈武器系統龐大復雜, 測試試驗繁多。 以軟件研制任務書為代表的軟件功能基線遲遲無法建立。 系統設計仿真不充分便直接開發軟件產品, 導致軟件在分系統、 系統級驗證過程中不斷迭代, 軟件功能性能驗證層次多, 頻繁更改軟件帶來的風險隱患不可控。
導彈武器系統采用架構定制, 每個配置項一條生產線, 因此導致系統級任務、 軟件任務紛繁復雜, 軟件產品在平臺架構、 功能模塊、 文檔規范等方面的共性組織資產難以有效形成。
總體部依據 《成熟度模型》 標準要求, 結合航天軟件工程化管理要求, 分3 個層次建立軟件過程管理體系文件。 第一層次是 《軟件過程管理手冊》, 覆蓋了 《軍用軟件研制能力成熟度模型》標準要求、 上級軟件工程化管理要求, 是軟件過程改進的綱領性文件, 內容包括軟件過程改進的目標方針、 組織機構和職責、 過程模型、 組織驗證等。 第二層次按照 《軟件過程管理手冊》 中規定的過程域, 識別出應編制的過程文件。 第三層次根據需要針對過程域梳理形成規程、 指南等作業指導文件。
整個體系架構中, 第一層次中, 過程類型分為過程管理、 項目管理、 工程、 支持等4 大類。根據顧客及相關方要求, 工程類開展主要研制業務, 由項目管理類進行監督管理, 由過程管理類和支持類不斷提供改進意見, 審查作業流程的合規與否, 最終生成顧客及相關方滿意的產品。 按照第一層的4 大類制定了第二層的過程文件, 而第三層次文件再對過程文件進行細分, 形成規程和指南文件。 如圖1 所示。
根據實際工作需求, 進一步制定了作業指導書 (第四層次文件), 如型號軟件配置項測試報告作業指導書, 具體描述測試報告的格式、 模板等要求。 依據體系文件框架和實際工作, 梳理出18 個過程域、 29 份程序文件和規程文件、 13 份文檔編制作業指導書、 7 類軟件生命周期模型。
總體部以現行質量管理體系組織機構為基礎,根據軟件過程管理體系建設要求, 成立了《成熟度模型》 管理指導組 (MSC)、 軟件過程改進組(EPG)、 軟件配置管理委員會 (SCCB)、 質量保證組(QA)、 配置管理組 (CM)、 軟件培訓組, 以領導、 推進、 監督軟件過程改進活動; 明確了相關部門定位、 職責, 建立了軟件過程管理體系組織機構, 如圖2 所示。 再按過程設置崗位, 分配職責和權限, 并結合 “走出去、 請進來” 的方式, 培訓、學習、 宣貫標桿單位的實踐經驗, 確保崗位人員熟悉業務和順利履職。

圖2 軟件過程管理體系組織機構圖
借助軟件過程管理平臺, 實現型號產品的過程管理。 組織過程改進組 (EPG) 根據產品軟件類型、 規模及安全關鍵等級, 結合軟件工程化實施經驗, 將各類軟件分為沿用、 參數修改、 適應性修改、 快速更改、 瀑布、 迭代、 快速開發共7種生存周期模型, 并明確了模型選擇準則、 過程及文檔裁剪要求。
以瀑布模型為例, 定義出軟件生命周期階段為4 個軟件工程活動, 分別為需求分析與設計、項目策劃、 需求分析和測試、 軟件驗收交付。 通過運用項目管理、 配置管理、 缺陷管理等工具,完成系統需求分析與設計、 項目策劃、 制定WBS (工作分解結構)、 軟件項目估計、 需求分析(細化任務書要求, 建立與研制任務書的追蹤關系)、 軟件設計 (定義軟件單元)、 軟件實現與測試、 驗收與交付, 如圖3 所示。 這種模型需要對照任務書明確劃分軟件需求, 根據需求劃分子模塊, 并進行單元、 組裝、 配置項測試, 大多適用于產品化軟件、 全新架構軟件。 依據頂層管理手冊文件, 軟件研制變得更加井井有條, 尤其在改善需求變更過于頻繁方面有了明顯的成效。

圖3 項目具體的評估實施過程
在管理流程方面, 如圖4 所示, 以信息化平臺建設為抓手, 打通管理條線間壁壘, 提高在產品研制過程中反復審查修正、 閉環缺陷的效率, 實現軟件研制過程剛性管理。 同時通過與協同研制系統(Avidm4.0) 互聯, 為設計師提供文檔變更、 編校審流程等便利功能。 管理方式逐步走向 “智能化、網絡化”, 為推進軟件產品線工程奠定基礎。

圖4 管理流程一體化
按照航天型號軟件工程化要求, 軟件研制類型分為I 類 (沿用)、 II (修改裝訂參數)、 III(適應性修改)、 IV 類 (新研), 見表1。 結合軟件本身特點, 首先建立相應的軟件生命周期模型。 對于相同領域的在研型號軟件、 批產型號軟件、 同期多狀態型號軟件, 可以直接采用適應性修改/快速更改模型, 使得軟件項目管理的效率顯著提升。 又如多狀態的飛控軟件通過保留主干版本, 建立偏離產品基線, 使得偏離版本的更改更易于管理。

表1 軟件研制類型與生命周期模型對照表
三級體系文件的建立與實施, 包括過程域、 程序文件和規程文件、 檢查單、 作業指導書、 生命周期模型等, 完善了企業本地化過程體系和組織資產, 有效指導了軟件研制。 產生的組織工作環境、重用庫構件、 歷年質量案例數據等組織資產也給后續的推進工作積累了寶貴經驗和財富。
全方位的體系建設、 全員培訓、 全流程使用信息化技術、 全型號納入體系管理的“四全” 措施對標“三高” 要求; 通過軟件研制過程管理平臺, 將過程文件、 實踐活動轉化為信息化流程; 針對主要軟件研制模型制定了詳細的WBS 分解模板, 有效指導項目組開展項目策劃和監控。 在完善工具、 規范軟件研制過程的同時, 也有效提升了項目管理效率。
而在實際工程活動中, 完善標準體系固然不是最終目的, 而是為了提高工作效率和產品質量,軟件過程改進不是一蹴而就的, 體系文件在交給各試點項目實施后會發現一些問題, 從而需要改善, 因此體系文件的改進與實施項目是相輔相成的。 接下來, 《軍用軟件研制能力成熟度模型》5000B 體系建設已逐步上線, 體系的創新點和難點更需要通過項目實踐去挖掘和探討。
