居 慧 /
(上海飛機(jī)設(shè)計(jì)研究院,上海201210)
當(dāng)前在民用航空領(lǐng)域,越來(lái)越多的機(jī)載設(shè)備供應(yīng)商在采用基于模型的開(kāi)發(fā)和驗(yàn)證(Model-Based Development and Verification,簡(jiǎn)稱MB)這種基于結(jié)構(gòu)化分析和設(shè)計(jì)的方法研制機(jī)載軟件,因?yàn)槟P偷氖褂每梢詭?lái)一些便利,例如支持自動(dòng)化代碼的生成,支持仿真手段的使用等。自DO-178B[1]發(fā)布至今,業(yè)內(nèi)已經(jīng)在基于模型的開(kāi)發(fā)和驗(yàn)證技術(shù)的應(yīng)用和支持工具研發(fā)方面積累了一定的經(jīng)驗(yàn),而隨著此項(xiàng)技術(shù)在航空關(guān)鍵系統(tǒng)軟件的應(yīng)用逐漸增多,有很多問(wèn)題需要考慮以確保滿足系統(tǒng)安全性和完整性的要求。
由于DO-178C[2]不是一份針對(duì)特定方法或特定技術(shù)的指南,因此采用MB方法開(kāi)發(fā)的機(jī)載軟件在直接表明對(duì)于DO-178C某些目標(biāo)的符合性方面存在困難或不清晰的情況,甚至有一些空白。為了給基于模型的開(kāi)發(fā)和驗(yàn)證活動(dòng)的合格審定提供明確的指南,也為了推進(jìn)這項(xiàng)技術(shù)在工業(yè)界的發(fā)展,美國(guó)航空無(wú)線電委員會(huì)(Radio Technical Commission for Aeronautics,簡(jiǎn)稱RTCA)于2011年以DO-178C補(bǔ)充文檔的形式發(fā)布了1份標(biāo)準(zhǔn)DO-331[3]《基于模型的開(kāi)發(fā)和驗(yàn)證(對(duì)于DO-178C和DO-278A的補(bǔ)充)》。該份補(bǔ)充文檔是在DO-178C的基礎(chǔ)上針對(duì)MB技術(shù)對(duì)原先機(jī)載軟件合格審定指南的擴(kuò)展。2013年,美國(guó)聯(lián)邦航空局(Federal Aviation Administration,簡(jiǎn)稱FAA)發(fā)布咨詢通告AC20-115C《機(jī)載軟件保證》認(rèn)可包括DO-331在內(nèi)的五份RTCA標(biāo)準(zhǔn)作為機(jī)載軟件滿足適航規(guī)章可接受的符合性方法。
由于DO-178C發(fā)布的時(shí)間不長(zhǎng),目前僅在一些新的飛機(jī)項(xiàng)目中應(yīng)用為符合性方法,還未形成成熟的可借鑒的審定實(shí)踐經(jīng)驗(yàn),對(duì)于該標(biāo)準(zhǔn)及其補(bǔ)充文檔(包括DO-331在內(nèi))的研究具有重要意義,有助于申請(qǐng)人在項(xiàng)目研制過(guò)程中更好地理解和貫徹合格審定要求,成功表明適航符合性。
DO-331標(biāo)準(zhǔn)在主要章節(jié)的編排組織形式上與DO-178C保持一致,覆蓋了整個(gè)軟件研制流程,但為了以示區(qū)分,所有章節(jié)均采用以MB作為前綴的編號(hào)規(guī)則。標(biāo)準(zhǔn)的主體內(nèi)容繼承了DO-178C,在此基礎(chǔ)上補(bǔ)充了有關(guān)基于模型的開(kāi)發(fā)和驗(yàn)證的內(nèi)容,包括生命周期數(shù)據(jù)和相應(yīng)的目標(biāo),并在附錄中增加了應(yīng)用DO-278A[4]和DO-331時(shí)不同等級(jí)的軟件生命周期過(guò)程的目標(biāo)和輸出的匯總表格,以及常見(jiàn)問(wèn)題解答和討論專題。為了最大程度地減少與DO-178C的重復(fù)信息,DO-331中僅對(duì)DO-178C受影響的章節(jié)進(jìn)行了更新,對(duì)于描述內(nèi)容無(wú)差異的章節(jié),直接聲明對(duì)應(yīng)的DO-178C章節(jié)內(nèi)容沒(mé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中介紹了以下兩類(lèi)模型:
1) 規(guī)范模型(Specification Models):描述提供軟件組件功能、性能、接口或者安全性特性的抽象表示的高級(jí)別需求;
2) 設(shè)計(jì)模型(Design Models):規(guī)定了軟件組件內(nèi)部的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)流和/或控制流,包含低級(jí)別需求和/或軟件架構(gòu)。
DO-331中明確強(qiáng)調(diào)模型不能同時(shí)劃分為規(guī)范模型和設(shè)計(jì)模型,并且依據(jù)當(dāng)前的一些工業(yè)實(shí)踐提供了模型使用的樣例,如表2所示。由表2可看出,設(shè)計(jì)模型使用的場(chǎng)景更為廣泛,但不管模型如何使用,都需要滿足相應(yīng)的符合性目標(biāo)。

