徐 芳
(中國航空無線電電子研究所 上海 200240)
民用航空電子系統(tǒng)的機(jī)載軟件在提高開發(fā)效率和保證安全性這兩方面有著非常嚴(yán)格的要求。為了解決機(jī)載軟件開發(fā)驗證過程中大量重復(fù)性、易出錯且花費(fèi)高的問題,各種軟件工具不斷地被應(yīng)用于機(jī)載軟件的開發(fā)、驗證中。這些工具的應(yīng)用,大大減少了重復(fù)性的勞動。但是,工具本身的錯誤可能會對軟件功能有負(fù)面影響,為了避免這種風(fēng)險,需要對機(jī)載軟件工具的進(jìn)行鑒定。
國際航空無線電委員會(Requirements and Technical Concepts for Aviation,RTCA)針對民用航空電子系統(tǒng)的軟件開發(fā)制定了DO-178標(biāo)準(zhǔn)。旨在確保開發(fā)的軟件在功能上正確,在安全上可信,并能滿足適航要求。DO-178基于在系統(tǒng)安全性評估過程中確定的軟件對潛在失效條件的影響將軟件劃分為A、B、C、D、E五個等級,Level A是最嚴(yán)格的,等級越高所付出的成本越高。DO-178C是針對管理現(xiàn)代航空電子設(shè)備所必需的大量擴(kuò)增的軟件而定制的。DO-178C定義了71個目標(biāo)(即針對每個需求的文檔和測試)來滿足不同的軟件信任等級。軟件等級A要滿足71個目標(biāo)(含30個需要獨(dú)立的目標(biāo))。
DO-178C繼承了DO-178B的核心文件,原則和過程,同時增加高層次建模的支持,面向?qū)ο缶幊毯托问交椒ǎ瑥?qiáng)調(diào)從模型到可執(zhí)行代碼以及反向的雙向可追溯性。DO-178C消除一些DO-178B中的二義性,引入補(bǔ)充標(biāo)準(zhǔn)DO-330,以證明用于建模,面向?qū)ο缶幊毯托问交椒ǖ墓ぞ叩馁Y格和能力。DO-178C引入的前向和后向的追蹤,對于設(shè)計人員來說這會使利用這些先進(jìn)技術(shù)的軟件開發(fā)的驗證過程變得更容易,從而達(dá)到所需的安全苛刻軟件的水平。
按照DO-178B 的要求:“如果過程由工具自動實現(xiàn)或者替代,那么需要對工具進(jìn)行鑒定”,也就是說軟件工具的等級要和所開發(fā)的機(jī)載軟件等級保持一致。
DO-178B的12.2章節(jié)中根據(jù)是否在機(jī)載軟件中引入錯誤,將機(jī)載軟件工具分為開發(fā)工具和驗證工具兩類[1]。
(1)開發(fā)工具:輸出的是機(jī)載軟件的一部分,創(chuàng)建或修改機(jī)載軟件的生命周期數(shù)據(jù)(如需求、設(shè)計、代碼等)。軟件開發(fā)工具如編譯器、調(diào)試器和仿真器;
(2)驗證工具:驗證工具通常用來表明軟件生命周期數(shù)據(jù)的正確性、一致性和兼容性,不對軟件的生命周期數(shù)據(jù)進(jìn)行修改,因此不會向機(jī)載軟件引入錯誤,但是有可能檢測不到軟件中已經(jīng)存在的錯誤。軟件驗證工具如源代碼分析工具、軟件測試工具。
在開發(fā)機(jī)載軟件項目之初,首先要確定的就是軟件工具是否需要鑒定。一般需要考慮三方面的問題:
(1)工具是否會在機(jī)載軟件中引入錯誤或檢測不到存在的錯誤;
(2)工具的輸出是否不再經(jīng)過進(jìn)一步驗證或人工評審;
(3)工具的輸出是否被用來表明滿足DO-178B附錄A的任一目標(biāo)。
如果以上三個問題的回答都是肯定的,則該工具需要進(jìn)行工具鑒定,否則不需要。機(jī)載軟件項目中所使用的工具列表以及是否需要鑒定的聲明(即對以上三個問題的回答)應(yīng)該包含在機(jī)載軟件合格審定計劃中。
DO-178B規(guī)定,開發(fā)工具的目標(biāo)應(yīng)與使用工具的機(jī)載軟件的目標(biāo)相同,即分配給開發(fā)工具的軟件級別應(yīng)與其開發(fā)的機(jī)載軟件相同。同時,由于開發(fā)工具可能會向機(jī)載軟件中引入錯誤,所以必須進(jìn)行魯棒測試。驗證工具不會向軟件引入錯誤,只可能檢測不到存在的錯誤。因此,只要驗證是在正常條件下進(jìn)行的,工具的輸出就符合操作需求。如果要使用先前項目的工具鑒定結(jié)論作為其鑒定結(jié)論,則必須證明兩個項目中工具的使用環(huán)境和限制是完全相同的[4]。
軟件開發(fā)工具要滿足的目標(biāo)應(yīng)與用其開發(fā)的機(jī)載軟件應(yīng)達(dá)到的目標(biāo)相同,因此產(chǎn)生了DO-178B規(guī)定的20類生命周期資料。其中,工具鑒定計劃(Tool Qualification Plan,TQP)和工具完結(jié)綜述(Tool Accomplishment Summary,TAS)提交適航當(dāng)局批準(zhǔn),其他開發(fā)和驗證數(shù)據(jù)供局方審查時檢查。同時,機(jī)載軟件的合格審定計劃(PSAC)和完結(jié)綜述(Software Accomplishment Summary,SAS)應(yīng)分別索引至TQP和TAS。對于驗證工具來說,TQP的內(nèi)容可以包含在機(jī)載軟件的合格審定計劃中,TAS的內(nèi)容可以包含在機(jī)載軟件的完結(jié)綜述中。工具操作需求、測試用例、規(guī)程和結(jié)果供局方審查時檢查。但是,F(xiàn)AA推薦驗證工具也要編制獨(dú)立的TQP和TAS,便于今后項目復(fù)用工具的鑒定結(jié)論。開發(fā)工具和驗證工具的鑒定數(shù)據(jù)都要納入軟件構(gòu)型控制體系。其中,開發(fā)工具的鑒定數(shù)據(jù)應(yīng)按照控制類別1(Control Category 1,CC1)進(jìn)行控制,驗證工具的鑒定數(shù)據(jù)應(yīng)按照CC2進(jìn)行控制。
DO-178C中,由于有了獨(dú)立的補(bǔ)充文檔DO-330,所以對第12章的改動比較大。DO-178C 對工具鑒定的指南的變動是最大的。但這些變動其實并不違背原來DO-178B所述的內(nèi)容。它把工具鑒定的級別分成了五級,即TQL-1到TQL-5。TQL-1是對工具鑒定要求最高的級別,相當(dāng)于DO-178B中所述的用于A級軟件的開發(fā)工具的鑒定。而TQL-5則是鑒定級別最低的,相當(dāng)于DO-178B中所述的用于C級或D級軟件的驗證工具的鑒定。所以真正的差異在于,當(dāng)一個驗證工具用于A級或B級軟件時,如果該驗證工具出錯帶來的危害可能比較嚴(yán)重的時候,需要對驗證工具的鑒定提高要求,達(dá)到TQL-4。把工具鑒定分成五級后,
DO-178C 的專家組專門為工具的鑒定寫了一個補(bǔ)充文檔DO-330。
DO-178C標(biāo)準(zhǔn)在修訂時專門設(shè)立了工具鑒定工作組來研究相關(guān)對策。修訂的DO-178C標(biāo)準(zhǔn)按照以下三條準(zhǔn)則將工具鑒定的軟件等級劃分為5級[2](見表1):
(1)準(zhǔn)則1,工具的輸出是軟件產(chǎn)品的一部分,并且有可能會向軟件產(chǎn)品中引入錯誤;
(2)準(zhǔn)則2,工具使驗證流程自動化,并有可能漏檢錯誤 其輸出用以證明驗證流程中沒有被自動化的部分的省略以及可能影響最終軟件產(chǎn)品的開發(fā)流程步驟的省略;
(3)準(zhǔn)則3,在其預(yù)計的使用范圍內(nèi)可能會漏檢錯誤。
表1 工具鑒定的軟件等級
DO-330專門針對軟件工具鑒定作了詳細(xì)的說明和定義,定義了工具生命周期進(jìn)程。工具生命周期進(jìn)程包含了三個大進(jìn)程,也即工具計劃進(jìn)程、工具開發(fā)進(jìn)程、工具綜合進(jìn)程[3]。計劃進(jìn)程先行,其它二個進(jìn)程并行。工具開發(fā)進(jìn)程又包含了四個小進(jìn)程,也即工具需求進(jìn)程、工具設(shè)計進(jìn)程、工具編碼進(jìn)程、工具集成進(jìn)程。工具綜合進(jìn)程也包含了四個小進(jìn)程,也即工具驗證進(jìn)程、工具配置管理進(jìn)程、工具質(zhì)量保證進(jìn)程、審定聯(lián)絡(luò)進(jìn)程。此外,工具生命周期進(jìn)程還包括工具鑒定數(shù)據(jù)和工具鑒定的其它考慮。
工具計劃進(jìn)程的目的是制定5個計劃和3個標(biāo)準(zhǔn),用以指導(dǎo)工具開發(fā)進(jìn)程和工具綜合進(jìn)程的工作開展。5個計劃是工具鑒定計劃、工具開發(fā)計劃、工具驗證計劃、工具配置管理計劃、工具質(zhì)量保證計劃。3個標(biāo)準(zhǔn)是工具需求標(biāo)準(zhǔn)、工具設(shè)計標(biāo)準(zhǔn)、工具編碼標(biāo)準(zhǔn)。
之前鑒定過的工具能否重新使用在新的項目中不需要重新鑒定,有一個評估過程。工具能否被重新使用,需要滿足以下:鑒定過的工具在之前項目中使用被局方批準(zhǔn);重新使用的工具的等級等于或低于之前的鑒定等級;被重新使用的工具的生命周期數(shù)據(jù)沒有發(fā)生變化;工具的操作環(huán)境等同于之前鑒定的;工具的操作需求和之前鑒定的一樣;
f.申請者獲取批準(zhǔn)的工具鑒定數(shù)據(jù);
g.申請者保證被鑒定數(shù)據(jù)支持的工具版本一樣。
如果有任何一條沒有滿足,那么需要對工具操作環(huán)境或工具本身的變化作出分析。如果上述都滿足,那么對工具重新使用的目的和規(guī)則需要在PSAC或TQP中說明并提交給局方。
DO-330對商業(yè)成品軟件的鑒定也作了詳細(xì)規(guī)定。
本文簡介了DO-178,并介紹了標(biāo)準(zhǔn)中對機(jī)載軟件工具的鑒定準(zhǔn)則和數(shù)據(jù)要求。從DO-178標(biāo)準(zhǔn)的修訂來看,適航審查方對工具鑒定的要求趨于規(guī)范并將更加嚴(yán)格。對申請人來說,工具的成本、鑒定工作量以及將來對該工具的復(fù)用都必須被考慮到。因此,確定工具的鑒定狀態(tài)并按型號合格證申請時現(xiàn)行有效的標(biāo)準(zhǔn)完成對工具的鑒定,對申請者將會是一個新的挑戰(zhàn)。
[1]DO-178B,Software Considerations in Airborne Systems and Equipment Certification.RTCA/EUROCAE,1992.
[2]DO-178C,Software Considerations in Airborne Systems and Equipment Certification.RTCA December 13,2011.
[3]DO-330,Software Tool Qualification Considerations.RTCA December 13,2011.
[4]O rder 8110.49, Software Approval Guidelines[S].U.S.Department of Transportation Federal Aviation Adm inistration.June3,2003.