隗合建 /中國運載火箭技術(shù)研究院
2022 年,中國航天科技集團有限公司印發(fā)的年度質(zhì)量工作要點中明確提出,要加速航天精益產(chǎn)品保證工作落地見效,補充建設(shè)相應(yīng)的產(chǎn)品保證專業(yè)技術(shù)支撐機構(gòu)。中國運載火箭技術(shù)研究院在三年質(zhì)量提升工程中也提出,建立面向型號和產(chǎn)品的一體化、專業(yè)化產(chǎn)品質(zhì)量保證隊伍,完善產(chǎn)品質(zhì)量保證標準規(guī)范,完善技術(shù)支撐機構(gòu)的產(chǎn)品質(zhì)量保證工作流程等明確要求。
軟件產(chǎn)品是航天工程任務(wù)的重要組成部分,隨著研究院新型號、新任務(wù)、新產(chǎn)業(yè)的不斷增加,軟件任務(wù)量也大幅增加,同時軟件在航天工程任務(wù)中功能占比也呈現(xiàn)逐年增加的趨勢,可以看出軟件在航天工程中發(fā)揮了越來越重要的作用。軟件產(chǎn)品的質(zhì)量直接關(guān)乎整個工程研制的質(zhì)量,因此需要建立符合航天工程任務(wù)特點的軟件產(chǎn)品保證體系。
自20 世紀80 年代,美國航空航天局(NASA)就緊密圍繞航天工程任務(wù)成功,將技術(shù)與管理有機結(jié)合,發(fā)布了一系列關(guān)于軟件的文件,突出了軟件產(chǎn)品保證安全性、系統(tǒng)性、規(guī)范化、專業(yè)性和獨立性等特點,并隨著工程應(yīng)用實踐不斷更新。筆者通過對NASA 軟件工程和產(chǎn)品保證實踐經(jīng)驗的學(xué)習(xí),結(jié)合目前我國航天軟件產(chǎn)品保證工作的特點,提出了航天軟件產(chǎn)品保證要準確把握航天軟件安全關(guān)鍵的本質(zhì)特征,緊密圍繞確保航天工程任務(wù)成功的核心目標。采用技術(shù)和管理相結(jié)合的方法關(guān)注風(fēng)險識別與控制,將產(chǎn)品保證與組織過程改進相結(jié)合,充分發(fā)揮技術(shù)支撐機構(gòu)作用開展軟件產(chǎn)品保證基礎(chǔ)工作和型號軟件產(chǎn)品保證,并通過信息化手段實現(xiàn)高效產(chǎn)品保證。
航天軟件的本質(zhì)特征是高可靠性、高安全性、高實時性,并與航天重大工程背景協(xié)同一體化。航天軟件工程的本質(zhì)特征是實現(xiàn)軟硬件集成系統(tǒng),軟件需求通過試驗逐漸完備,開發(fā)過程整體在遵循瀑布模型的前提下,具體研制工作快速迭代,實現(xiàn)航天工程任務(wù)圓滿成功。
產(chǎn)品保證是對航天系統(tǒng)大型復(fù)雜工程研制過程中質(zhì)量相關(guān)工作的綜合。軟件產(chǎn)品保證是為確保軟件產(chǎn)品質(zhì)量滿足交辦方的需求,而在軟件產(chǎn)品生命周期中有計劃和系統(tǒng)地采取一系列有關(guān)質(zhì)量、標準、規(guī)范和過程的控制活動。
(1)軟件產(chǎn)品保證的目標是確保航天工程任務(wù)成功
軟件產(chǎn)品保證遵循系統(tǒng)管理、一次成功的理念,通過技術(shù)和管理活動控制產(chǎn)品質(zhì)量形成的過程和要素,提高型號研制、生產(chǎn)、服務(wù)的效率和效益,確保型號產(chǎn)品完成任務(wù)目標。
(2)軟件產(chǎn)品保證是技術(shù)和管理相結(jié)合的工作
軟件產(chǎn)品保證不僅是質(zhì)量管理、標準化工作,也是在軟件生命周期中開展各項管理和技術(shù)工作的綜合,具有明顯的技術(shù)特征。產(chǎn)品保證隊伍與設(shè)計、測試、質(zhì)量管理隊伍分離,同時強化產(chǎn)品保證工程師識別變化、把握關(guān)鍵的職責(zé),實現(xiàn)對產(chǎn)品研制過程的全程監(jiān)督把關(guān)。
產(chǎn)品保證工作的機制是全過程管控,自設(shè)計至測試、從自研至外協(xié)實現(xiàn)過程全覆蓋,并在不同階段、針對不同對象采取差異化管控方法,重點將傳統(tǒng)的粗放式質(zhì)量管理轉(zhuǎn)向精細化,確保產(chǎn)品質(zhì)量一致性和穩(wěn)定性。
產(chǎn)品保證工作的配套建設(shè)主要通過人員的專業(yè)化、文件體系的規(guī)范化、制度標準的齊備化,將原來的經(jīng)驗式研制轉(zhuǎn)變?yōu)橹R型研制。以風(fēng)險性、精細化、技術(shù)性優(yōu)化管理過程,兼顧多接口、全過程、全要素的管理。
(3)軟件產(chǎn)品保證關(guān)注風(fēng)險識別與控制
實現(xiàn)軟件產(chǎn)品保證過程中技術(shù)和管理相結(jié)合,最重要的方法是采用風(fēng)險管理。對型號研制過程中的技術(shù)風(fēng)險進行充分的鑒別、評價、預(yù)防和控制,保證航天軟件產(chǎn)品安全、可靠、可用,能夠完成規(guī)定的任務(wù)目標。產(chǎn)品保證的工作基礎(chǔ)是科學(xué)配套的產(chǎn)品保證標準、制度體系,細致嚴謹?shù)漠a(chǎn)品保證文件體系,以及行使預(yù)警、叫停職責(zé)的技術(shù)和管理融合的專業(yè)技術(shù)人員隊伍。
(4)軟件產(chǎn)品保證和組織過程改進
產(chǎn)品保證和過程改進均出于高質(zhì)量過程產(chǎn)生高質(zhì)量產(chǎn)品這一理念,施以有效的方法使安全關(guān)鍵軟件萬無一失。前者評判一個產(chǎn)品是否合格,后者評判一個組織的能力,兩者密不可分。研制單位更關(guān)注組織本身能力的提升;航天重大工程更關(guān)注各研制單位提供的產(chǎn)品是否滿足質(zhì)量要求。因此,軟件過程改進適合研制單位開展,軟件產(chǎn)品保證適合工程型號推進。
NASA 實踐表明,為了發(fā)揮質(zhì)量與可靠性保障作用,有必要建立集技術(shù)和管理權(quán)威于一體的技術(shù)支撐機構(gòu)工作體系,完整體現(xiàn)各級組織、型號及技術(shù)支撐機構(gòu)相互結(jié)合的關(guān)系,并發(fā)揮技術(shù)支撐機構(gòu)的獨立監(jiān)督、服務(wù)作用。
技術(shù)支撐機構(gòu)需要統(tǒng)一部署,形成專業(yè)、技術(shù)上的優(yōu)勢,全面參與型號研制的策劃與過程管理,制定軟件產(chǎn)品保證工作計劃,覆蓋型號研制所有環(huán)節(jié),發(fā)揮獨立把關(guān)作用,將控制點前移,將預(yù)防為主方針落到實處,推動型號軟件產(chǎn)品保證實施。
技術(shù)支撐機構(gòu)是開展前沿性和基礎(chǔ)性專業(yè)技術(shù)研究的權(quán)威機構(gòu),應(yīng)總體掌控型號中的質(zhì)量與可靠性技術(shù)基礎(chǔ)研究需求,制定專業(yè)技術(shù)發(fā)展路徑,提前籌劃基礎(chǔ)研究與能力建設(shè)工作,以滿足型號研制需要。
技術(shù)支撐機構(gòu)應(yīng)對積累的數(shù)據(jù)進行深入分析,建立質(zhì)量問題舉一反三基線,將新技術(shù)方法、工具設(shè)備和管理模式融入到型號研制過程中,為型號研制流程優(yōu)化、研制能力提升提供決策支撐。
(1)評測機構(gòu)能力認證
航天軟件在幾十年的發(fā)展過程中提出了以評測促軟件工程化的理念,軟件評測機構(gòu)在軟件研制過程中發(fā)揮了重要的作用。軟件評測機構(gòu)均有擅長的測試領(lǐng)域,工程型號選擇軟件評測機構(gòu)時,不僅要按照傳統(tǒng)的嵌入式軟件、非嵌入式軟件、可編程邏輯器件進行評測能力認證,也應(yīng)按照計算機、控制器、雷達、導(dǎo)引頭、敏感器等產(chǎn)品進行評測能力認證,提升評測機構(gòu)在特定產(chǎn)品領(lǐng)域的評測專業(yè)技術(shù)能力。
(2)舉一反三基線和故障啟示錄
NASA 一直致力于航空航天的進步,這不僅體現(xiàn)在技術(shù)發(fā)展本身和技術(shù)著作上,還體現(xiàn)在技術(shù)史、經(jīng)驗總結(jié)等方面。NASA 出版的《工程中的經(jīng)驗教訓(xùn)》回顧了近60 年的太空計劃項目,提煉升華為9 個工程準則以及27 個經(jīng)驗教訓(xùn),幾乎覆蓋了技術(shù)攻關(guān)、項目管理、人力資源等航天系統(tǒng)工程的所有領(lǐng)域。
NASA 針對軟件質(zhì)量歸零問題和典型問題,編制舉一反三基線、故障啟示錄等代表性的經(jīng)驗教訓(xùn)總結(jié)報告,從系統(tǒng)需求、軟件需求、源代碼、測試用例、問題描述、問題機理、更改措施、經(jīng)驗啟示進行全流程的總結(jié),可供研制方、測試方參考借鑒。
(3)測試數(shù)據(jù)分析報告
航天軟件較為復(fù)雜,涉及的研制單位、產(chǎn)品領(lǐng)域多,同時航天軟件研制單位和產(chǎn)品領(lǐng)域又相對固定。通過對軟件研制過程中的代碼走查、開發(fā)方測試、第三方測試數(shù)據(jù)進行統(tǒng)計分析能夠發(fā)現(xiàn)各研制單位、各產(chǎn)品領(lǐng)域軟件主要故障模式,從而對“常見病”“多發(fā)病”進行分析,明確軟件設(shè)計和測試中的關(guān)注點,優(yōu)化測試方法,加強在系統(tǒng)試驗環(huán)境、板級測試中驗證軟件主要功能,在仿真測試環(huán)境中針對典型故障模式做針對性測試,以便在測試時間短的情況下達到最佳測試效果。
(4)軟件架構(gòu)、設(shè)計準則、測試規(guī)范、測試集
NASA 發(fā)布的《飛行軟件復(fù)雜度研究報告》對過去40 年的大量任務(wù)(包括已發(fā)射和未發(fā)射的)中的飛行軟件問題進行了綜合分析,分析飛行軟件規(guī)模和復(fù)雜度的增長,提供降低管理復(fù)雜度的建議,提出解決軟件復(fù)雜度問題只能依靠“最佳實踐”,其中軟件架構(gòu)是緩解復(fù)雜度的關(guān)鍵技術(shù)手段,而構(gòu)建參考架構(gòu)是“最佳實踐中的最佳”。
加強編譯器、數(shù)據(jù)庫等基礎(chǔ)軟件和飛行控制軟件以及信息處理軟件等應(yīng)用軟件的設(shè)計、測試經(jīng)驗固化,構(gòu)建可重用的軟件參考架構(gòu),形成設(shè)計準則、測試規(guī)范、測試集向工程師推送,便于員工培訓(xùn)、提供設(shè)計和測試指導(dǎo),有助于快速抓住研制重點、建設(shè)測試環(huán)境、提升測試效率。
(5)軟件研制工具體系建設(shè)
針對航天軟件實時性強、硬件資源約束等特點,應(yīng)研制代碼編程規(guī)則檢查、質(zhì)量度量等靜態(tài)測試工具以及目標碼測試、全數(shù)字仿真等動態(tài)測試工具,支持空間單粒子翻轉(zhuǎn)、長時間在軌運行導(dǎo)致的計時計數(shù)溢出、時序不匹配等航天軟件典型問題的檢查,擺脫軟件測試對硬件環(huán)境的依賴,提高故障注入手段。
型號軟件產(chǎn)品保證從型號研制方案階段開始,根據(jù)任務(wù)要求和風(fēng)險分析結(jié)果,確定關(guān)鍵節(jié)點和關(guān)鍵產(chǎn)品,按源頭起控、過程監(jiān)督、獨立審查的原則開展活動,嵌入型號研制的全流程中。根據(jù)型號研制實際情況,軟件生命周期往往有所裁剪,在開展軟件產(chǎn)品保證的過程中,對于入口應(yīng)堅持底線思維,確保滿足產(chǎn)品保證工作的最低要求清單,逐漸進行迭代演化;對于出口應(yīng)堅持紅線思維,明確不能突破的負面清單,進行有限制條件的放行。
(1)研制單位能力確認
型號研制方案階段應(yīng)對研制單位通過GJB5000認證的資質(zhì)能力進行確認,如果發(fā)現(xiàn)存在未通過GJB5000 相應(yīng)等級認證的單位,應(yīng)在研制過程中予以關(guān)注,在技術(shù)狀態(tài)管控、配置管理、更改影響域分析等方面開展必要的軟件工程化檢查活動。
(2)軟件研制要求制定
在型號研制早期,產(chǎn)品保證隊伍應(yīng)配合型號隊伍制定軟件研制有關(guān)的頂層要求。軟件系統(tǒng)方案中應(yīng)明確軟件配套表、軟件產(chǎn)品結(jié)構(gòu)樹、軟件上下位通信信息流;軟件通信協(xié)議包括內(nèi)外部通信介質(zhì)、數(shù)據(jù)格式和發(fā)送時序;軟件工程化大綱中可考慮工程研制階段與試驗鑒定階段要求融合;開發(fā)運行環(huán)境統(tǒng)型應(yīng)考慮芯片、編譯器、數(shù)據(jù)庫、操作系統(tǒng)等使用統(tǒng)一版本,避免由于版本過多、版本不一致帶來的研制風(fēng)險。
(3)軟件需求審查
從歷年質(zhì)量歸零問題來看,軟件需求缺陷問題每年占15%以上,主要原因是軟件需求中關(guān)于安全性設(shè)計準則的描述籠統(tǒng)。在軟件研制過程中,要加強軟件需求驗證,開展軟件系統(tǒng)級時序時限匹配性的分析和驗證。軟件需求審查應(yīng)有型號研制人員和產(chǎn)品保證人員參加,型號研制人員重點關(guān)注功能需求,產(chǎn)品保證人員重點關(guān)注安全性/可靠性設(shè)計準則、性能等非功能需求是否根據(jù)本型號的實際情況予以具體細化。
(4)代碼走查
軟件缺陷越早發(fā)現(xiàn)進行更改的成本越低。單元測試是發(fā)現(xiàn)早期缺陷的有效手段,但是往往投入不足。這種情況下,組織有經(jīng)驗的軟件工程師開展代碼走查是非常有效的手段。
(5)軟件第三方測試
軟件第三方測試是軟件研制過程中的關(guān)鍵環(huán)節(jié)。一個工程型號中的各個軟件第三方測試要求應(yīng)橫向一致,除了在依據(jù)軟件需求規(guī)格說明進行測試外,還應(yīng)按照軟件故障模式庫挖掘軟件隱含需求,這就需要技術(shù)支撐機構(gòu)對軟件第三方測試過程進行技術(shù)審查。
(6)軟件歸零、舉一反三、專項復(fù)查和獨立評估
歸零是航天行之有效的質(zhì)量管理手段,為系統(tǒng)研究問題、積累知識提供了基本方法。軟件產(chǎn)品保證過程遇到軟件質(zhì)量問題時,通過技術(shù)上的分析、管理上的改進,進行有針對性的舉一反三,提高航天產(chǎn)品的質(zhì)量水平達到系統(tǒng)預(yù)防的目的。
技術(shù)支撐機構(gòu)要針對工程型號的具體特點,制定專項復(fù)查要求,由各研制單位自行復(fù)查,技術(shù)支撐機構(gòu)予以確認。對于工程型號中特別巨大的風(fēng)險,應(yīng)該開展獨立評估,技術(shù)支撐機構(gòu)對系統(tǒng)需求、軟件需求、軟件設(shè)計、源程序、測試用例、測試結(jié)果等軟件生命周期中的所有產(chǎn)物及其過程進行全面的審查。
(7)軟件驗收
軟件驗收是軟件研制過程的集中體現(xiàn),A、B級軟件應(yīng)獨立驗收,軟件產(chǎn)品保證人員應(yīng)參加軟件驗收,并確認研制過程中識別出的風(fēng)險是否均已通過相應(yīng)措施進行控制。
軟件產(chǎn)品保證工作應(yīng)依托信息化平臺進行,將軟件產(chǎn)品保證思想、質(zhì)量控制措施等貫穿于整個軟件研制流程。通過搭建信息化平臺,可以為一定范圍內(nèi)的軟件研制、管理人員提供軟件研制過程中可用、有效的信息,統(tǒng)計分析研制過程數(shù)據(jù)、質(zhì)量數(shù)據(jù),獲取軟件設(shè)計準則、測試規(guī)范等知識,從源頭提升軟件產(chǎn)品質(zhì)量。
部分軟件研制單位構(gòu)建了協(xié)同開發(fā)平臺,系統(tǒng)設(shè)計人員、軟件設(shè)計人員、軟件測試人員、質(zhì)量管理人員可以實時掌握軟件研制信息,在系統(tǒng)設(shè)計初期準確把握軟件實現(xiàn)需求。軟件設(shè)計人員利用平臺自動推送的設(shè)計準則、重用代碼庫快速實現(xiàn)軟件功能模塊并與系統(tǒng)設(shè)計人員、軟件測試人員實現(xiàn)高效迭代;軟件測試人員通過信息平臺推送的通用測試用例、測試準則,對軟件進行敏捷測試;質(zhì)量管理人員通過共享的信息平臺,準確把握軟件研制進度,跟蹤軟件質(zhì)量問題處理情況,及時總結(jié)并不斷完善研制流程中質(zhì)量控制點,協(xié)同實現(xiàn)對軟件產(chǎn)品質(zhì)量保證。
軟件產(chǎn)品保證從基礎(chǔ)建設(shè)到融合發(fā)展,是一個不斷深化的過程。提升平臺技術(shù)水平、擴大應(yīng)用規(guī)模、納入業(yè)務(wù)流程是發(fā)展重點,將數(shù)據(jù)采集、信息擴散、知識使用等環(huán)節(jié)逐步融入科研生產(chǎn)流程,實現(xiàn)產(chǎn)品保證要素的閉環(huán)管理,促進高質(zhì)量經(jīng)驗知識的傳遞、激發(fā)、沉淀和積累,打造組織知識管理、項目協(xié)同推進、員工能力提升的一體化平臺,實現(xiàn)知識型研制。