表2 模型使用樣例
如果計(jì)劃采用基于模型的開(kāi)發(fā)技術(shù),軟件計(jì)劃過(guò)程除了需要滿足DO-178C中定義的目標(biāo)和活動(dòng)外,還需滿足以下幾點(diǎn):
1) 識(shí)別出將由模型描述的軟件生命周期數(shù)據(jù),例如:需求數(shù)據(jù)或者設(shè)計(jì)數(shù)據(jù),所有開(kāi)發(fā)模型應(yīng)按照上述模型的分類(lèi)進(jìn)行劃分;
2) 識(shí)別出將采用的驗(yàn)證模型的方法,包括對(duì)于設(shè)計(jì)模型的模型覆蓋分析準(zhǔn)則的定義;
3) 應(yīng)生成軟件模型標(biāo)準(zhǔn),描述采用的建模技術(shù)以及對(duì)于每類(lèi)模型適用性的理由;
4) 規(guī)劃模型仿真環(huán)境,定義當(dāng)采用模型仿真器執(zhí)行驗(yàn)證活動(dòng)時(shí)可能采用的方法、工具、程序和操作環(huán)境,主要活動(dòng)包括:
(1)確定模型仿真器是否需要鑒定,評(píng)估的準(zhǔn)則參考DO-331MB.12.2節(jié)(工具鑒定);
(2)明確說(shuō)明模型仿真器的性能和限制,包括預(yù)期的使用以及對(duì)于檢測(cè)錯(cuò)誤和驗(yàn)證功能的能力的影響;
(3)評(píng)估仿真環(huán)境更改的影響,考慮按照DO-331第MB.6章(軟件驗(yàn)證過(guò)程)和MB.12.1.3節(jié)(更改應(yīng)用或開(kāi)發(fā)環(huán)境)中的指南進(jìn)行重新驗(yàn)證。
如果在軟件開(kāi)發(fā)過(guò)程中采用了基于模型的方法,基于DO-331中對(duì)于規(guī)范模型和設(shè)計(jì)模型的定義,所有高級(jí)別需求相關(guān)的目標(biāo)和活動(dòng)適用于規(guī)范模型中包含的需求或者設(shè)計(jì)模型開(kāi)發(fā)所依據(jù)的需求,所有軟件架構(gòu)和低級(jí)別需求相關(guān)的目標(biāo)則適用于軟件設(shè)計(jì)模型中包含的軟件架構(gòu)和需求。此外,對(duì)軟件需求和設(shè)計(jì)過(guò)程的目標(biāo)和活動(dòng)會(huì)有一些附加要求,主要體現(xiàn)為:
1)如果高級(jí)別需求采用規(guī)范模型予以描述應(yīng)標(biāo)識(shí)出所有不代表軟件需求并且不作為后續(xù)軟件開(kāi)發(fā)過(guò)程或者活動(dòng)的輸入的模型元素;
2) 如果低級(jí)別需求和/或架構(gòu)采用設(shè)計(jì)模型予以描述,應(yīng)標(biāo)識(shí)出所有不代表軟件需求或軟件架構(gòu)并且不作為后續(xù)軟件開(kāi)發(fā)過(guò)程或者活動(dòng)的輸入的模型元素;
3) 如果軟件需求或軟件架構(gòu)采用模型予以描述,模型應(yīng)遵循軟件模型標(biāo)準(zhǔn)并具有可追溯性、可驗(yàn)證性和一致性,所有模型元素應(yīng)按照軟件模型標(biāo)準(zhǔn)中的描述進(jìn)行分類(lèi);
4) 如果計(jì)劃開(kāi)發(fā)設(shè)計(jì)模型,對(duì)應(yīng)該模型的軟件高級(jí)別需求應(yīng)包含足夠的細(xì)節(jié)以支持后續(xù)設(shè)計(jì)模型的實(shí)現(xiàn)和驗(yàn)證。
如果采用了基于模型的開(kāi)發(fā)方法,除了滿足對(duì)于軟件需求驗(yàn)證、設(shè)計(jì)驗(yàn)證、代碼驗(yàn)證和測(cè)試有關(guān)的基本目標(biāo)外,鑒于模型的研制特性,軟件驗(yàn)證過(guò)程中還需關(guān)注:
1)開(kāi)發(fā)的模型是否符合軟件模型標(biāo)準(zhǔn),是否對(duì)偏離標(biāo)準(zhǔn)的方面進(jìn)行了解釋說(shuō)明;
2)如果高級(jí)別需求采用規(guī)范模型描述,低級(jí)別需求和規(guī)范模型之間的追溯性;
3)如果低級(jí)別需求采用設(shè)計(jì)模型描述,源代碼和設(shè)計(jì)模型之間的追溯性;
4)如果軟件開(kāi)發(fā)過(guò)程中采用了設(shè)計(jì)模型,應(yīng)按照DO-331MB.6.7節(jié)中的指南開(kāi)展模型覆蓋分析活動(dòng)。
模型覆蓋分析活動(dòng)主要包括:
1) 采用基于需求的驗(yàn)證用例,需求為設(shè)計(jì)模型開(kāi)發(fā)所依據(jù)的需求;
2) 確認(rèn)通過(guò)驗(yàn)證用例所達(dá)到的設(shè)計(jì)模型的覆蓋度是否與計(jì)劃過(guò)程中定義的模型覆蓋準(zhǔn)則一致,在不滿足覆蓋要求的情況下,按照DO-331MB.6.7.2節(jié)中的模型覆蓋分析解決方案開(kāi)展相關(guān)工作;
3) 補(bǔ)充基于設(shè)計(jì)模型中的衍生需求的附加驗(yàn)證用例。
模型覆蓋分析的準(zhǔn)則在表述上與典型的軟件結(jié)構(gòu)覆蓋分析的準(zhǔn)則(語(yǔ)句覆蓋、分支覆蓋等)有所不同,如表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中描述了可采用模型仿真的驗(yàn)證方法來(lái)支持滿足一些驗(yàn)證目標(biāo),主要內(nèi)容包括:
1)針對(duì)模型驗(yàn)證的模型仿真,識(shí)別出了哪些軟件需求和設(shè)計(jì)過(guò)程的輸出的驗(yàn)證目標(biāo)可以通過(guò)對(duì)規(guī)范模型和設(shè)計(jì)模型的仿真滿足,哪些目標(biāo)不能通過(guò)仿真滿足,以及應(yīng)執(zhí)行的仿真活動(dòng);
2)針對(duì)可執(zhí)行目標(biāo)代碼驗(yàn)證的模型仿真,描述了通過(guò)模型仿真和特定的分析的組合可以滿足的軟件測(cè)試和測(cè)試覆蓋目標(biāo)以及相應(yīng)的活動(dòng),其中涵蓋了對(duì)于模型仿真器環(huán)境和目標(biāo)計(jì)算機(jī)環(huán)境的差異分析,以及用于仿真的可執(zhí)行目標(biāo)代碼與用于目標(biāo)機(jī)的可執(zhí)行目標(biāo)代碼之間的差異分析的要求;
3)仿真用例、程序和結(jié)果的開(kāi)發(fā)、評(píng)審和分析。

