錢 航,顏廷貴,李世鵬
(北京宇航系統工程研究所,北京,100076)
運載火箭型號軟件是指屬于型號的組成部分、納入配套表進行管理的軟件產品,包括運載火箭系統中制導、控制、通訊、安全控制、遙測、遙控、外測、地面管理、維護和測試等型號配套用軟件。中國的運載火箭型號軟件研制開始于20 世紀60 年代初,首先用于彈道計算設計和控制算法仿真,并開始逐步應用于遠程火箭的箭上飛行控制系統和地面測試發射控制系統[1]。早期軟件開發嚴格來說是程序開發,現在的軟件指程序與其相關文檔或其他依賴項的集合,程序為軟件的組成部分。在開發過程中,程序主要圍繞硬件為核心進行設計與編碼,代碼規模小,編程工具簡單,開發者和使用者無明確分工甚至身份重疊;開發者力圖節省內存空間和編程設計技巧,卻無需編寫相關文檔資料(除程序清單外)[2]。
隨著數字計算機技術的發展、計算速度的提高,運載火箭型號研制越來越多地采用功能越來越復雜的軟件來進行設計、仿真,具備使用方便和精度高的優點。無論箭載還是地面越來越多采用軟件實現相應功能。到20 世紀80 年代早期,計算機及其軟件已廣泛應用于運載火箭系統中許多領域,如導引、控制、導航、數據處理、遙測、遙控和地面指揮控制。
隨著信息化戰爭的發展趨勢,火箭的研制模式已經發生了較大的變化,從試驗走向應用,從單純的型號走向系統交付,從交付即完成工作走向體系化壽命周期的全程服務,這些變化給軟件帶來了極大的發展空間。諸元準備系統走向快速、作戰任務規劃系統領域、指揮信息系統要走向實用,綜合保障信息系統、產品全壽命周期管理需求迫切。圖1 為運載火箭型號軟件系統核心業務。

圖1 運載火箭型號軟件系統 Fig.1 Launch Vehicle Software System
由圖1 分析可知,型號軟件系統在發展過程中凸顯的重要性:
a)一套切實可用的作戰任務規劃系統,必是基于數據實時驅動的集成系統,它應以對諸元的實時計算為基礎,具備基于態勢的實時指揮能力和對各方數據的集成應用能力,其核心是一套“高端”的軟件系統。
b)為了提升遠程火箭的快速化性能。軟件計算響應的實時性和計算結果的可靠性,均成為型號亟待解決的關鍵環節。在國產化硬件性能的約束條件下,只有攻克并行計算、全點位覆蓋性測試等關鍵技術,充分發揮軟件的性能,才能切實提升遠程火箭的快速化性能。相對作戰規劃領域,參數計算更接近于火箭,因此稱之為“近端”。
c)測控領域主要指2 個方面:測量系統對遙測數據進行處理、存儲、發布、分析;總體網、動力測控、綜合控制、測量等系統對地面設備進行遠程控制。此領域的軟件屬于地面軟件,相對指控系統距離火箭較近,稱之為“前端”。
d)在當前信息化條件下,指揮控制系統能大大提高遠程火箭的實戰化能力、快速反應能力、決策科學化和指揮自動化水平。由于指控系統往往是后端指揮的關鍵、是上級領導指揮的倚仗,所以該系統稱之為“后端”。指揮控制系統軟件是體系任務的核心和靈魂。
信息技術、互聯網等的快速發展給型號軟件的發展帶來了外在助力和時代機遇。計算平臺從單機、局域網、大規模互聯互通網絡到云架構的演化,開放互聯、動態多變的網絡環境給軟件設計帶來了多樣的技術途徑。
隨著信息技術的發展,硬件、軟件、網絡、數據和其他以前看似獨立的技術類別開始滲透、整合和互相促進,正在經歷從量變到質變、從相互獨立到有機整體的發展過程。軟件承載的功能越來越多,通信速度越來越快,生成的數據越來越多。遠程自動判讀系統能夠快速、準確、高效的完成全箭數據的自動判讀,并能夠通過遠程數據傳輸實現測試數據推送到設計師桌面。圖2 是遠程自動判讀系統的網絡拓撲圖,目前該系統已在新型運載火箭等多個型號獲得成功應用,并打通了從酒泉衛星發射中心、西昌衛星發射中心和文昌衛星發射中心等多個火箭發射場到火箭設計師桌面的數據判讀通道。
硬件軟件化、軟件智能化,這依賴于軟件實現的機器學習算法和依賴于大數據技術的數據挖掘和數據應用。裝備技術狀態變化風險識別與質量信息監管系統是對型號產品數據進行全生命周期管理的產品,該系統能夠根據海量裝備過程數據挖掘結果對型號產品的技術狀態進行監督管理,對批次間產品狀態變化進行自動判別對比和風險分析,使用戶能全面掌握裝備技術狀態基線及變化情況。
這些因素極大地開拓了軟件技術的發展空間,引領了新一代軟件技術,如云計算、虛擬計算、人工智能和超大規模軟件系統[3,4]。
型號研制流程分工明確,基本按照軍用軟件過程研制要求進行研制分工,采用項目經理負責制,需求與設計分離、設計與測試分離,配置管理與產品保證也完全集成到型號軟件研制和管理過程中。崗位結構相對清晰,按照研制分工與流程設置,多數單位已經設置與崗位流程相關的項目經理或負責人、需求分析崗位、設計編碼崗位、測試崗位等,并且軟件配置管理、質量保證相關崗位也同步設置完備,做到了“設計、編程、測試”三分開[6]。

