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