劉治學(xué)
(中國(guó)電子科技集團(tuán)公司第二十研究所,陜西 西安 710068)
DO-178B《機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件考慮》是由美國(guó)航空無(wú)線電技術(shù)委員會(huì)(RTCA)發(fā)布的一個(gè)航空軟件合格審定指南,F(xiàn)AA、EASA、CAAC等民航當(dāng)局都將DO-178B作為可接受的機(jī)載軟件符合性方法,通過(guò)AC予以實(shí)施。
DO-178B標(biāo)準(zhǔn)中的12.2條款中對(duì)軟件開發(fā)工具和軟件驗(yàn)證工具進(jìn)行了定義,并提出了資格鑒定要求。國(guó)內(nèi)研發(fā)民用航空載設(shè)備的企業(yè)在按照DO-178B的要求進(jìn)行適航取證時(shí),對(duì)于DO-178B標(biāo)準(zhǔn)中的工具鑒定要求,缺乏足夠的了解和手段。本文主要介紹了美國(guó)FAA關(guān)于DO-178B標(biāo)準(zhǔn)中的工具鑒定要求和如何進(jìn)行工具鑒定,為國(guó)內(nèi)機(jī)載設(shè)備軟件進(jìn)行工具鑒定時(shí)提供參考意見(jiàn)。
機(jī)載設(shè)備是飛行安全的基本保證,隨著軟硬件技術(shù)的發(fā)展,軟件實(shí)現(xiàn)的功能在機(jī)載設(shè)備中所占的比例迅速增加,同時(shí),軟件安全性也越來(lái)越受到人們的重視。
1982年,美國(guó)航空無(wú)線電技術(shù)委員會(huì)(RTCA)發(fā)布了第一版DO-178。該標(biāo)準(zhǔn)利用過(guò)程控制的方法來(lái)滿足軟件安全性的要求,1985年發(fā)布DO-178A,1992年發(fā)布DO-178B。1993年,美國(guó)聯(lián)邦航空局(FAA)發(fā)布咨詢通告AC 20-115B,通告中明確:“DO-178B為在當(dāng)前機(jī)載系統(tǒng)及設(shè)備的合格審定中如何保證這些系統(tǒng)和設(shè)備的軟件滿足適航要求提供了一種可接受的方法”。2000年,中國(guó)民用航空總局(CAAC)發(fā)布咨詢通告AC-21-02,將DO-178B推薦為民用航空機(jī)載設(shè)備軟件合格審定的標(biāo)準(zhǔn)。
DO-178B基于完整的軟件工程過(guò)程,在軟件開發(fā)的過(guò)程中提出了需要滿足的安全性目標(biāo)和要求,以此實(shí)現(xiàn)對(duì)軟件安全性進(jìn)行控制的要求。另外,DO-178B首次對(duì)軟件開發(fā)過(guò)程中使用的工具提出了安全性要求,明確了2類工具的鑒定要求。
鑒于此,F(xiàn)AA發(fā)布了一系列有關(guān)DO-178B工具鑒定的咨詢通告和適航指令,明確工具鑒定的要求和方法。1999年, FAA發(fā)布通告N8110.83 Software Tool Quali fi cation Notice,2001年,F(xiàn)AA再次發(fā)布通告N8110.91 Guidelines for the Quali fi cation of Software Tools Using RTCA/DO-178B,2003年,F(xiàn)AA發(fā)布適航指令ORDER8110.49 Software Approval Guidelines等等,對(duì)在使用DO-178B標(biāo)準(zhǔn)過(guò)程中涉及到的工具鑒定問(wèn)題,提出了指導(dǎo)意見(jiàn),以消除對(duì)標(biāo)準(zhǔn)的誤解。
DO-178B標(biāo)準(zhǔn)中的12.2中有關(guān)工具鑒定的要求是,“當(dāng)DO-178B的過(guò)程,通過(guò)使用某一軟件工具而被取消、減少或自動(dòng)進(jìn)行,且其輸出未按照第6 章的規(guī)定進(jìn)行驗(yàn)證時(shí),要求對(duì)工具進(jìn)行鑒定?!薄肮ぞ哞b定過(guò)程的目標(biāo)是確保工具提供至少等效于取消的、減少的或自動(dòng)進(jìn)行的過(guò)程的置信度”。
按照DO-178B標(biāo)準(zhǔn)生命周期模型,軟件過(guò)程由計(jì)劃過(guò)程、開發(fā)過(guò)程和綜合過(guò)程組成,軟件開發(fā)過(guò)程由需求過(guò)程、設(shè)計(jì)過(guò)程、編碼過(guò)程、集成過(guò)程組成,及綜合過(guò)程中的驗(yàn)證過(guò)程。在開發(fā)過(guò)程中一般使用的工具主要分為4種類型:分析工具(需求、性能)、設(shè)計(jì)工具(架構(gòu)設(shè)計(jì)、代碼生成)和集成工具(編譯器等),驗(yàn)證過(guò)程使用的工具有測(cè)試工具、覆蓋分析工具等。
DO-178B主要關(guān)注兩類軟件工具:開發(fā)工具,輸出是機(jī)載軟件的一部分并且可能引入錯(cuò)誤的工具;驗(yàn)證工具,不能引入錯(cuò)誤但可能檢測(cè)不到錯(cuò)誤的工具。
按照N8110.83、N8110.91的要求,一個(gè)工具需要鑒定必須具備3個(gè)條件: 工具可能將錯(cuò)誤引入到軟件中;工具的輸出沒(méi)有按照DO-178B的要求進(jìn)行驗(yàn)證; 通過(guò)使用工具消除、減少或自動(dòng)進(jìn)行了某些過(guò)程,只有滿足了3個(gè)條件,這個(gè)工具才需要進(jìn)行鑒定,否則,不需要鑒定。其判定過(guò)程見(jiàn)圖1。
圖1 工具鑒定的確定過(guò)程
當(dāng)按照判斷準(zhǔn)則,確定一個(gè)工具需要進(jìn)行鑒定,就需要按照工具的類別確定工具的鑒定要求,DO-178B對(duì)開發(fā)工具和驗(yàn)證工具提出了不同的要求。我們知道,軟件的開發(fā)過(guò)程和驗(yàn)證過(guò)程的所需證據(jù)是按照軟件的安全等級(jí)對(duì)系統(tǒng)的影響確定的,因此,開發(fā)工具和驗(yàn)證工具的鑒定要求也是按照工具的潛在錯(cuò)誤對(duì)安全等級(jí)的影響確定的。
工具的鑒定要求如表1所示。
工具鑒定是軟件合格審定過(guò)程的一部分,并且是系統(tǒng)合格審定的組成部分。因此,在適航指令ORDER8110.49中明確規(guī)定,工具鑒定必須按照軟件過(guò)程要求,獨(dú)立對(duì)工具鑒定過(guò)程進(jìn)行策劃,編制獨(dú)立的工具鑒定計(jì)劃,并與軟件開發(fā)計(jì)劃保持一致、協(xié)調(diào);在軟件合格審定計(jì)劃中應(yīng)引用和說(shuō)明工具鑒定計(jì)劃,在完成工具鑒定后應(yīng)編制工具鑒定工作總結(jié)報(bào)告,并應(yīng)在軟件研制工作總結(jié)報(bào)告中引用和說(shuō)明工具鑒定工作總結(jié)。
表1 工具的鑒定要求
資料分為需要和提交兩類,適航審查方將對(duì)需要類資料進(jìn)行評(píng)審,提交類是指被審查方應(yīng)向適航審查方提交此類資料。
工具鑒定過(guò)程的資料見(jiàn)表2。
表2 工具的鑒定資料
3.2.1 開發(fā)工具的鑒定資料
對(duì)于需要進(jìn)行鑒定的軟件開發(fā)工具,必須向適航審查方提交軟件合格審定計(jì)劃、工具鑒定計(jì)劃、軟件研制工作總結(jié)和工具鑒定工作總結(jié),同時(shí),受審查方應(yīng)提供工具操作手冊(cè)、研制測(cè)試結(jié)果以及工具鑒定過(guò)程中的研發(fā)資料。
3.2.1.1 軟件合格審定計(jì)劃
軟件合格審定計(jì)劃是合格審定機(jī)構(gòu)使用的主要手段,以確定申請(qǐng)人是否正在計(jì)劃與被開發(fā)軟件的等級(jí)的主要要求相匹配的軟件生存周期。在軟件合格審定計(jì)劃中應(yīng)詳細(xì)說(shuō)明將要使用的驗(yàn)證工具,與審核員溝通確定工具鑒定的可接受方法和相關(guān)文檔,軟件合格審定計(jì)劃應(yīng)經(jīng)審定機(jī)構(gòu)評(píng)審。
3.2.1.2 開發(fā)工具鑒定計(jì)劃
需要單獨(dú)提交工具鑒定計(jì)劃,工具鑒定計(jì)劃中應(yīng)包括鑒定的方法和資料,工具鑒定計(jì)劃應(yīng)提交給審定機(jī)構(gòu),并獲得批準(zhǔn)。
3.2.1.3 開發(fā)工具操作要求
開發(fā)工具的操作要求除滿足驗(yàn)證工具的操作要求外,應(yīng)明確使用工具所代替的開發(fā)過(guò)程,以及異常工作情況下,工具所期望的反應(yīng)。
通常情況下,工具的用戶手冊(cè)可能包括了這些信息,但也可能存在不足,還應(yīng)設(shè)法補(bǔ)充不足的信息。
3.2.1.4 開發(fā)工具驗(yàn)證測(cè)試結(jié)果
按照開發(fā)工具操作要求完成所有的驗(yàn)證工作,必須在工具運(yùn)行的正常狀態(tài)和異常狀態(tài)下進(jìn)行充分的驗(yàn)證,驗(yàn)證數(shù)據(jù)與開發(fā)工具的等級(jí)和開發(fā)工具的復(fù)雜度有關(guān),這些資料應(yīng)提交給審定機(jī)構(gòu)并進(jìn)行評(píng)審。
3.2.1.5 開發(fā)工具鑒定工作總結(jié)
需單獨(dú)編制工具鑒定工作總結(jié),內(nèi)容應(yīng)包括工具鑒定的結(jié)果和鑒定過(guò)程的詳細(xì)描述,以及其他相關(guān)的鑒定資料,工具鑒定工作總結(jié)應(yīng)提交給審定機(jī)構(gòu),并獲得批準(zhǔn)。
3.2.1.6 開發(fā)工具鑒定過(guò)程的研發(fā)資料
開發(fā)工具在鑒定過(guò)程中如果有研發(fā)資料,如設(shè)計(jì)、代碼、測(cè)試用例和規(guī)程等,應(yīng)提供給審定機(jī)構(gòu)進(jìn)行評(píng)審。
3.2.2 驗(yàn)證工具的鑒定資料
有關(guān)驗(yàn)證工具,向局方提交的資料較少,主要有軟件合格審定計(jì)劃、工具鑒定工作總結(jié)。除工具鑒定過(guò)程的研發(fā)資料外,其他資料應(yīng)提供局方進(jìn)行評(píng)審。
3.2.2.1 驗(yàn)證工具鑒定計(jì)劃
可以提供單獨(dú)的工具鑒定計(jì)劃,或?qū)⑵鋬?nèi)容納入到軟件合格審定計(jì)劃中。
3.2.2.2 驗(yàn)證工具操作要求
工具操作要求規(guī)定了工具操作的功能性,在正常運(yùn)行情況下,對(duì)其所具有的功能制定詳細(xì)的驗(yàn)證要求,并進(jìn)行測(cè)試以驗(yàn)證。定義工具的運(yùn)行環(huán)境,包括操作系統(tǒng)和其他考慮(分析工具具備哪些功能,不具備哪些功能等)、檢查單、測(cè)試用例等,以及硬件環(huán)境(處理器、特殊的測(cè)試儀器等),其他信息要求,如軟件安裝和運(yùn)行的用戶手冊(cè)。工具操作要求應(yīng)經(jīng)審定機(jī)構(gòu)評(píng)審。
3.2.2.3 驗(yàn)證工具測(cè)試結(jié)果、鑒定工作總結(jié),軟件研制工作總結(jié)
可以提供單獨(dú)的工具驗(yàn)證測(cè)試結(jié)果、工具鑒定工作總結(jié),也可將其內(nèi)容納入到軟件研制工作工作總結(jié)中,并提交給審定機(jī)構(gòu)。
對(duì)軟件開發(fā)工具,工具鑒定資料要按照DO-178B中控制類1(CC1)的要求進(jìn)行控制;對(duì)軟件驗(yàn)證工具,工具鑒定資料要按照DO-178B中控制類2(CC2)的要求進(jìn)行控制。
工具鑒定的質(zhì)量保證過(guò)程應(yīng)和開發(fā)軟件的質(zhì)量保證過(guò)程一致。
按照Order 8110.49的規(guī)定,審定機(jī)構(gòu)將根據(jù)工具的種類,分兩步對(duì)工具鑒定做出認(rèn)可。
3.4.1 開發(fā)工具
批準(zhǔn)工具鑒定計(jì)劃;
批準(zhǔn)工具鑒定工作總結(jié)。
3.4.2 驗(yàn)證工具
批準(zhǔn)軟件合格審定計(jì)劃;
批準(zhǔn)軟件研制工作總結(jié)。
DO-178B軟件工具鑒定實(shí)施難度較大,軟件工具鑒定對(duì)國(guó)內(nèi)企業(yè)來(lái)說(shuō)還是一個(gè)新課題,還需要我們進(jìn)行不斷的探索和研究。