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