居 慧 /
(上海飛機設(shè)計研究院,上海201210)
當(dāng)前在民用航空領(lǐng)域,越來越多的機載設(shè)備供應(yīng)商在采用基于模型的開發(fā)和驗證(Model-Based Development and Verification,簡稱MB)這種基于結(jié)構(gòu)化分析和設(shè)計的方法研制機載軟件,因為模型的使用可以帶來一些便利,例如支持自動化代碼的生成,支持仿真手段的使用等。自DO-178B[1]發(fā)布至今,業(yè)內(nèi)已經(jīng)在基于模型的開發(fā)和驗證技術(shù)的應(yīng)用和支持工具研發(fā)方面積累了一定的經(jīng)驗,而隨著此項技術(shù)在航空關(guān)鍵系統(tǒng)軟件的應(yīng)用逐漸增多,有很多問題需要考慮以確保滿足系統(tǒng)安全性和完整性的要求。
由于DO-178C[2]不是一份針對特定方法或特定技術(shù)的指南,因此采用MB方法開發(fā)的機載軟件在直接表明對于DO-178C某些目標(biāo)的符合性方面存在困難或不清晰的情況,甚至有一些空白。為了給基于模型的開發(fā)和驗證活動的合格審定提供明確的指南,也為了推進(jìn)這項技術(shù)在工業(yè)界的發(fā)展,美國航空無線電委員會(Radio Technical Commission for Aeronautics,簡稱RTCA)于2011年以DO-178C補充文檔的形式發(fā)布了1份標(biāo)準(zhǔn)DO-331[3]《基于模型的開發(fā)和驗證(對于DO-178C和DO-278A的補充)》。該份補充文檔是在DO-178C的基礎(chǔ)上針對MB技術(shù)對原先機載軟件合格審定指南的擴(kuò)展。2013年,美國聯(lián)邦航空局(Federal Aviation Administration,簡稱FAA)發(fā)布咨詢通告AC20-115C《機載軟件保證》認(rèn)可包括DO-331在內(nèi)的五份RTCA標(biāo)準(zhǔn)作為機載軟件滿足適航規(guī)章可接受的符合性方法。
由于DO-178C發(fā)布的時間不長,目前僅在一些新的飛機項目中應(yīng)用為符合性方法,還未形成成熟的可借鑒的審定實踐經(jīng)驗,對于該標(biāo)準(zhǔn)及其補充文檔(包括DO-331在內(nèi))的研究具有重要意義,有助于申請人在項目研制過程中更好地理解和貫徹合格審定要求,成功表明適航符合性。
DO-331標(biāo)準(zhǔn)在主要章節(jié)的編排組織形式上與DO-178C保持一致,覆蓋了整個軟件研制流程,但為了以示區(qū)分,所有章節(jié)均采用以MB作為前綴的編號規(guī)則。標(biāo)準(zhǔn)的主體內(nèi)容繼承了DO-178C,在此基礎(chǔ)上補充了有關(guān)基于模型的開發(fā)和驗證的內(nèi)容,包括生命周期數(shù)據(jù)和相應(yīng)的目標(biāo),并在附錄中增加了應(yīng)用DO-278A[4]和DO-331時不同等級的軟件生命周期過程的目標(biāo)和輸出的匯總表格,以及常見問題解答和討論專題。為了最大程度地減少與DO-178C的重復(fù)信息,DO-331中僅對DO-178C受影響的章節(jié)進(jìn)行了更新,對于描述內(nèi)容無差異的章節(jié),直接聲明對應(yīng)的DO-178C章節(jié)內(nèi)容沒有變化。其中,從DO-178C完全繼承的內(nèi)容統(tǒng)一采用斜體字表示,新增或修改的內(nèi)容為正常字體表示。相比DO-178C,DO-331的專有內(nèi)容如表1所示。
表1 DO-331專有內(nèi)容一覽
續(xù)表1
DO-331中介紹了以下兩類模型:
1) 規(guī)范模型(Specification Models):描述提供軟件組件功能、性能、接口或者安全性特性的抽象表示的高級別需求;
2) 設(shè)計模型(Design Models):規(guī)定了軟件組件內(nèi)部的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)流和/或控制流,包含低級別需求和/或軟件架構(gòu)。
DO-331中明確強調(diào)模型不能同時劃分為規(guī)范模型和設(shè)計模型,并且依據(jù)當(dāng)前的一些工業(yè)實踐提供了模型使用的樣例,如表2所示。由表2可看出,設(shè)計模型使用的場景更為廣泛,但不管模型如何使用,都需要滿足相應(yīng)的符合性目標(biāo)。
表2 模型使用樣例
如果計劃采用基于模型的開發(fā)技術(shù),軟件計劃過程除了需要滿足DO-178C中定義的目標(biāo)和活動外,還需滿足以下幾點:
1) 識別出將由模型描述的軟件生命周期數(shù)據(jù),例如:需求數(shù)據(jù)或者設(shè)計數(shù)據(jù),所有開發(fā)模型應(yīng)按照上述模型的分類進(jìn)行劃分;
2) 識別出將采用的驗證模型的方法,包括對于設(shè)計模型的模型覆蓋分析準(zhǔn)則的定義;
3) 應(yīng)生成軟件模型標(biāo)準(zhǔn),描述采用的建模技術(shù)以及對于每類模型適用性的理由;
4) 規(guī)劃模型仿真環(huán)境,定義當(dāng)采用模型仿真器執(zhí)行驗證活動時可能采用的方法、工具、程序和操作環(huán)境,主要活動包括:
(1)確定模型仿真器是否需要鑒定,評估的準(zhǔn)則參考DO-331MB.12.2節(jié)(工具鑒定);
(2)明確說明模型仿真器的性能和限制,包括預(yù)期的使用以及對于檢測錯誤和驗證功能的能力的影響;
(3)評估仿真環(huán)境更改的影響,考慮按照DO-331第MB.6章(軟件驗證過程)和MB.12.1.3節(jié)(更改應(yīng)用或開發(fā)環(huán)境)中的指南進(jìn)行重新驗證。
如果在軟件開發(fā)過程中采用了基于模型的方法,基于DO-331中對于規(guī)范模型和設(shè)計模型的定義,所有高級別需求相關(guān)的目標(biāo)和活動適用于規(guī)范模型中包含的需求或者設(shè)計模型開發(fā)所依據(jù)的需求,所有軟件架構(gòu)和低級別需求相關(guān)的目標(biāo)則適用于軟件設(shè)計模型中包含的軟件架構(gòu)和需求。此外,對軟件需求和設(shè)計過程的目標(biāo)和活動會有一些附加要求,主要體現(xiàn)為:
1)如果高級別需求采用規(guī)范模型予以描述應(yīng)標(biāo)識出所有不代表軟件需求并且不作為后續(xù)軟件開發(fā)過程或者活動的輸入的模型元素;
2) 如果低級別需求和/或架構(gòu)采用設(shè)計模型予以描述,應(yīng)標(biāo)識出所有不代表軟件需求或軟件架構(gòu)并且不作為后續(xù)軟件開發(fā)過程或者活動的輸入的模型元素;
3) 如果軟件需求或軟件架構(gòu)采用模型予以描述,模型應(yīng)遵循軟件模型標(biāo)準(zhǔn)并具有可追溯性、可驗證性和一致性,所有模型元素應(yīng)按照軟件模型標(biāo)準(zhǔn)中的描述進(jìn)行分類;
4) 如果計劃開發(fā)設(shè)計模型,對應(yīng)該模型的軟件高級別需求應(yīng)包含足夠的細(xì)節(jié)以支持后續(xù)設(shè)計模型的實現(xiàn)和驗證。
如果采用了基于模型的開發(fā)方法,除了滿足對于軟件需求驗證、設(shè)計驗證、代碼驗證和測試有關(guān)的基本目標(biāo)外,鑒于模型的研制特性,軟件驗證過程中還需關(guān)注:
1)開發(fā)的模型是否符合軟件模型標(biāo)準(zhǔn),是否對偏離標(biāo)準(zhǔn)的方面進(jìn)行了解釋說明;
2)如果高級別需求采用規(guī)范模型描述,低級別需求和規(guī)范模型之間的追溯性;
3)如果低級別需求采用設(shè)計模型描述,源代碼和設(shè)計模型之間的追溯性;
4)如果軟件開發(fā)過程中采用了設(shè)計模型,應(yīng)按照DO-331MB.6.7節(jié)中的指南開展模型覆蓋分析活動。
模型覆蓋分析活動主要包括:
1) 采用基于需求的驗證用例,需求為設(shè)計模型開發(fā)所依據(jù)的需求;
2) 確認(rèn)通過驗證用例所達(dá)到的設(shè)計模型的覆蓋度是否與計劃過程中定義的模型覆蓋準(zhǔn)則一致,在不滿足覆蓋要求的情況下,按照DO-331MB.6.7.2節(jié)中的模型覆蓋分析解決方案開展相關(guān)工作;
3) 補充基于設(shè)計模型中的衍生需求的附加驗證用例。
模型覆蓋分析的準(zhǔn)則在表述上與典型的軟件結(jié)構(gòu)覆蓋分析的準(zhǔn)則(語句覆蓋、分支覆蓋等)有所不同,如表3所示。表3中準(zhǔn)則①到④與DO-178C 6.4.2.1和6.4.2.2節(jié)中有關(guān)覆蓋分析的內(nèi)容是兼容的。其中,準(zhǔn)則1與軟件需求覆蓋相關(guān),準(zhǔn)則②到④與軟件結(jié)構(gòu)覆蓋相關(guān)。
此外,DO-331中描述了可采用模型仿真的驗證方法來支持滿足一些驗證目標(biāo),主要內(nèi)容包括:
1)針對模型驗證的模型仿真,識別出了哪些軟件需求和設(shè)計過程的輸出的驗證目標(biāo)可以通過對規(guī)范模型和設(shè)計模型的仿真滿足,哪些目標(biāo)不能通過仿真滿足,以及應(yīng)執(zhí)行的仿真活動;
2)針對可執(zhí)行目標(biāo)代碼驗證的模型仿真,描述了通過模型仿真和特定的分析的組合可以滿足的軟件測試和測試覆蓋目標(biāo)以及相應(yīng)的活動,其中涵蓋了對于模型仿真器環(huán)境和目標(biāo)計算機環(huán)境的差異分析,以及用于仿真的可執(zhí)行目標(biāo)代碼與用于目標(biāo)機的可執(zhí)行目標(biāo)代碼之間的差異分析的要求;
3)仿真用例、程序和結(jié)果的開發(fā)、評審和分析。
表3 模型覆蓋準(zhǔn)則樣例
DO-331中描述的其他軟件生命周期過程,包括構(gòu)型管理過程、質(zhì)量保證過程以及合格審定聯(lián)絡(luò)過程的目標(biāo)和活動與DO-178C中的描述并無明顯差異,即采用MB方法對這些生命周期過程基本沒有影響。
DO-331在DO-178C定義的生命周期數(shù)據(jù)的基礎(chǔ)上,增加了一個MB專有數(shù)據(jù):軟件模型標(biāo)準(zhǔn)。此標(biāo)準(zhǔn)應(yīng)包含以下內(nèi)容:
1)用于開發(fā)模型的方法和工具;
2)采用的建模語言;
3)建模語言使用的風(fēng)格指南以及復(fù)雜度限制;
4)建模工具以及模型元素庫的使用限制;
5)用于標(biāo)識和界定模型中包含的需求的方法以及建立需求和其他生命周期數(shù)據(jù)之間的追溯性的方法;
6)用于標(biāo)識和界定模型中包含的衍生需求的方法以及將衍生需求反饋到系統(tǒng)過程包括系統(tǒng)安全性評估過程的方法;
7)識別出所有不代表軟件需求或軟件架構(gòu)并且不作為后續(xù)軟件開發(fā)過程或者活動的輸入的模型元素的方法;
8)通過規(guī)范模型或者設(shè)計模型表述的信息類型的技術(shù)適用性的合理解釋。
其他軟件生命周期數(shù)據(jù)中涉及模型相關(guān)的內(nèi)容主要有:
1) 軟件合格審定計劃PSAC(Plan for Software Aspects of Certification,簡稱PSAC):
(1)對于軟件生命周期的描述應(yīng)包含為滿足DO-331目標(biāo)將執(zhí)行的過程和活動以及生成的數(shù)據(jù);
(2)軟件生命周期數(shù)據(jù)中應(yīng)包含符合DO-331的數(shù)據(jù)。
2)軟件開發(fā)計劃SDP(Software Development Plan,簡稱SDP):軟件開發(fā)環(huán)境的描述中應(yīng)包含將采用的建模方法、建模語言和建模工具。
3)軟件驗證計劃SVP(Software Verification Plan,簡稱SVP):
(1)驗證方法之一的分析方法中應(yīng)包含模型追溯性分析、模型覆蓋準(zhǔn)則和模型覆蓋分析;
(2)驗證方法中還應(yīng)包含對于模型仿真方法的描述,包括仿真用例的選擇方法,使用的仿真程序,將生成的仿真數(shù)據(jù)以及DO-331中MB.6.8.1 和MB.6.8.2節(jié)中定義的特定限制;
(3)驗證環(huán)境應(yīng)包含對于模型仿真環(huán)境和工具,以及應(yīng)用這些工具的指南描述;
4)軟件驗證用例和程序:應(yīng)包含對于仿真用例和仿真程序的描述。
5)軟件驗證結(jié)果:
(1)應(yīng)標(biāo)識出模型的構(gòu)型;
(2)應(yīng)包含仿真的結(jié)果以及支持仿真的任何分析結(jié)果。
6)軟件生命周期環(huán)境構(gòu)型索引(Software Life Cycle Environment Configuration Index,簡稱SECI):應(yīng)標(biāo)識仿真環(huán)境以及相關(guān)的設(shè)置。
7)軟件構(gòu)型索引(Software Configuration Index,簡稱SCI):標(biāo)識的軟件生命周期數(shù)據(jù)中應(yīng)涵蓋DO-331中MB.2.2.1.i到MB.2.2.1.o項的數(shù)據(jù),如果存在系統(tǒng)構(gòu)型索引并包含了這些數(shù)據(jù),應(yīng)索引至系統(tǒng)構(gòu)型索引文檔。
8)軟件構(gòu)型管理記錄:模型的SCM(Software Configuration Management,簡稱SCM)記錄的例子包括基線記錄和模型元素庫記錄。
9)追溯性數(shù)據(jù):如果采用模型描述高級別需求或低級別需求和/或軟件架構(gòu),與模型的追溯性應(yīng)提供能夠展現(xiàn)出DO-331 MB.11.21節(jié)a)到f)項的顆粒度。
DO-331的附錄A在DO-178C附錄A的基礎(chǔ)上,提供了采用基于模型的開發(fā)和驗證方法生成機載軟件需要滿足的符合性驗證目標(biāo),文中對應(yīng)的活動描述索引和輸出數(shù)據(jù)的匯總表格。這些表格中對于目標(biāo)和輸出的生命周期數(shù)據(jù)與DO-331正文中相應(yīng)章節(jié)的索引關(guān)系,基于DO-331章節(jié)編排的調(diào)整和內(nèi)容的增加進(jìn)行了相應(yīng)更新。除了從DO-178C繼承的目標(biāo),考慮到模型開發(fā)和驗證的特殊性,DO-331附錄A中的目標(biāo)在DO-178C的基礎(chǔ)上補充了一些模型相關(guān)的目標(biāo),詳見表4。
表4 DO-331新增目標(biāo)
續(xù)表4
注:表中的○代表目標(biāo)需要滿足,●代表目標(biāo)需要被獨立滿足。
1) 如果計劃在民用飛機機載軟件生命周期過程中采用基于模型的開發(fā)和驗證技術(shù)時,在確定采用DO-178C作為符合性方法的情況下,也應(yīng)符合DO-331標(biāo)準(zhǔn)中的要求;
2) DO-331在應(yīng)用時,應(yīng)以DO-178C作為基礎(chǔ),綜合考慮DO-178C和DO-331中的目標(biāo),同時在適用的情況下,應(yīng)與DO-178C的其他補充文檔結(jié)合使用,例如工具鑒定的相關(guān)要求應(yīng)遵循DO-330[5]《軟件工具鑒定考慮》標(biāo)準(zhǔn),才能完整地表明適航符合性。