軍用機載通信設備嵌入式軟件的適航管理
2.2.3 軟件配置管理
軟件配置管理(Software Configuration Management,SCM)非常重要,它關系到軟件研制工作的有效性、軟件產品的可用性和可信性。SCM是標識和確定系統(tǒng)或設備中軟件配置項的過程,在整個軟件生命周期內控制這些軟件配置項的發(fā)放和更改,記錄并報告配置的狀態(tài)和更改要求,驗證配置項的完整性和正確性。其中,軟件配置項即軟件產品在不同時期的組合,包括在軟件生命周期各階段產生的各種形式和各種版本的文檔、程序和數據等。軟件配置項隨著開發(fā)工作的進展而不斷變化。
(1)制定軟件配置管理計劃
機載設備實施初期依據該設備的軟件開發(fā)計劃進行配置策劃,明確配置管理內容,以便有計劃地開展配置管理工作。同時根據軟件開發(fā)計劃等頂層文件確定配置管理的詳細要求,由軟件配置管理員制定軟件配置管理計劃初稿,包含配置管理組織、標識規(guī)定、軟件配置項、基線定義、更改控制、狀態(tài)報告和版本管理等。評審通過后,正式作為該設備配置管理活動的依據。
(2)基線
基線(baseline)是軟件生命周期各階段末尾的特定點,也稱為里程碑?;€是經過正式審核與同意的規(guī)格說明或產品,可用作下一步開發(fā)的基礎。基線確定后,只能通過正式的更改管理辦法變更。機載設備軟件生命周期各階段基線劃分如圖1所示。本文引用地址:http://www.ex-cimer.com/article/201610/306031.htm
(3)變更管理
滿足RTCA DO-178B要求的軟件研發(fā)過程中,所有基線變更都應在有效的控制下進行。
機載設備嵌入式軟件因為其開發(fā)難度和開發(fā)周期,在軟件生命周期的各階段是很容易出問題的。一旦發(fā)現問題,不管是文檔還是代碼,均需要通過變更來滿足系統(tǒng)需求和相應的適航要求。軟件變更前應提出申請,經過嚴格審批后才能實施變更,防止隨意修改造成的失控和混亂,導致軟件工作的損傷。同時對軟件更改還建立了問題報告單、更改申請、更改報告、問題歸零、出/入庫的可追蹤管理制度。更改后的軟件產品經過評審和審批后再納入配置管理。
2.2.4 質量控制和監(jiān)督
滿足RTCA DO-178B要求的軟件研發(fā)過程中,軟件質量保證活動SQA是必不可少的。SQA通過保證研制過程中符合批準的軟件計劃及標準,確保軟件生命周期中的產品符合軟件需求提供的置信度。
機載設備依據軟件研制任務書及軟件需求開展SQA。在設備啟動初期,軟件質量師依據系統(tǒng)下發(fā)的軟件質量保證大綱編制SQA計劃,提出軟件生命周期各階段的質量管理要求,以持續(xù)監(jiān)控整個軟件生命周期過程并評審軟件產品。
軟件生命周期各階段質量保證活動的輸出產物為SQA記錄,包括SQA評審或審核報告、軟件符合性評審記錄等,跟蹤并確保評審問題或不符合項的解決和閉環(huán)。
同時,SQA還對各個階段的軟件配置管理活動進行監(jiān)督和檢查,形成配置審核記錄;對系統(tǒng)集成階段設備裝入分系統(tǒng)或系統(tǒng)聯(lián)試期間發(fā)現的軟件問題的糾正情況進行監(jiān)督和檢查,保證問題歸零。
2.2.5 軟件文檔資料
軟件文檔是軟件的重要組成部分。文檔內容是根據軟件開發(fā)過程中各階段的工作任務而產生的,主要記載各階段的主要活動信息和要求。
規(guī)范、細致地編制、管理和維護文檔,對軟件工程化管理具有非常重要的意義。
機載設備根據軟件文檔編制要求進行軟件文檔的編寫,保證交付的文檔完全符合工程要求且準確、完整和規(guī)范。交付的文檔同時作為軟件配置項納入配置管理,嚴格控制文檔的更改。
2.3 軟件設計和實現
2.3.1 軟件設計遵循原則
機載設備嵌入式軟件遵循以下設計原則:
(1)嚴格執(zhí)行數字式電子類機械設備(軟件部分)的研制通用要求;
(2)軟件研制過程中,將可靠性和安全性放在首位;
(3)采取分層次、模塊化設計,方便進行裁減和升級;
(4)減小應用軟件與底層處理器硬件相關性,通過提供標準的接口規(guī)范,分離應用軟件與特定硬件相關的代碼。
2.3.2 軟件設計和實現
(1)設計方法
軟件采用多處理器的分布式結構,以實時分布式方式并行運行在各處理器上。軟件主要采用適合嵌人式軟件的結構化方法,自頂向下按功能劃分成幾個能獨立工作的軟件模塊進行開發(fā)和管理。
(2)實現方案
各個功能模塊軟件駐留和運行于相對獨立的CPU上。在各功能模塊中設計接口控制管理層,使應用軟件獨立于硬件接口,既有利于隔離模塊故障,又可以屏蔽硬件差異,將硬件選型對軟件的影響降低到最小,靈活應對硬件變化,最大限度保護軟件資源,有利于軟件維護、升級、測試和系統(tǒng)可靠性的提高。
(3)編程語言
現階段計算機軟件編程采用的語言主要是匯編語言和高級語言。目前,在航電系統(tǒng)上采用的高級語言主要為C,C++。
鑒于高級語言在應用上的一系列問題還有待解決,故常將匯編語言與高級語言混合使用。比如,結合機載設備軟件運行的CPU器件特性,在對中斷及I/O口等寄存器進行初始化或者對CMD文件進行寄存器的配置時采用匯編語言,對設備功能處理方面采用C/C++。
2.4 軟件驗證
2.4.1 定義
RTCA DO-178B對驗證(Verification)的定義是:驗證是軟件開發(fā)過程和軟件驗證過程兩者結果的技術評估。驗證貫穿于軟件開發(fā)過程中,包括了對需求的驗證、對設計的驗證、對代碼的驗證、對集成的驗證及對驗證過程的驗證,目的就是檢測和報告在開發(fā)過程中形成的錯誤。機載設備根據系統(tǒng)軟件驗證和確認要求及評審細則等首先形成軟件驗證計劃,然后以軟件驗證計劃、軟件需求、源代碼及可執(zhí)行目標代碼等作為輸入/輸出軟件驗證用例和規(guī)程、軟件驗證結果。
2.4.2 方法
不同于以往國軍標如GJB2786-1996等,GJB2786認為測試的本身就是保障的手段,著重從測試的方法入手,而RTCA DO-178B是將測試定義為驗證的一部分,驗證的方法包括評審、分析和測試,偏重于對整個驗證過程的本身與活動,且明確驗證是保障的手段。
(1)軟件評審
軟件評審作為軟件驗證的一項重要活動,是軟件質量保證的重要一環(huán)。
為保證嵌入式軟件的研制質量,機載設備遵循系統(tǒng)制定的軟件評審細則,規(guī)范軟件評審活動。同時根據軟件等級要求,對軟件各階段的工作成果進行符合該等級的評審要求和評審方式(外部評審或內部評審)。
為保證嵌入式軟件的研制質量,在機載設備軟件研制初期,在軟件研制任務書、軟件開發(fā)計劃、軟件驗證計劃中對各階段生產的軟件產品評審均進行了明確規(guī)劃,按照質量要求,所有外部評審均有型號總師單位和軍代表參加。
評審時,提交評審的所有文檔必須已經通過逐級審簽。每次評審后必須形成評審報告,評審通過后將其和相關軟件產品納入配置管理。階段產品必須進行并通過評審。
機載設備在軟件生命周期中設立了一系列階段評審點:設備分析和設計階段、軟件計劃階段、軟件需求分析階段、軟件設計階段、軟件實現(編碼與單元測試)階段、軟件集成階段(軟件集成測試、系統(tǒng)測試)、軟件驗收與交付階段。
評審針對各階段的工作成果。在各階段工作成果評審通過后才允許建立相應的基線,才能進行后續(xù)階段的開發(fā)工作。
(2)軟件測試
軟件測試是保證軟件質量的重要手段,完整的軟件測試工作貫穿整個軟件生命周期,它包括兩方面的含義:一是軟件開發(fā)的不同階段都有軟件測試工作;二是軟件測試工作的各個步驟分布在整個軟件生命周期中。
為保證研制質量,按照軟件測試流程,機載設備嵌入式軟件開展了軟件測試活動。在設備分析和設計階段,遵循系統(tǒng)制定的軟件測試細則,依據軟件研制任務書編寫軟件測試計劃,確定軟件測試范圍、目的、測試指標、進度安排及最終形成產品等,根據軟件等級明確要求測試類別和測試方法及測試技術要求。
軟件測試計劃通過評審后即刻開展測試活動,在計劃階段、需求階段和設計階段主要執(zhí)行了測試策劃、測試設計和實現;從編碼階段開始進入測試執(zhí)行,直到軟件集成階段系統(tǒng)測試結束進行測試總結。在測試工作
中,機載設備根據測試執(zhí)行情況對上述四個過程反復迭代(包括軟件回歸測試),直至達到測試要求為止。
(3)一般測試要求
軟件測試類別主要為單元測試、部件測試、配置項(集成)測試、系統(tǒng)測試。
軟件測試方法主要分為白盒測試和黑盒測試。
軟件單元測試時,采用代碼審查、靜態(tài)分析方法和白盒測試的方法完成;軟件部件、軟件配置項測試和系統(tǒng)測試測試時,均采用了黑盒測試方法輔助以白盒測試的方法完成。
(4)機載軟件測試的特點
機載設備軟件為機載嵌入式軟件,機載嵌入式軟件具有以下幾個顯著特點:
①軟件和硬件結合緊密,軟件脫離特定運行環(huán)境是肯定無法運行的,軟件失效與硬件故障有時難以區(qū)分,甚至互相干擾;
②開發(fā)環(huán)境和實際運行環(huán)境不同;
③機載軟件實時性強;
④機載軟件屬于安全關鍵軟件。
目前機載設備嵌入式軟件的測試工作也僅限于對純軟件的測試,但是,嵌入式軟件的前兩個特性給軟件測試提出了新問題,比如軟硬件錯誤的界定、硬件特性對軟件測試的影響等。
機載嵌入式軟件的第三個特性說明了機載軟件是實時多任務處理軟件。如機載設備需要在同一時間段處理多個任務,為了不漏掉任一任務的處理,軟件設計了中斷握手管理。軟件測試時就對中斷握手管理執(zhí)行的語句進行了驗證。
機載嵌入式軟件的第四個特性說明了機載軟件若性能不可靠將帶來災難性后果,因此對其可靠性和安全性要求很高。在機載軟件設計時均采用了一些提高可靠性、安全性的先進技術,比如容錯技術、安全監(jiān)控等,在軟件測試中則充分考慮設計測試用例對這些軟件語句進行了驗證。
機載設備軟件的最后一項測試即飛行測試,也就是我們常說的試飛階段。試飛測試是在飛機飛行中進行的一些特殊測試,包括根據適航要求進行的適航試飛。通過上述方式的軟件測試,將大大保證軍用航電系統(tǒng)機載通信設備軟件有較高的置信度。
(5)軟件測試結果
軟件測試過程中即軟件生命周期各階段的測試產物主要包括各級(單元級、部件級、配置項級、系統(tǒng)級)軟件測試計劃、測試說明、測試報告、測試問題報告、測試總結報告及評審結果等。軟件測試結果在生命周期各階段均進行了管理、跟蹤和控制,并將其納入了配置管理。
3 結語
軍機嵌入式軟件適航工作以提高軍機的安全水平為宗旨,不脫離現有軍機研制管理模式,不改變軍機研制流程,在技術上充分借鑒,在管理上大膽創(chuàng)新,在引入適航理念和方法的過程中不斷積累經驗,探索形成規(guī)范的、有中國特色的軍機嵌入式軟件研制適航工作途徑,推動軍機軟件研制質量與安全水平的不斷提高。
評論