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