隨著計算機技術飛速發展及飛機型號性能要求的不斷提高,現代飛機幾乎所有重要功能都與軟件有關,機載軟件的應用規模飛速擴大,包括軟件功能、結構和數據都愈加復雜。由于飛機經歷的外部環境和內部運行狀態千變萬化,飛行安全和任務保障要求不斷提高,使得機載軟件具有實時性、高可靠性的特點,也因此對機載軟件的管理提出了更高的要求。軟件管理是機載設備中的關鍵技術之一,對軟件進行適航管理是一種解決飛機安全性問題的方式,也是最基本的安全性要求。
1 適航的概念與創新實踐
1.1 適航的概念與內涵
適航(Airworthiness)是來自民用航空的概念,1980年,美國科學院在《改進航空安全性》的報告中給出了定義:適航是“在預期的使用環境中和在經申明并被批準的使用期限之內運行時,航空器(包括其部件和子系統、性能和操作特點)的安全性和物理完整性”。
目前,對于民用飛機能否安全地完成各種客貨運輸業務,業界通常以其是否具有“適航性”來衡量,適航已經成為“安全性”一詞在航空技術領域具有更深安全內涵的專用詞語。
1.2 適航要求
我國的適航管理制度是參照美國的適航管理制度建立的,因此我國的機載設備適航管理技術要求也同樣參照美國機載設備適航技術要求。美國機載設備適航技術要求是美國聯邦航空局(FAA)頒發的“技術標準規定(Technology Standard Order,TSO)”,大部分TSO中的技術要求引用的是美國“美國機動車工程協會(SAE)”和美國“無線電技術委員會(RTCA)”的技術文件,例如計算機軟件要求(RTCA DO-178B)、機載電子硬件設計的特別要求(RTCA DO-254)等。
我國的民用飛機機載設備適航技術文件要求是CTSO,但我國現在單獨頒發的CTSO不是很多,進行機載設備適航合格審定時可以直接使用美國的FSO。
1.3 適航在軍機上的創新
安全性是軍用飛機的固有屬性,但在軍機研制中,安全性工作的開展相對比較薄弱,可供借鑒的經驗較少,目前僅有安全性標準GJB900 -1990《系統安全性大綱》,但這一標準可操作性不強,缺乏針對軍機特色的具體技術和方法。在軍機研制中引入適航理念,開展適航工作,是我國軍機研制史上的一次大膽嘗試和重大實踐。適航條款的各項要求為軍機的安全性設計提供了很好的借鑒。
2 軟件適航管理
2.1 軟件適航性
軟件適航性標準采用的是RTCA DO-178B《機載系統和設備合格審定中對軟件的要求》標準,該標準為機載設備嵌入式軟件的研制提供指南,保證其按照適航要求的安全性實現其預期功能。
RTCA DO-178B為機載設備嵌入式軟件的開發過程提出了一系列相關的過程控制方法,包括軟件等級劃分、軟件生命周期過程及之間的關系、軟件驗證過程、軟件配置管理、軟件質量保證等。機載設備研制單位按照RTCA DO-178B的要求對軟件開發和各項活動分別實施規范化的工程管理、協調、監督和控制,保證機載設備嵌入式軟件的整個開發過程有標準化管理,對每個要完成的目標輸入都有對應的目標輸出,根據各階段要求輸出對應的符合性文件、代碼和記錄。比如軟件需求階段,需要根據軟件研制任務書和軟件計劃文檔產生軟件需求規格說明、軟件評審報告及軟件質量保證(SoftWare Quality Assurance,SQA)記錄等。
2.2 軟件工程化管理
軟件工程化管理是軟件適航管理中最重要的一項管理方法。機載設備嵌入式軟件遵循適航工作管理規定及軟件工程化大綱,對軟件開發全過程和生命周期進行定義、規范、控制和管理,使軟件的每一項活動都在受控狀態下進行,保證了軟件狀態的一致性,并達到機載軟件裝機狀態清晰、完整,確保飛行和維護保障的準確可靠。
2.2.1 軟件產品的分析和設計
機載設備分析和設計階段是軟件研制的起始階段,設備承研單位根據系統研制總要求、技術協議書的要求合理分配軟、硬件功能和性能指標,確定設備軟硬件體系結構,進行初步危險性分析并提出對設備的安全性要求,同時根據系統提出的功能、性能和信息接口要求,確定設備軟件運行環境,編制軟件研制任務書。
軟件研制任務書是軟件工程化管理和研發工作的關鍵一步,主要描述軟件開發的目的、目標、主要任務、功能及性能指標等要求,是后續開發階段的必要輸入文件,為軟件開發提供了設計基礎。
2.2.2 明確軟件生命周期過程和軟件等級
(1)軟件生命周期
機載設備嵌入式軟件生命周期包括3個過程:軟件計劃過程、軟件開發過程和軟件綜合管理過程。
為保證機載設備嵌入式軟件的質量,保障飛機的安全,根據軟件生命周期的3個過程繼而細化為10個階段進行控制,分別是:設備分析和設計階段、軟件計劃階段、軟件需求階段、軟件設計階段、軟件編碼階段、軟件集成階段、軟件驗收與交付階段、系統集成階段、定型階段、軟件使用與維護階段。各階段之間是一個相互補充并不斷重復的過程,階段產品是一個反復迭代、持續改進過程的結果。
(2)軟件等級
RTCA DO-178B根據軟件所導致的失效狀態類別,把軟件等級劃分為A、B、C、D、E五個等級,決定了設計保證活動的嚴格程度。軟件等級劃分如表1所示。
若機載設備嵌入式軟件根據軟件失效狀態分析決定了軟件等級為C級,則軟件研制工作就按照軟件適航要求中C級在每一軟件生命周期過程中的目標要求和符合性方法進行,形成相應的軟件生命周期文檔。
2.2.3 軟件配置管理
軟件配置管理(Software Configuration Management,SCM)非常重要,它關系到軟件研制工作的有效性、軟件產品的可用性和可信性。SCM是標識和確定系統或設備中軟件配置項的過程,在整個軟件生命周期內控制這些軟件配置項的發放和更改,記錄并報告配置的狀態和更改要求,驗證配置項的完整性和正確性。其中,軟件配置項即軟件產品在不同時期的組合,包括在軟件生命周期各階段產生的各種形式和各種版本的文檔、程序和數據等。軟件配置項隨著開發工作的進展而不斷變化。
(1)制定軟件配置管理計劃
機載設備實施初期依據該設備的軟件開發計劃進行配置策劃,明確配置管理內容,以便有計劃地開展配置管理工作。同時根據軟件開發計劃等頂層文件確定配置管理的詳細要求,由軟件配置管理員制定軟件配置管理計劃初稿,包含配置管理組織、標識規定、軟件配置項、基線定義、更改控制、狀態報告和版本管理等。評審通過后,正式作為該設備配置管理活動的依據。
(2)基線
基線(baseline)是軟件生命周期各階段末尾的特定點,也稱為里程碑。基線是經過正式審核與同意的規格說明或產品,可用作下一步開發的基礎。基線確定后,只能通過正式的更改管理辦法變更。機載設備軟件生命周期各階段基線劃分如圖1所示。
(3)變更管理
滿足RTCA DO-178B要求的軟件研發過程中,所有基線變更都應在有效的控制下進行。
機載設備嵌入式軟件因為其開發難度和開發周期,在軟件生命周期的各階段是很容易出問題的。一旦發現問題,不管是文檔還是代碼,均需要通過變更來滿足系統需求和相應的適航要求。軟件變更前應提出申請,經過嚴格審批后才能實施變更,防止隨意修改造成的失控和混亂,導致軟件工作的損傷。同時對軟件更改還建立了問題報告單、更改申請、更改報告、問題歸零、出/入庫的可追蹤管理制度。更改后的軟件產品經過評審和審批后再納入配置管理。
2.2.4 質量控制和監督
滿足RTCA DO-178B要求的軟件研發過程中,軟件質量保證活動SQA是必不可少的。SQA通過保證研制過程中符合批準的軟件計劃及標準,確保軟件生命周期中的產品符合軟件需求提供的置信度。
機載設備依據軟件研制任務書及軟件需求開展SQA。在設備啟動初期,軟件質量師依據系統下發的軟件質量保證大綱編制SQA計劃,提出軟件生命周期各階段的質量管理要求,以持續監控整個軟件生命周期過程并評審軟件產品。
軟件生命周期各階段質量保證活動的輸出產物為SQA記錄,包括SQA評審或審核報告、軟件符合性評審記錄等,跟蹤并確保評審問題或不符合項的解決和閉環。
同時,SQA還對各個階段的軟件配置管理活動進行監督和檢查,形成配置審核記錄;對系統集成階段設備裝入分系統或系統聯試期間發現的軟件問題的糾正情況進行監督和檢查,保證問題歸零。
2.2.5 軟件文檔資料
軟件文檔是軟件的重要組成部分。文檔內容是根據軟件開發過程中各階段的工作任務而產生的,主要記載各階段的主要活動信息和要求。
規范、細致地編制、管理和維護文檔,對軟件工程化管理具有非常重要的意義。
機載設備根據軟件文檔編制要求進行軟件文檔的編寫,保證交付的文檔完全符合工程要求且準確、完整和規范。交付的文檔同時作為軟件配置項納入配置管理,嚴格控制文檔的更改。
2.3 軟件設計和實現
2.3.1 軟件設計遵循原則
機載設備嵌入式軟件遵循以下設計原則:
(1)嚴格執行數字式電子類機械設備(軟件部分)的研制通用要求;
(2)軟件研制過程中,將可靠性和安全性放在首位;
(3)采取分層次、模塊化設計,方便進行裁減和升級;
(4)減小應用軟件與底層處理器硬件相關性,通過提供標準的接口規范,分離應用軟件與特定硬件相關的代碼。
2.3.2 軟件設計和實現
(1)設計方法
軟件采用多處理器的分布式結構,以實時分布式方式并行運行在各處理器上。軟件主要采用適合嵌人式軟件的結構化方法,自頂向下按功能劃分成幾個能獨立工作的軟件模塊進行開發和管理。
(2)實現方案
各個功能模塊軟件駐留和運行于相對獨立的CPU上。在各功能模塊中設計接口控制管理層,使應用軟件獨立于硬件接口,既有利于隔離模塊故障,又可以屏蔽硬件差異,將硬件選型對軟件的影響降低到最小,靈活應對硬件變化,最大限度保護軟件資源,有利于軟件維護、升級、測試和系統可靠性的提高。
(3)編程語言
現階段計算機軟件編程采用的語言主要是匯編語言和高級語言。目前,在航電系統上采用的高級語言主要為C,C++。
鑒于高級語言在應用上的一系列問題還有待解決,故常將匯編語言與高級語言混合使用。比如,結合機載設備軟件運行的CPU器件特性,在對中斷及I/O口等寄存器進行初始化或者對CMD文件進行寄存器的配置時采用匯編語言,對設備功能處理方面采用C/C++。
2.4 軟件驗證
2.4.1 定義
RTCA DO-178B對驗證(Verification)的定義是:驗證是軟件開發過程和軟件驗證過程兩者結果的技術評估。驗證貫穿于軟件開發過程中,包括了對需求的驗證、對設計的驗證、對代碼的驗證、對集成的驗證及對驗證過程的驗證,目的就是檢測和報告在開發過程中形成的錯誤。機載設備根據系統軟件驗證和確認要求及評審細則等首先形成軟件驗證計劃,然后以軟件驗證計劃、軟件需求、源代碼及可執行目標代碼等作為輸入/輸出軟件驗證用例和規程、軟件驗證結果。
2.4.2 方法
不同于以往國軍標如GJB2786-1996等,GJB2786認為測試的本身就是保障的手段,著重從測試的方法入手,而RTCA DO-178B是將測試定義為驗證的一部分,驗證的方法包括評審、分析和測試,偏重于對整個驗證過程的本身與活動,且明確驗證是保障的手段。
(1)軟件評審
軟件評審作為軟件驗證的一項重要活動,是軟件質量保證的重要一環。
為保證嵌入式軟件的研制質量,機載設備遵循系統制定的軟件評審細則,規范軟件評審活動。同時根據軟件等級要求,對軟件各階段的工作成果進行符合該等級的評審要求和評審方式(外部評審或內部評審)。
為保證嵌入式軟件的研制質量,在機載設備軟件研制初期,在軟件研制任務書、軟件開發計劃、軟件驗證計劃中對各階段生產的軟件產品評審均進行了明確規劃,按照質量要求,所有外部評審均有型號總師單位和軍代表參加。
評審時,提交評審的所有文檔必須已經通過逐級審簽。每次評審后必須形成評審報告,評審通過后將其和相關軟件產品納入配置管理。階段產品必須進行并通過評審。
機載設備在軟件生命周期中設立了一系列階段評審點:設備分析和設計階段、軟件計劃階段、軟件需求分析階段、軟件設計階段、軟件實現(編碼與單元測試)階段、軟件集成階段(軟件集成測試、系統測試)、軟件驗收與交付階段。
評審針對各階段的工作成果。在各階段工作成果評審通過后才允許建立相應的基線,才能進行后續階段的開發工作。
(2)軟件測試
軟件測試是保證軟件質量的重要手段,完整的軟件測試工作貫穿整個軟件生命周期,它包括兩方面的含義:一是軟件開發的不同階段都有軟件測試工作;二是軟件測試工作的各個步驟分布在整個軟件生命周期中。
為保證研制質量,按照軟件測試流程,機載設備嵌入式軟件開展了軟件測試活動。在設備分析和設計階段,遵循系統制定的軟件測試細則,依據軟件研制任務書編寫軟件測試計劃,確定軟件測試范圍、目的、測試指標、進度安排及最終形成產品等,根據軟件等級明確要求測試類別和測試方法及測試技術要求。
軟件測試計劃通過評審后即刻開展測試活動,在計劃階段、需求階段和設計階段主要執行了測試策劃、測試設計和實現;從編碼階段開始進入測試執行,直到軟件集成階段系統測試結束進行測試總結。在測試工作
中,機載設備根據測試執行情況對上述四個過程反復迭代(包括軟件回歸測試),直至達到測試要求為止。
(3)一般測試要求
軟件測試類別主要為單元測試、部件測試、配置項(集成)測試、系統測試。
軟件測試方法主要分為白盒測試和黑盒測試。
軟件單元測試時,采用代碼審查、靜態分析方法和白盒測試的方法完成;軟件部件、軟件配置項測試和系統測試測試時,均采用了黑盒測試方法輔助以白盒測試的方法完成。
(4)機載軟件測試的特點
機載設備軟件為機載嵌入式軟件,機載嵌入式軟件具有以下幾個顯著特點:
①軟件和硬件結合緊密,軟件脫離特定運行環境是肯定無法運行的,軟件失效與硬件故障有時難以區分,甚至互相干擾;
②開發環境和實際運行環境不同;
③機載軟件實時性強;
④機載軟件屬于安全關鍵軟件。
目前機載設備嵌入式軟件的測試工作也僅限于對純軟件的測試,但是,嵌入式軟件的前兩個特性給軟件測試提出了新問題,比如軟硬件錯誤的界定、硬件特性對軟件測試的影響等。
機載嵌入式軟件的第三個特性說明了機載軟件是實時多任務處理軟件。如機載設備需要在同一時間段處理多個任務,為了不漏掉任一任務的處理,軟件設計了中斷握手管理。軟件測試時就對中斷握手管理執行的語句進行了驗證。
機載嵌入式軟件的第四個特性說明了機載軟件若性能不可靠將帶來災難性后果,因此對其可靠性和安全性要求很高。在機載軟件設計時均采用了一些提高可靠性、安全性的先進技術,比如容錯技術、安全監控等,在軟件測試中則充分考慮設計測試用例對這些軟件語句進行了驗證。
機載設備軟件的最后一項測試即飛行測試,也就是我們常說的試飛階段。試飛測試是在飛機飛行中進行的一些特殊測試,包括根據適航要求進行的適航試飛。通過上述方式的軟件測試,將大大保證軍用航電系統機載通信設備軟件有較高的置信度。
(5)軟件測試結果
軟件測試過程中即軟件生命周期各階段的測試產物主要包括各級(單元級、部件級、配置項級、系統級)軟件測試計劃、測試說明、測試報告、測試問題報告、測試總結報告及評審結果等。軟件測試結果在生命周期各階段均進行了管理、跟蹤和控制,并將其納入了配置管理。
3 結語
軍機嵌入式軟件適航工作以提高軍機的安全水平為宗旨,不脫離現有軍機研制管理模式,不改變軍機研制流程,在技術上充分借鑒,在管理上大膽創新,在引入適航理念和方法的過程中不斷積累經驗,探索形成規范的、有中國特色的軍機嵌入式軟件研制適航工作途徑,推動軍機軟件研制質量與安全水平的不斷提高。
評論
查看更多