梁 克, 王靜華
(中國空間技術研究院 載人航天總體部,北京 100094)
載人航天器軟件承擔著計算、控制、通信等作用,其產(chǎn)品的質量對于確保航天器飛行任務的圓滿完成至關重要。不論是執(zhí)行我國首次交會對接任務的“天宮一號”目標飛行器和“神舟八號”飛船,還是未來支持航天員長期在軌駐守、開展軍民空間應用和在軌服務技術試驗的空間站,這些航天器軟件研制具有技術新、難度大、周期長等特點。為了確保軟件產(chǎn)品質量受控,需要研究出一種行之有效的軟件研制技術管理方法。
本文以目標飛行器軟件研制為例,對在目標飛行器載人飛船軟件研制過程中探索出的一種精細化的軟件技術研制管理方法進行介紹。
1)技術新、難度大
載人航天工程每前進一步,就需要我們自主攻關突破多項新技術[1]。軟件產(chǎn)品為適應新的任務要求,會增加新的性能需求。另外,載人航天器的高可靠性和安全性,多艙段(航天器)信息系統(tǒng)和控制系統(tǒng)內(nèi)外部接口多,工作模式復雜,都從系統(tǒng)層面對軟件產(chǎn)品的協(xié)調(diào)性、匹配性提出更高要求。
比如,在交會對接任務中,船器對接和分離的時序配合、工作模式轉換關系復雜,信號處理的協(xié)調(diào)性、實時性和可靠性等都成為軟件設計的難點。
因此,滿足日益復雜的任務要求和用戶需求將成為軟件技術開發(fā)的重點和難點。
2)新研軟件配置項多
“神舟一號”到“神舟七號”載人飛船飛行任務與“天宮一號”目標飛行器相比有較大差異?!疤鞂m一號”的主要任務目標是交會對接,需要完成交會對接技術試驗驗證;在組合體階段,需要保證航天員的在軌工作、生活、試驗的正常進行;最后建立在軌長期可靠運行的載人空間實驗室。面臨新的任務需求和目標要求,需要開發(fā)一系列的任務配置軟件,這些軟件與以往載人飛船的應用軟件相比復雜、技術新、難度大。
3)軟件系統(tǒng)設計方法不足
載人航天器軟件產(chǎn)品涉及的分系統(tǒng)和研制單位多,目前系統(tǒng)、分系統(tǒng)和單機的各級需求分析與分解方法粗略、不系統(tǒng),特別是各級關于可靠性和安全性的需求分析與分解往往滯后或不細化。這將導致需求分析不準確甚至偏離需求,出現(xiàn)上一級可靠性和安全性的需求在軟件實現(xiàn)中落實不到位或者滯后,將對軟件研制進度或驗證充分性帶來較大影響。
在軟件的發(fā)展還不能很好地滿足工程需求的情況下,制定切合實際的軟件研制流程和計劃,以求軟件研制與工程研制進度的協(xié)調(diào)統(tǒng)一就顯得格外重要。
4)產(chǎn)品保證能力與任務高要求不相適應
目標飛行器研制隊伍年輕,人員的綜合能力不強;新參研單位很多,每個單位軟件開發(fā)能力和工程化基礎水平參差不齊。另外,目標飛行器的研制和后續(xù)等多型號研制并舉,人力和物力資源集中保障難度大。這些狀況對軟件產(chǎn)品研制過程各環(huán)節(jié)的工作質量和產(chǎn)品質量均會帶來較大影響,急需探索一種有效的軟件研制技術管理方法以控制可能帶來的風險。
航天科技集團公司十分重視軟件工程的實施,于2001年發(fā)布了“航天型號實施軟件工程的技術規(guī)定”,并組織編寫了《航天軟件工程實施技術指南及范例》[2]。2005年及之后又發(fā)布了“航天型號軟件工程化管理要求”(Q/QJA 30-2005)、“航天軟件產(chǎn)品保證要求”(QJ3126A-2008)等航天標準,對軟件實施工作提出了更具體的要求。目前航天型
號軟件研制普遍采用的技術流程如圖1所示[3]。
圖1 航天型號軟件研制技術流程Fig.1 Technical process of space software development
在目標飛行器軟件研制中對原有的軟件研制技術流程進行了改進,即以航天型號軟件研制技術要求為基礎,以型號研制階段為依據(jù),對圖1所示的軟件研制技術流程進行了細化、優(yōu)化,既突出了每個階段的研制工作重點,又強調(diào)了各類軟件開發(fā)技術路徑,要求明確、可操作性強。改進后的軟件研制技術流程稱之為精細化軟件研制技術流程,如圖2所示。
圖2 精細化的軟件研制技術流程Fig.2 Elaborate technical process of software development
初樣階段的軟件研制重點有軟件系統(tǒng)設計過程、軟件需求的漸進迭代過程、設計編碼測試過程和第三方初步測評過程和初樣階段的驗收總結工作,以保證軟件以穩(wěn)定可靠的狀態(tài)轉入正樣階段。
正樣階段的軟件研制重點有軟件需求清理、并依據(jù)清理結果分類完成全部或部分(初樣尚未完成的)軟件工程化工作,以保證各類軟件的各項研制任務圓滿完成,達到航天型號軟件研制技術要求所規(guī)定的交付條件。
精細化軟件研制技術流程具體說明如下。
1)初樣階段
在初樣階段,總體與分系統(tǒng)、分系統(tǒng)與單機承制方通過一輪自頂向下、自下向上的迭代過程,完成系統(tǒng)級、分系統(tǒng)級和單機層面的分析,提煉出軟件功能、性能、安全性等需求。軟件研制單位與硬件研制方協(xié)同完成“單機系統(tǒng)分析及軟硬件聯(lián)合設計”,最終確定出軟件配套表及軟件配置項的安全等級。同時,總體制定軟件工程化實施細則,指導軟件研制單位的各項工作。
載人航天器初樣階段軟件研制允許采用的開發(fā)模型包括“瀑布式”、“漸進式”和“類增量式”。軟件研制方一旦選定了開發(fā)模型后,則按該模型規(guī)定的程序進行軟件設計、編碼和測試等工作。
軟件在經(jīng)過研制方充分測試后送交第三方測評,原則上,所有軟件必須通過包括靜態(tài)分析、人工走查、動態(tài)測試在內(nèi)的所有第三方評測項目。
在轉正樣階段之前,軟件需要完成一項重要的測評項目,即結合型號研制流程完成系統(tǒng)級聯(lián)試。
在型號由初樣轉正樣期間,對各軟件配置項進行初步驗收和總結,檢查研制單位軟件研制技術流程實施情況。
2)正樣階段
型號轉入正樣階段后,結合型號正樣設計工作,總體組織分系統(tǒng)對軟件需求、安全性等級等進行復核。進而以初樣軟件驗收為基線,綜合評估軟件需求穩(wěn)定性、初樣階段軟件研制質量等情況,將軟件產(chǎn)品分為3類。
I類:相對初樣階段驗收基線,在后續(xù)過程中,需求沒有任何更動的軟件或者軟件需求更動但不涉及代碼更動(文檔勘誤)的軟件。
II類:軟件需求無任何更動,但代碼有更動(設計優(yōu)化等)的軟件。
III類:需求和代碼均變動。
同時,總體適時完善相應的管理要求。
I/II類軟件的開發(fā)研制單位在初樣工作基礎上,完成后續(xù)的測試、評測、驗收等工作。對于III類軟件,分系統(tǒng)/軟件研制單位在任務分析和系統(tǒng)設計的基礎上,要求修訂并重新下達任務書,或者重新進行軟件需求分析,修訂需求說明書;在此基礎上,軟件研制單位仍需要開展新一輪的設計、編碼、測試、評測、交付驗收工作;之后,才能進入I/II類軟件開發(fā)流程。
對于關鍵等級高的軟件,研制單位均需完成可靠性、安全性復查以及中斷沖突分析,并通過專家評審。
為了保證系統(tǒng)測試的有效性,更好地控制系統(tǒng)測試中間的軟件狀態(tài)變化,在系統(tǒng)測試前完成配置項的驗收及總結。
在系統(tǒng)級聯(lián)試過程中發(fā)現(xiàn)的軟件問題,嚴格按照要求[4]由總體組織相關分系統(tǒng)和軟件研制單位完成相應的問題糾正、回歸測試以及所涉及的配置管理工作。
各軟件配置項的驗收及總結完成且軟件在系統(tǒng)測試中考核正確后,開展分系統(tǒng)軟件驗收及總結工作,重點審查分系統(tǒng)在軟件研制過程中的工作以及配置項驗收時待辦事項的落實情況;同時結合系統(tǒng)測試,確認分系統(tǒng)所有軟件狀態(tài)。
根據(jù)目標飛行器軟件工程化實施的效果,可總結本文給出的精細化軟件研制技術管理方法具有如下特點。
1)軟件研制工作階段化
軟件研制工作結合型號研制進度分階段開展,可以更有效地實施軟件研制的過程控制,規(guī)范其設計、開發(fā)和驗證過程,提高研制單位軟件工程化的工作質量。同時,隨著型號工作的深入開展,對關鍵技術環(huán)節(jié)和影響成敗的因素的理解更加深刻,軟件研制工作的階段化也有利于及時糾正軟件需求中的偏離以及不細化等缺陷。
在目標飛行器軟件研制過程中,型號轉入正樣研制階段后總共有42%的軟件發(fā)生了需求更動,并按照III類軟件的要求完成了新一輪詳細設計。通過正樣階段的工作,有效控制了由于交會對接任務所涉及的新產(chǎn)品多、技術難度大、成熟度低所帶來的風險。
2)軟件管理工作區(qū)別化
軟件配置項尤其是新研軟件的增多加大了總體、分系統(tǒng)等各級軟件研制技術管理工作的負擔。本文給出的方法將軟件按照安全關鍵程度、需求穩(wěn)定性、開發(fā)模型等進行分類,實現(xiàn)區(qū)別化管理,既能有效控制關鍵質量環(huán)節(jié),保證了軟件研制技術管理的實效性,又能使總體、分系統(tǒng)和軟件研制單位各負其責,保證了軟件研制技術管理的可操作性。
對于需求常發(fā)生變動且關鍵等級高的軟件,其研制過程的關鍵質量控制點必須由總體組織專家評審;需求發(fā)生變動但關鍵等級不高的軟件,由分系統(tǒng)組織專家評審,結論上報總體。
3)軟件質量控制深入化
軟件各質量控制點均采取總體、分系統(tǒng)、配置項三級控制策略,對軟件質量進行層層把關,深入控制。同時為保證系統(tǒng)測試的有效性和充分性,軟件配置項必須通過總體組織的驗收后才能參加系統(tǒng)測試,使質量控制點前移。
目標飛行器軟件配置項驗收控制點的前移,保證了各軟件配置項在系統(tǒng)測試前已完成開發(fā)方測試、分系統(tǒng)聯(lián)試和第三方評測等各項測試工作,有效減少了軟件系統(tǒng)測試期間的問題發(fā)生概率,使得軟件的最終版本能夠在系統(tǒng)測試中得到充分測試,降低了軟件風險。
載人工程后續(xù)型號將面臨對軟件功能和配置的更多需求,這要求我們繼續(xù)深入地研究載人航天器軟件研制的特點,并對現(xiàn)有的軟件研制技術管理不斷細化和優(yōu)化,以促進軟件產(chǎn)品的開發(fā)管理水平、降低軟件產(chǎn)品風險,不斷提高載人航天器軟件產(chǎn)品的成熟度。
(References)
[1]張柏楠, 戚發(fā)軔.中國載人航天技術的歷史性跨越[J].航天器工程, 2008, 17(5): 1-6
Zhang Bainan, Qi Faren.Historic leap of China’ s human spaceflight technology[J].Spacecraft Engineering, 2008,17(5):1-6
[2]中國航天科技集團公司軟件專家組.航天軟件工程實施技術指南及范例[M].2005
[3]Q/QJA 30—2005 航天型號軟件工程化管理要求[S],2005-10-21
[4]Q/QJA 10—2002 航天產(chǎn)品質量問題歸零實施要求[S],2002-08-08