劉巖、溫泉、陳溫成、穆賀強、丁宇 /北京無線電測量研究所
隨著航天裝備體系化、體系智能化、智能實戰(zhàn)化的發(fā)展,“軟件定義裝備”改變了軟件以往附屬于硬件的形態(tài),可以脫離硬件而獨立演化,通過軟件和算法的快速迭代實現(xiàn)裝備能力的持續(xù)提升。軟件已逐漸成為裝備的靈魂,在信息化和智能化進(jìn)程中發(fā)揮基礎(chǔ)性、決定性作用。本文對航天裝備軟件面臨形勢、北京無線電測量研究所過往發(fā)生的軟件質(zhì)量問題進(jìn)行了深入分析,識別出當(dāng)前航天裝備軟件研制過程中亟待解決的問題,并對軟件質(zhì)量綜合能力的提升提出了較為有效的途徑和方法,對于提高航天企業(yè)軟件質(zhì)量管理水平具有一定的借鑒及指導(dǎo)作用。
近年來,航天企業(yè)型號軟件質(zhì)量問題一直困擾著裝備研制工作,涉及型號軟件研制的全壽命周期并呈多樣化。型號軟件質(zhì)量綜合能力提升成為裝備研制中亟待開展的重要工作。
隨著裝備體系化、體系智能化、智能實戰(zhàn)化的發(fā)展,軟件新技術(shù)、新應(yīng)用正對軍工行業(yè)進(jìn)行全方位、多角度、全鏈條的改造,在裝備轉(zhuǎn)型的重要節(jié)點,應(yīng)充分發(fā)揮軟件對裝備發(fā)展的驅(qū)動力,快速突破軟件行業(yè)發(fā)展瓶頸,打造軟件發(fā)展良好生態(tài)。
裝備軟件規(guī)模進(jìn)一步增加、軟件邏輯更加復(fù)雜、軟件交付周期壓縮、軟件質(zhì)量要求提升、軟件密集型特征日益凸顯、協(xié)同化特征不斷加強。裝備高度集成化、智能化、軟硬件相互滲透化,復(fù)雜場景下的要求使得軟件的算法和處理日趨復(fù)雜,傳統(tǒng)的單一平臺向體系化、網(wǎng)絡(luò)化轉(zhuǎn)變,軟件規(guī)模呈指數(shù)級增長,如單套裝備的軟件規(guī)模,20 年間增長100 倍。軟件研制周期壓縮一半以上,要求立項后快速形成能力。裝備軟件的高質(zhì)量大規(guī)??焖俳桓兜男滦枨?,對加強型號軟件質(zhì)量可靠性工作、提升型號軟件保證能力提出了新的挑戰(zhàn)。
國家軍用標(biāo)準(zhǔn)GJB 5000B-2021《軍用軟件能力成熟度模型》,2022 年3 月起正式實施。GJB 5000B 標(biāo)準(zhǔn)的貫徹實施,是建立健全、有效運行、持續(xù)改進(jìn)軟件質(zhì)量管理體系的有力抓手,是提升軍用軟件質(zhì)量總體水平的有效途徑,對于推動裝備“三化”融合高質(zhì)量發(fā)展具有重要意義。需著力開展GJB 5000B 體系建設(shè)、運行和評價,持續(xù)提升軟件能力成熟度。
近年來,研究所型號軟件質(zhì)量問題一直是裝備研制工作中重點關(guān)注問題之一,涉及型號軟件研制的全壽命周期。針對以往發(fā)生的各層級多個軟件問題,從多維度統(tǒng)計并進(jìn)行分析。
軟件設(shè)計缺陷是導(dǎo)致故障發(fā)生的主要因素,需求缺陷、編碼缺陷是次要因素,如圖1 所示。這反映出在軟件設(shè)計評審、軟件成熟構(gòu)件的使用比率等方面仍存在不足。同時應(yīng)提升需求條目化的粒度,在進(jìn)場前充分開展需求一致性檢查等工作。
圖1 軟件質(zhì)量問題原因示意圖
軟件質(zhì)量問題大多發(fā)生在系統(tǒng)聯(lián)調(diào)階段,暴露出軟件在參加正式系統(tǒng)聯(lián)調(diào)前的需求理解不一致、內(nèi)部自測試不充分,導(dǎo)致軟件問題在后期集中發(fā)生的情況,如圖2 所示。
在傳統(tǒng)中央處理器(CPU)軟件問題相對較多的基礎(chǔ)上,F(xiàn)PGA 軟件問題占有比較高的比重,如圖3 所示。這反映出裝備所屬FPGA 軟件的軟件工程化管理應(yīng)進(jìn)一步加強。
圖3 軟件質(zhì)量問題按軟件類型示意圖
基于對當(dāng)前形勢及質(zhì)量問題的深入分析,航天企業(yè)應(yīng)繼續(xù)堅持問題導(dǎo)向和目標(biāo)導(dǎo)向,以GJB 5000B 標(biāo)準(zhǔn)認(rèn)證和軟件工程化能力提升為抓手,重塑型號軟件產(chǎn)品實現(xiàn)過程,找準(zhǔn)關(guān)鍵點和薄弱點,精準(zhǔn)發(fā)力、標(biāo)本兼治,提高軟件重用率,降低軟件缺陷率,從根本上解決影響型號軟件產(chǎn)品質(zhì)量的瓶頸問題,提升軟件過程管控能力和系統(tǒng)預(yù)防能力。
結(jié)合GJB 5000B 新標(biāo)準(zhǔn)的正式發(fā)布,重新進(jìn)行體系文件梳理,強化標(biāo)準(zhǔn)中成果形式、實施要點、裁剪指南的指導(dǎo)作用。深入理解GJB 5000B 標(biāo)準(zhǔn),發(fā)揮領(lǐng)導(dǎo)作用,組織協(xié)調(diào)、資源保障,全方位落實GJB 5000B 標(biāo)準(zhǔn)要求。依據(jù)GJB 5000B 標(biāo)準(zhǔn),結(jié)合業(yè)務(wù)特點、工作目標(biāo)、內(nèi)外審過程中發(fā)現(xiàn)的問題,修改完善相關(guān)體系文件,做好體系的本地化,進(jìn)一步實現(xiàn)強化工程、優(yōu)化管理的總目標(biāo)。落實推廣實施項目,做到領(lǐng)域、部門覆蓋,結(jié)合工程實際,按GJB 5000B 標(biāo)準(zhǔn)要求開展實施,并持續(xù)過程改進(jìn)。
深入學(xué)習(xí)理解GJB 5000B 新標(biāo)準(zhǔn)中的基于模型的軟件開發(fā)GJB 5000 實施指南、基于敏捷方法的GJB 5000 實施指南、基于軟件產(chǎn)品線方法的GJB 5000 實施指南、FPGA 軟件GJB 5000 實施指南等優(yōu)秀實踐方法,結(jié)合新技術(shù)、新方法,形成符合軟件研制的標(biāo)準(zhǔn)規(guī)范、作業(yè)指南,并在試點項目中開展應(yīng)用,實現(xiàn)成果的固化。如強化軟件配套表管理,型號軟件的技術(shù)狀態(tài)控制;加強軟件靜態(tài)分析測試管理,規(guī)范軟件代碼入受控庫要求,明確相關(guān)人員職責(zé)和審批流程;制定并發(fā)布軟件三單編制指南,逐條細(xì)化三單編寫模板,強化影響域分析等要求,規(guī)范三單的編寫要求。
強化研究所各領(lǐng)域、各型號軟件產(chǎn)品配套表管理,將其符合性作為系統(tǒng)/分系統(tǒng)方案報告通過準(zhǔn)則之一。同時依據(jù)軟件產(chǎn)品配套表,縱向型號應(yīng)在試驗進(jìn)場、型號轉(zhuǎn)階段、產(chǎn)品鑒定等重要節(jié)點開展型號軟件產(chǎn)品基線的配置管理審核,其他型號應(yīng)在型號所檢、靶場交付等重要節(jié)點開展配置管理審核。進(jìn)一步加強對軟件接口文件、系統(tǒng)工作過程、算法模型等設(shè)計輸入文件的控制,將其納入型號產(chǎn)品基線進(jìn)行有效管控。
各專業(yè)研究室需加強軟件評審專家?guī)旖ㄔO(shè),系統(tǒng)開展年度軟件專業(yè)評審策劃。同時應(yīng)高度重視對專業(yè)評審問題的分類歸納、評審問題組織資產(chǎn)庫建立。進(jìn)一步改進(jìn)同行評審檢查單,分型號領(lǐng)域、分專業(yè)開展檢查單定制,使檢查項更具有針對性。各型號應(yīng)識別其負(fù)責(zé)軟件中的核心關(guān)鍵模塊,組織軟件項目組,會同同行專家開展代碼審查,形成代碼審查記錄,對檢查發(fā)現(xiàn)的問題實施閉環(huán)處理,實現(xiàn)在設(shè)計階段把問題提前定位及解決,減少缺陷修復(fù)代價。
基于專業(yè)領(lǐng)域特點開展CPU、數(shù)字信號處理(DSP)、FPGA 等各專業(yè)軟件測試人員隊伍建設(shè),扎實推進(jìn)系統(tǒng)級、配置項級軟件測試工作,總結(jié)歸納典型軟件測試用例,逐步建立健全軟件測試用例庫,提升測試效率效果。為規(guī)避代碼早期缺陷,強化采用自動化測試工具開展代碼規(guī)則檢查、缺陷檢查等靜態(tài)測試要求,將靜態(tài)測試問題報告單作為提交軟件入庫的前提條件。識別型號研制中的通用軟件及應(yīng)用軟件,加強對通用軟件的工程化管理,通用軟件必須經(jīng)過充分測試,尤其是覆蓋性、適用性、邊界、異常處理等測試。建設(shè)各專業(yè)領(lǐng)域軟件的仿真測試平臺,建立高逼真度系統(tǒng)模型、構(gòu)建軟件真實運行的多種場景,使軟件驗證擺脫對裝備的依賴,提升軟件調(diào)試驗證能力,縮短軟件研制周期。型號總體人員應(yīng)依據(jù)系統(tǒng)方案報告或軟件系統(tǒng)規(guī)格說明等相關(guān)等效文件,針對典型工作場景、異常應(yīng)急場景等設(shè)計系統(tǒng)測試用例,開展基于場景的系統(tǒng)測試,將測試結(jié)果納入到系統(tǒng)測試報告中。建立各級測試中的測試不到位以及測試條件不具備的測試項目清單,并在下一級測試中予以重點關(guān)注并閉環(huán)處理。
按照GJB 8000《軍用軟件研制能力等級要求》,嚴(yán)格對外協(xié)軟件承研單位的資質(zhì)審查。強化外協(xié)軟件產(chǎn)品需求和設(shè)計過程的監(jiān)控,對識別出的重要軟件應(yīng)提供測試報告等測試記錄文件、軟件配置管理情況記錄文件。在需求和設(shè)計評審中,重點關(guān)注外協(xié)軟件功能性能,以及與其他軟件間接口設(shè)計的正確性。強化外協(xié)軟件產(chǎn)品測試驗證過程的監(jiān)控。在測試評審中,重點關(guān)注外協(xié)軟件功能性能,以及與其他軟件間接口測試的充分性。加強外協(xié)軟件與相關(guān)系統(tǒng)其他軟件的集成測試,重點關(guān)注軟件間接口測試驗證的充分性、正確性、調(diào)用關(guān)系等;關(guān)注外協(xié)軟件在所屬系統(tǒng)中功能性能的正確性、安全性設(shè)計的正確性、異常處理的正確性、邊界處理的正確性等。
強化所級、部門級兩級軟件組織資產(chǎn)建設(shè),提升各級軟件產(chǎn)品成熟度。不斷完善組織資產(chǎn)庫的管理及激勵制度,構(gòu)建完整的組織資產(chǎn)庫的建立、管理、維護以及使用制度。通過激勵制度充分調(diào)動廣大設(shè)計師的積極性,促進(jìn)組織資產(chǎn)的有效積累及使用。逐步構(gòu)建統(tǒng)一的組織資產(chǎn)管理平臺,通過平臺構(gòu)建資產(chǎn)與使用方的追溯關(guān)系,實現(xiàn)工具化的組織資產(chǎn)的發(fā)布、升級及維護,按年度對組織資產(chǎn)庫的增長率及使用率進(jìn)行統(tǒng)計。
建立標(biāo)準(zhǔn)的軟件開發(fā)環(huán)境、集成環(huán)境、測試環(huán)境、部署環(huán)境等,對標(biāo)準(zhǔn)工作環(huán)境進(jìn)行有效控制。構(gòu)建各專業(yè)組織級設(shè)計規(guī)范、流程、指南,提供專業(yè)領(lǐng)域軟件設(shè)計文檔模板、測試文檔模板等。推動各專業(yè)軟件型譜建設(shè),開展軟件需求庫、軟件架構(gòu)庫、軟件通用構(gòu)件等不同層級基礎(chǔ)能力構(gòu)建,完善通用構(gòu)件進(jìn)入及退出機制,提升軟件復(fù)用率。建立過往軟件質(zhì)量問題案例庫,開展問題統(tǒng)計分析,形成典型故障模式,推動共性問題培訓(xùn)、舉一反三,完善軟件設(shè)計規(guī)范。
持續(xù)推進(jìn)敏捷開發(fā)方法在各單位本地化的落地實施,制定基于敏捷開發(fā)模式要求并形成相應(yīng)的軟件生存周期模型,在確保軟件產(chǎn)品質(zhì)量的前提下,優(yōu)化管理流程,提高研制效率。
不斷強化模型驅(qū)動開發(fā)方法在各部門本地化的落地實施。應(yīng)用基于模型的軟件開發(fā)工具,開展系統(tǒng)建模、軟件需求建模、軟件設(shè)計建模、模型仿真、代碼自動生成、測試驗證、文檔自動生成等工作。加強前期需求分析過程,開展需求驗證與設(shè)計驗證;注重基于模型重用的軟件架構(gòu)設(shè)計;建立基于模型的重用資產(chǎn)庫,加強模型重用管理;加強基于模型的測試方法研究,提升驗證與測試的自動化水平。