◎北京航天發射技術研究所 趙慧莉 王小軍 任躍進 楊靜 鄭懷芳
軟件復用構件庫建設的管理與實踐
◎北京航天發射技術研究所 趙慧莉 王小軍 任躍進 楊靜 鄭懷芳

針對繁重的型號研制任務對軟件研制的需求,開展了面向軟件復用研制的軟件復用構件庫建設的管理與實踐,通過軟件復用標準體系、軟件復用產品體系和軟件研制支撐平臺的建設,提升了軟件研制專業化水平、研制能力,同時提高了軟件研制效率和軟件可靠性。
在信息化時代,軟件在航天型號科研生產管理中起到了越來越重要的作用,其所實現功能的比重逐漸增大,“硬件軟件化”已成為當前新的發展趨勢。目前,軟件研制也面臨著研制任務重和任務多的雙重壓力,所以迫切需要提升軟件的研制效率和質量,優化軟件研制和人力資源配置模式,提高軟件研制和保障能力。
北京航天發射技術研究所在軟件研制過程中率先引入了“軟件復用構件庫建設”的概念,即打破傳統的軟件開發思路,將每個相對獨立的功能抽象為一個構件并重新搭建起來,通過調試運行即可開發出新的軟件,這樣可以在軟件開發過程中減少大量的重復性工作,提高軟件生產率,降低開發成本,縮短開發周期。另外,由于軟件構件大都經過嚴格的質量認證,并在實際運行環境中得到校驗,所以有助于提高軟件質量及可靠性。
研究所建立了以控制軟件為主的集成開發平臺,提供軟件設計架構、設計模塊和設計標準等構件支持(嵌入式環境和非嵌入式環境),并與編譯連接、下載調試以及軟件測試等環境有機集成,從軟件復用標準體系建設、軟件復用產品體系建設和軟件研制支撐平臺建設3個方面穩步開展工作,進而提升了軟件研制的專業化水平和研制能力。
1.軟件復用標準體系建設
軟件復用構件庫相關標準包括復用產品開發、應用和管理三大類標準。其中,復用產品開發類標準包括異步非總線型串行通信軟件設計規范(Q/Dc 296-2007)、發射車控制系統軟件可靠性設計指南(Q/Dc 448-2013)、C語言編程規范等;應用類標準包括軟件任務書編制模板、軟件需求規格說明編制模板、軟件詳細設計說明模板、軟件更改影響域分析報告模版等;管理類標準包括復用構件庫使用手冊、軟件復用構件庫管理辦法、復用構件庫知識管理激勵辦法、復用構件庫設計規范等。
2.軟件復用產品體系建設
復用構件設計工作按照專業劃分為復用構件設計、軟件模塊編碼和軟件模塊測試3個部分。軟件復用產品體系建設主要是針對軟件復用構件庫中模塊構件和架構構件的建設,模塊構件源自新軟件研制或從成熟軟件中提取。
在控制軟件通用架構的研制過程分層設計軟件,主要分為驅動層、協議層和應用層3個層次。驅動層和協議層以軟件產品包的形式納入復用構件庫,并作為復用構件進行使用;應用層模塊主要分為主功能、流程控制功能、配置查詢功能、故障處理功能、CAN總線通信處理功能、數據處理功能、硬件處理功能、網關處理功能(根據需要選用)等。
通過軟件復用產品體系建設,研究所取得了階段性成果。其中,復用構件庫C語言形成了設備驅動、數據通信、數據處理、操作系統和控制功能五大類型22個構件,目前已完成了12個軟件包(主要是驅動與協議包)和98個函數(3371行)。復用構件庫G語言形成了界面顯示、軟件架構、數據處理、通信和文件處理五大類型12個構件。
3.軟件研制支撐平臺建設
研究所基于優化的軟件研制流程建立了軟件研制支撐平臺(見圖1),建設了軟件編碼測試環境和通用確認測試軟件驗證環境,設計了系統仿真軟件,因而不再需要依賴硬件進行軟件確認測試和系統聯試?,F階段,開發測試試驗室的源程序和可執行程序能直接通過試驗網絡傳輸到試驗室進行確認測試和系統聯試。
目前,隨著各項工作的并行開展和深入,軟件復用構件庫已在軟件研制能力的提升上取得了明顯效果,通過復用標準體系建設和復用產品體系建設相結合的方式提升了軟件研制專業化水平、研制能力,提高了軟件開發效率、縮短了研制時間、保證了軟件質量。同時也使軟件研制模式由“面向代碼從無到有”向“基于復用模塊”的開發方式轉換,使配置項研制由依靠“單人方式”向依靠“多人組成專業組”的方式轉換。
在某大型軟件A的研制中,驅動層和協議層完全使用復用構件庫中軟件包4個,應用層完全使用復用構件庫中的復用函數49個;主控軟件總代碼共計37,455行,復用代碼共計29,551行,復用率達到78.9%。
在某大型軟件B的研制中,在控制流程對比分析的基礎上,進一步加大了應用層的復用深度,除驅動層和協議層使用復用構件庫中的軟件包外,應用層軟件大部分繼承某大型軟件A的代碼(復用代碼共計8274行),應用層總代碼為10,423行,應用層復用率也達到79.4%。
根據《復用構件庫知識管理激勵辦法》以及復用構件庫建設情況,北京航天發射技術研究所對復用構件的提供者、測試者和軟件復用者進行了獎勵,形成了復用構件提煉、入庫、使用、完善、激勵的復用構件建設閉環機制。?

圖1 軟件研制支撐平臺流程