圖2 遠程自動判讀系統的網絡拓撲圖 Fig.2 Remote Automatic Interpretation System Network Topology Diagram
運載火箭型號往往包括十幾個或數十個甚至是上百個軟件項目,過去這些軟件項目都是孤立地進行設計開發和管理維護的,各軟件配置項所使用的開發語言、遵循的技術標準和運行的軟硬件環境都是各自規定,互不統屬、互不協調,影響軟件保證活動的開展:軟件獨立確認測試、維護、重用困難,系統可靠性得不到保證。同時,大型、巨型軟件系統研制的機制和模式尚未有效建立。急需組建比較大的軟件團隊,有效的分工協作機制,頂層架構設計和全局策劃,針對大型軟件系統的試驗驗證。
當前型號支撐軟件多為單點解決,軟件與軟件、軟件與系統、軟件與全箭之間彼此不很匹配,因此,所取得的成果也是有限的且局部的,未能形成對傳統軟件研制模式的突破與轉型。中國重大航天工程方面,尤其是新一代火箭,對運載火箭型號軟件的迫切需求是整體解決方案,急需統一單點應用和各種軟件形成的孤島,“打通數字化生產線”。
在型號發展過程中,對軟件提出了國產化、快速計算和海量數據的需求,使得軟件需要新的開發技術予以支撐,軟件整體體量也將增大,依托平臺多樣。針對國產化軟硬件需求,為了避免由于依托國產操作系統的不穩定造成的軟件系統級異常,全面掌握操作系統底層技術,提升軟件系統級質量,為關鍵軟件配置項提供一個可控、可靠、高效的運行平臺,有必要對國產化操作系統技術進行研究,優化操作系統、編譯函數庫和集成開發環境[7]。數據在型號研制和總體設計過程中發揮著至關重要的作用,設計數據代表目標值,產品數據代表結果,測試數據則反應結果的穩定性及對目標值的偏離度或偏離規律。運載火箭型號的參數數量從數十個到幾千個,所占存儲空間從幾十KB到幾十GB。測試數據反應了系統或單機的狀態,對于辨別單機和系統的質量、壽命等都具有重要意義,因此針對海量數據的判讀和分析成為了發現問題的最直接也是最有效的方法。數據的判讀和分析成為總體設計的重要工作。
a)型號軟件研制方面,型號研制模式和軟件產品研制模式之間的矛盾尚未有效解決。首先,各型號對相同業務軟件需求的不統一,導致型號軟件必須定制開發,很難進行重用。其次,軟件處于下游更改隨意,軟件產品化未得到重視和支持。目前,大多數軟件按照硬件單機模式管理,軟件提出方未建立軟件產品的理念,隨意要求研制方進行改動,導致軟件研制沒有明確思路和導向。最后,軟件產品得不到充分打磨,精品少。由于目前軟件研制處于型號末端,留給軟件研制的資源和時間非常少,導致軟件研制處于“急”和“快”的狀態,不能有效地梳理需求、設計架構和走查評測,很難產出高質量的軟件產品。
b)型號軟件管理方面,研制逐步向跨單位、跨專業的方向發展,涉及多個領域,管理難度逐漸增大。對于新參研單位,每個單位軟件開發經歷與能力以及工程化基礎水平參差不齊;對于新研型號的研制隊伍,整體偏年輕并且人員的綜合能力不強。另外,型號系列化研制和其他多型號研制并舉,軟件狀態、參研人力和物力資源集中保障難度顯著增大。這些新狀況的出現對軟件研制過程各環節的工作質量和產品質量構成巨大挑戰,急需探索一種行之有效的軟件研制技術管理模式以控制可能帶來的風險。軟件并不是像以往一樣僅作為型號核心技術的載體,它是裝備的靈魂,是復雜的系統,應參與到頂層設計、統一規劃管理。
a)底層、基礎、通用的軟件技術等未得到全流程的技術保障,操作系統、編譯環境、運行環境和數據庫等軟件環境處于黑箱,無充分的技術力量支撐,在軟件安全上是潛在風險。目前,運載火箭型號軟件研制集中在軟件功能實現上,在整個發射流程中也只是重視軟件在“規定動作”的表現。但是,軟件作為一種特殊的技術承載形式,有著自身的特殊性。同硬件運行有特定的溫度濕度等要求一樣,軟件有著自身的運行環境,只是這個環境被包裝在系統軟件開發商的產品中,對外完全是黑箱子。型號研制隊伍對軟件技術挑戰也沒有予以充分重視。
b)大量的需求導致使用了大量的軟件新技術,新技術上的儲備也不充分,例如并行計算、智能算法、大數據存儲。可以說,型號軟件的技術廣度,直接影響到系統拓展的范圍,制約了航天運載信息化進程,是推進快速進入空間能力建設亟需突破的瓶頸問題。在當前新型安全威脅面前,實現體系裝備、基礎設施自主可控是現實需求,航天領域必須在關鍵系統采用國產自主可控設備,從硬件元器件、軟件編譯器以及系統運維層面實現自主可控,全面消除當前系統中存在的安全隱患。
運載火箭型號軟件的開發和發展在標準體系、管理模式、專業團隊、產品體系、支撐工具和發展生態等方面可采取如下對策:
a)管理與流程敏捷化。將型號軟件相應的管理標準體系,如《質量管理體系要求》(GJB9001C)、《軍用軟件成熟度模型》(GJB5000A)和《測試實驗室和校準實驗室通用要求》(GJB2725A)等與型號管理模式等融為一體,并針對應對變化、提升效率、保證進度和保證質量4 個方面優化軟件產品研制模式。
b)專業與團隊領域化。軟件專業服務的領域寬泛,如果建立按領域劃分專業和團隊,大致可以分為共性技術和產品團隊。共性技術方面,大型軟件系統的架構設計可作為一個專業,研制綜合管理可獨立一個團隊。然后,按照產品團隊劃分:指控測控(主要是網絡通信與人機交互專業)、數據應用(主要是大數據存儲與大數據分析專業)、作戰任務規劃(主要包括架構設計、流程設計與地理信息系統GIS 技術等專業)、諸元計算(以算法專業為代表)。還有,軟件評測團隊可分為綜合管理、軟件評測、現場可編程門陣列(FPGA)驗證和軟件系統驗證。
c)技術與產品體系化。針對底層、共性、通用、專用的軟件技術,建立技術體系、評估技術能力和技術成熟度。在此基礎上,建立產品支撐型號的理念,建設以產品為核心的研制體系,基于產品重構隊伍組建模式,針對軟件產品,從系統級、平臺級和模塊級形成產品型譜,支撐系統解決方案、集成開放型平臺和接口開放型模塊三級需求。這三級就是面向最終用戶和業務領域技術、面向軟件隊伍和軟件技術、面向具體功能的三級。
d)工具與環境智慧化。以自動化和智能化手段,將最優的軟件研制實踐經驗凝結在包括軟件需求分析、設計開發、測試等系列支撐工具里面。運用信息技術對海量數據進行挖掘、采集和梳理成為主流,利用這些先進技術進行基于云的一體化研制環境、大型軟件系統的驗證環境、軟件實驗室環境優化。
e)資源與能力協同化。建立長期戰略合作的、強有力信得過的科研院所、公司、高校等外部開發力量的體系,進行優勢互補、模式共贏,獲得長期的、有規劃的資源支持,形成軟件發展的生態。
由于運載火箭型號軟件發展現狀和研制特點,需不斷改變和調整現軟件產品的開發和管理水平,才能降低軟件產品的風險,不斷提高運載火箭型號軟件產品的成熟度。