表3 模型覆蓋準(zhǔn)則樣例
DO-331中描述的其他軟件生命周期過(guò)程,包括構(gòu)型管理過(guò)程、質(zhì)量保證過(guò)程以及合格審定聯(lián)絡(luò)過(guò)程的目標(biāo)和活動(dòng)與DO-178C中的描述并無(wú)明顯差異,即采用MB方法對(duì)這些生命周期過(guò)程基本沒(méi)有影響。
DO-331在DO-178C定義的生命周期數(shù)據(jù)的基礎(chǔ)上,增加了一個(gè)MB專有數(shù)據(jù):軟件模型標(biāo)準(zhǔn)。此標(biāo)準(zhǔn)應(yīng)包含以下內(nèi)容:
1)用于開(kāi)發(fā)模型的方法和工具;
2)采用的建模語(yǔ)言;
3)建模語(yǔ)言使用的風(fēng)格指南以及復(fù)雜度限制;
4)建模工具以及模型元素庫(kù)的使用限制;
5)用于標(biāo)識(shí)和界定模型中包含的需求的方法以及建立需求和其他生命周期數(shù)據(jù)之間的追溯性的方法;
6)用于標(biāo)識(shí)和界定模型中包含的衍生需求的方法以及將衍生需求反饋到系統(tǒng)過(guò)程包括系統(tǒng)安全性評(píng)估過(guò)程的方法;
7)識(shí)別出所有不代表軟件需求或軟件架構(gòu)并且不作為后續(xù)軟件開(kāi)發(fā)過(guò)程或者活動(dòng)的輸入的模型元素的方法;
8)通過(guò)規(guī)范模型或者設(shè)計(jì)模型表述的信息類(lèi)型的技術(shù)適用性的合理解釋。
其他軟件生命周期數(shù)據(jù)中涉及模型相關(guān)的內(nèi)容主要有:
1) 軟件合格審定計(jì)劃PSAC(Plan for Software Aspects of Certification,簡(jiǎn)稱PSAC):
(1)對(duì)于軟件生命周期的描述應(yīng)包含為滿足DO-331目標(biāo)將執(zhí)行的過(guò)程和活動(dòng)以及生成的數(shù)據(jù);
(2)軟件生命周期數(shù)據(jù)中應(yīng)包含符合DO-331的數(shù)據(jù)。
2)軟件開(kāi)發(fā)計(jì)劃SDP(Software Development Plan,簡(jiǎn)稱SDP):軟件開(kāi)發(fā)環(huán)境的描述中應(yīng)包含將采用的建模方法、建模語(yǔ)言和建模工具。
3)軟件驗(yàn)證計(jì)劃SVP(Software Verification Plan,簡(jiǎn)稱SVP):
(1)驗(yàn)證方法之一的分析方法中應(yīng)包含模型追溯性分析、模型覆蓋準(zhǔn)則和模型覆蓋分析;
(2)驗(yàn)證方法中還應(yīng)包含對(duì)于模型仿真方法的描述,包括仿真用例的選擇方法,使用的仿真程序,將生成的仿真數(shù)據(jù)以及DO-331中MB.6.8.1 和MB.6.8.2節(jié)中定義的特定限制;
(3)驗(yàn)證環(huán)境應(yīng)包含對(duì)于模型仿真環(huán)境和工具,以及應(yīng)用這些工具的指南描述;
4)軟件驗(yàn)證用例和程序:應(yīng)包含對(duì)于仿真用例和仿真程序的描述。
5)軟件驗(yàn)證結(jié)果:
(1)應(yīng)標(biāo)識(shí)出模型的構(gòu)型;
(2)應(yīng)包含仿真的結(jié)果以及支持仿真的任何分析結(jié)果。
6)軟件生命周期環(huán)境構(gòu)型索引(Software Life Cycle Environment Configuration Index,簡(jiǎn)稱SECI):應(yīng)標(biāo)識(shí)仿真環(huán)境以及相關(guān)的設(shè)置。
7)軟件構(gòu)型索引(Software Configuration Index,簡(jiǎn)稱SCI):標(biāo)識(shí)的軟件生命周期數(shù)據(jù)中應(yīng)涵蓋DO-331中MB.2.2.1.i到MB.2.2.1.o項(xiàng)的數(shù)據(jù),如果存在系統(tǒng)構(gòu)型索引并包含了這些數(shù)據(jù),應(yīng)索引至系統(tǒng)構(gòu)型索引文檔。
8)軟件構(gòu)型管理記錄:模型的SCM(Software Configuration Management,簡(jiǎn)稱SCM)記錄的例子包括基線記錄和模型元素庫(kù)記錄。
9)追溯性數(shù)據(jù):如果采用模型描述高級(jí)別需求或低級(jí)別需求和/或軟件架構(gòu),與模型的追溯性應(yīng)提供能夠展現(xiàn)出DO-331 MB.11.21節(jié)a)到f)項(xiàng)的顆粒度。
DO-331的附錄A在DO-178C附錄A的基礎(chǔ)上,提供了采用基于模型的開(kāi)發(fā)和驗(yàn)證方法生成機(jī)載軟件需要滿足的符合性驗(yàn)證目標(biāo),文中對(duì)應(yīng)的活動(dòng)描述索引和輸出數(shù)據(jù)的匯總表格。這些表格中對(duì)于目標(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),考慮到模型開(kāi)發(fā)和驗(yàn)證的特殊性,DO-331附錄A中的目標(biāo)在DO-178C的基礎(chǔ)上補(bǔ)充了一些模型相關(guān)的目標(biāo),詳見(jiàn)表4。

表4 DO-331新增目標(biāo)

續(xù)表4
注:表中的○代表目標(biāo)需要滿足,●代表目標(biāo)需要被獨(dú)立滿足。
1) 如果計(jì)劃在民用飛機(jī)機(jī)載軟件生命周期過(guò)程中采用基于模型的開(kāi)發(fā)和驗(yàn)證技術(shù)時(shí),在確定采用DO-178C作為符合性方法的情況下,也應(yīng)符合DO-331標(biāo)準(zhǔn)中的要求;
2) DO-331在應(yīng)用時(shí),應(yīng)以DO-178C作為基礎(chǔ),綜合考慮DO-178C和DO-331中的目標(biāo),同時(shí)在適用的情況下,應(yīng)與DO-178C的其他補(bǔ)充文檔結(jié)合使用,例如工具鑒定的相關(guān)要求應(yīng)遵循DO-330[5]《軟件工具鑒定考慮》標(biāo)準(zhǔn),才能完整地表明適航符合性。