一種符合DO-178B/CA級軟件的模型驗(yàn)證方法技術(shù)領(lǐng)域本發(fā)明屬于計(jì)算機(jī)軟件設(shè)計(jì)技術(shù)領(lǐng)域,涉及一種模型自動(dòng)化驗(yàn)證方法,具體涉及一種符合DO-178B/CA級軟件的模型驗(yàn)證方法。
背景技術(shù):DO-178B/C《機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件考慮》是美國航空無線電委員會(TheRadioTechnicalCommissionforAeronautics,RTCA)提出的航空適航認(rèn)證標(biāo)準(zhǔn),A級是機(jī)載軟件開發(fā)要求的最高級別。1992年RTCA發(fā)布了DO-178B《機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件考慮》。DO-178C于2012年12月頒布執(zhí)行。與DO-178B相比,DO-178C在保證標(biāo)準(zhǔn)的主體部分的穩(wěn)定性的同時(shí)用附錄的形式提出了對特定問題或技術(shù)方法的目標(biāo)要求,如工具鑒定、面向?qū)ο蠓椒?、模型開發(fā)方法等、形式化方法等。機(jī)載軟件開發(fā)符合DO-178B/C標(biāo)準(zhǔn)的要求,是其通過認(rèn)證機(jī)載使用的必要條件。A級軟件的研發(fā)按照DO-178B/C的要求,分為軟件計(jì)劃、軟件開發(fā)與軟件綜合三個(gè)過程。在軟件計(jì)劃階段,需對軟件生命周期、軟件開發(fā)、驗(yàn)證環(huán)境進(jìn)行策劃。在軟件開發(fā)過程中,需執(zhí)行軟件需求、軟件設(shè)計(jì)、軟件編碼與軟件集成;在綜合過程中需執(zhí)行軟件驗(yàn)證、軟件配置管理、軟件質(zhì)量保證和軟件合格審定聯(lián)絡(luò)。DO-178B/C標(biāo)準(zhǔn)只定義了上述過程的目標(biāo)要求,但并未提及采用何種方法來執(zhí)行這些過程。
技術(shù)實(shí)現(xiàn)要素:為了解決背景技術(shù)中的問題,本發(fā)明以DO-178B/C中提出的模型開發(fā)技術(shù)為基礎(chǔ),提出一種符合DO-178B/C軟件的模型驗(yàn)證方法能夠通過當(dāng)前軟件建模工具生成軟件模型,根據(jù)軟件級別,生成滿足適航要求的驗(yàn)證程序集,為機(jī)載軟件的適航合格審定提供有力支持。本發(fā)明的具體技術(shù)方案是:一種符合DO-178B/CA級軟件的模型驗(yàn)證方法,其特征在于,包括以下步驟:1)搭建驗(yàn)證系統(tǒng)架構(gòu);所述驗(yàn)證系統(tǒng)架構(gòu)包括模型轉(zhuǎn)換層、驗(yàn)證數(shù)據(jù)和邏輯生成層、驗(yàn)證程序生成和選取層;所述模型轉(zhuǎn)換層通過模型轉(zhuǎn)換器將輸入模型轉(zhuǎn)換為若干個(gè)特征模型;所述模型轉(zhuǎn)換器的轉(zhuǎn)換過程為數(shù)據(jù)類型建模和特征服務(wù)建模的過程;所述驗(yàn)證數(shù)據(jù)和邏輯生成層將若干個(gè)特征模型分別通過驗(yàn)證數(shù)據(jù)生成器生成驗(yàn)證數(shù)據(jù)集,通過驗(yàn)證邏輯生成器生成驗(yàn)證邏輯集;所述驗(yàn)證程序生成和選取層通過驗(yàn)證程序生成和選擇器將驗(yàn)證數(shù)據(jù)集和驗(yàn)證邏輯集生成為驗(yàn)證程序集;2)用戶將待驗(yàn)證模型輸入至模型轉(zhuǎn)換層中,待驗(yàn)證模型通過模型轉(zhuǎn)換器轉(zhuǎn)換為若干個(gè)特征模型;3)以若干個(gè)特征模型輸入至驗(yàn)證數(shù)據(jù)和邏輯生成層通過驗(yàn)證數(shù)據(jù)生成器和驗(yàn)證邏輯生成器生成驗(yàn)證數(shù)據(jù)集和驗(yàn)證邏輯集;4)利用驗(yàn)證程序生成和選取層中的驗(yàn)證程序生成和選擇器將驗(yàn)證數(shù)據(jù)集和驗(yàn)證邏輯集生成驗(yàn)證程序集;從驗(yàn)證程序集中選取出驗(yàn)證程序子集;5)根據(jù)驗(yàn)證程序子集通過DO-178B/C中要求的軟件覆蓋強(qiáng)度級別進(jìn)行驗(yàn)證;若驗(yàn)證成功,則待驗(yàn)證模型通過驗(yàn)證;若驗(yàn)證失敗,則待驗(yàn)證模型未通過驗(yàn)證;所述覆蓋強(qiáng)度級別包括語句判定、修訂的條件以及判定覆蓋。上述驗(yàn)證數(shù)據(jù)生成器根據(jù)數(shù)據(jù)類型及其約束的定義,生成驗(yàn)證數(shù)據(jù)樣本,包括正常輸入和異常輸入數(shù)據(jù);建立驗(yàn)證數(shù)據(jù)的等價(jià)類定義,采用隨機(jī)驗(yàn)證、邊界值分析的方法生成驗(yàn)證數(shù)據(jù)集;所述驗(yàn)證邏輯生成器根據(jù)特征模型,接口之間的約束和依賴關(guān)系,采用組合驗(yàn)證的方式,生成不同組合覆蓋率的驗(yàn)證數(shù)據(jù),確定驗(yàn)證過程中的驗(yàn)證邏輯集。上述驗(yàn)證程序生成和選擇器包括驗(yàn)證程序信息定義模塊、驗(yàn)證環(huán)境配置模塊、驗(yàn)證程序選取模塊;所述驗(yàn)證程序信息定義模塊的信息輸入源是驗(yàn)證人員手工配置的驗(yàn)證用例模版;所述模版使用XML文本,所述模版主要包括驗(yàn)證項(xiàng)目中驗(yàn)證用例的共有信息,所述驗(yàn)證程序信息定義模塊利用用例模版,把驗(yàn)證數(shù)據(jù)集與驗(yàn)證邏輯集進(jìn)行組裝,生成正常驗(yàn)證用例和異常驗(yàn)證用例;根據(jù)特征服務(wù)模型中的服務(wù)前置條件、服務(wù)后置條件和服務(wù)約束,按照依賴次序和驗(yàn)證目標(biāo),對若干驗(yàn)證用例進(jìn)行組合,生成驗(yàn)證程序集;所述驗(yàn)證環(huán)境配置模塊用于配置驗(yàn)證的驗(yàn)證環(huán)境,所述驗(yàn)證環(huán)境包括宿主機(jī)型號、目標(biāo)機(jī)型號、操作系統(tǒng)配置、內(nèi)存配置、各種工具包;所述驗(yàn)證程序選取模塊根據(jù)所述驗(yàn)證程序集和驗(yàn)證環(huán)境以及DO-178B中定義的軟件級別選取出不同的驗(yàn)證程序子集。上述數(shù)據(jù)類型建模包括數(shù)據(jù)類型定義模塊和數(shù)據(jù)類型約束定義模塊;所述數(shù)據(jù)類型定義模塊用于定義簡單類型描述、定義枚舉類型描述以及定義結(jié)構(gòu)體類型描述;所述數(shù)據(jù)類型約束定義模塊用于定義有效值枚舉、定義長度約束以及定義區(qū)間約束;所述特征服務(wù)建模包括服務(wù)信息基本定義模塊和服務(wù)參數(shù)基本定義模塊;所述服務(wù)信息基本定義模塊用于定義服務(wù)描述、定義服務(wù)前置條件、定義服務(wù)后置條件以及定義服務(wù)約束;所述服務(wù)參數(shù)基本定義模塊定義服務(wù)參數(shù)的基本信息、定義服務(wù)參數(shù)的數(shù)據(jù)池。本發(fā)明的優(yōu)點(diǎn)在于:1、本發(fā)明采用的方法不僅定義DO-178B/C軟件標(biāo)準(zhǔn)需要驗(yàn)證目標(biāo)要求,而且提出了驗(yàn)證的方法。2、本發(fā)明的方法能夠DO-178B/C中定義的軟件級別選取出不同的驗(yàn)證程序子集,實(shí)現(xiàn)DO-178B/C中不同級別軟件的驗(yàn)證。附圖說明附圖1模型驗(yàn)證方法系統(tǒng)流程圖;附圖2模型轉(zhuǎn)換器的示意圖;附圖3驗(yàn)證程序生成和選擇器的示意圖;附圖4驗(yàn)證程序管理模塊的示意圖;具體實(shí)施方式下面結(jié)合附圖1給出符合DO-178B/CA級軟件的模型驗(yàn)證方法的具體實(shí)施例:本方法各組成部分的具體實(shí)施方案為:步驟1)搭建驗(yàn)證系統(tǒng)架構(gòu);其中,驗(yàn)證系統(tǒng)架構(gòu)包括模型轉(zhuǎn)換層、驗(yàn)證數(shù)據(jù)和邏輯生成層、驗(yàn)證程序生成和選取層;具體的說,模型轉(zhuǎn)換層的功能是:通過模型轉(zhuǎn)換器將輸入模型轉(zhuǎn)換為若干個(gè)特征模型;模型轉(zhuǎn)換器的轉(zhuǎn)換過程為數(shù)據(jù)類型建模和特征服務(wù)建模的過程;進(jìn)一步地說,特征建模就是解析軟件模型,從中抽取主要的數(shù)據(jù)、接口以及接口間依賴關(guān)系等主要特征,建立統(tǒng)一的、與具體模型無關(guān)的特征模型,并采用形式化語言進(jìn)行描述,以便于機(jī)器自動(dòng)理解和處理。特征模型的抽取和抽象描述是驗(yàn)證程序自動(dòng)化生成的基礎(chǔ)。如圖2所示:模型轉(zhuǎn)換器可細(xì)分為數(shù)據(jù)類型建模和特征服務(wù)建模兩個(gè)模塊。數(shù)據(jù)類型建模模塊可細(xì)分為數(shù)據(jù)類型定義和數(shù)據(jù)類型約束定義兩個(gè)模塊。數(shù)據(jù)類型定義模塊完成的功能是:定義簡單類型描述;定義枚舉類型描述;定義結(jié)構(gòu)體類型描述;數(shù)據(jù)類型約束定義模塊完成的功能是:定義有效值枚舉;定義長度約束;定義區(qū)間約束;其中,有效值約束用于任意數(shù)據(jù)類型的約束,長度約束用于字符串類型的約束,區(qū)間約束用于數(shù)值類型的約束。特征服務(wù)建模模塊可細(xì)分為服務(wù)信息基本定義和服務(wù)參數(shù)基本定義兩個(gè)模塊。見附圖2。服務(wù)信息基本定義模塊完成的功能是:定義服務(wù)描述;定義服務(wù)前置條件;定義服務(wù)后置條件;定義服務(wù)約束;服務(wù)參數(shù)基本定義模塊完成的功能是:定義服務(wù)參數(shù)的基本信息;定義服務(wù)參數(shù)的數(shù)據(jù)池;具體的說,驗(yàn)證數(shù)據(jù)和邏輯生成層的功能是:將若干個(gè)特征模型分別通過驗(yàn)證數(shù)據(jù)生成器生成驗(yàn)證數(shù)據(jù)集,通過驗(yàn)證邏輯生成器生成驗(yàn)證邏輯集;進(jìn)一步地說,驗(yàn)證數(shù)據(jù)生成模塊可細(xì)分為數(shù)據(jù)池模型管理和驗(yàn)證行為描述兩個(gè)模塊。驗(yàn)證數(shù)據(jù)生成器主要是根據(jù)數(shù)據(jù)類型及其約束的定義,生成驗(yàn)證數(shù)據(jù)樣本,包括正常輸入和異常輸入數(shù)據(jù);建立驗(yàn)證數(shù)據(jù)的等價(jià)類定義,采用隨機(jī)驗(yàn)證、邊界值分析等方法生成驗(yàn)證數(shù)據(jù)集。驗(yàn)證邏輯生成器主要是基于特征服務(wù)模型,考慮接口之間的約束和依賴關(guān)系,采用組合驗(yàn)證的思想,生成不同組合覆蓋率的驗(yàn)證數(shù)據(jù),確定驗(yàn)證過程中的驗(yàn)證邏輯集。具體地說,驗(yàn)證程序生成和選取層的功能是:通過驗(yàn)證程序生成和選擇器將驗(yàn)證數(shù)據(jù)集和驗(yàn)證邏輯集生成為驗(yàn)證程序集;如圖3所示,驗(yàn)證程序生成和選擇器可細(xì)分為驗(yàn)證程序信息定義、驗(yàn)證環(huán)境配置、驗(yàn)證程序選取三個(gè)模塊。。驗(yàn)證程序信息定義模塊的信息輸入源是驗(yàn)證人員手工配置的驗(yàn)證用例模版。該模版可以使用XML文本,這樣便于使用特定語言(比如C語言)的驗(yàn)證用例的實(shí)現(xiàn)。該模版主要包括驗(yàn)證項(xiàng)目中驗(yàn)證用例的共有信息,比如:知識產(chǎn)權(quán)、版本變化、需求追蹤等信息。驗(yàn)證程序信息定義模塊在已配置驗(yàn)證用例模版的基礎(chǔ)上,把數(shù)據(jù)池中的數(shù)據(jù)與驗(yàn)證行為描述的具體行為進(jìn)行組裝,生成正常驗(yàn)證用例和異常驗(yàn)證用例;再根據(jù)特征服務(wù)模型中的服務(wù)前置條件、服務(wù)后置條件和服務(wù)約束,按照特定依賴次序(比如:順序執(zhí)行或者并發(fā)執(zhí)行)和驗(yàn)證目標(biāo),對若干驗(yàn)證用例進(jìn)行組合,生成驗(yàn)證程序的主體內(nèi)容。驗(yàn)證環(huán)境配置模塊可以自動(dòng)或由驗(yàn)證人員手工配置某次驗(yàn)證的驗(yàn)證環(huán)境,比如:宿主機(jī)型號、目標(biāo)機(jī)型號、操作系統(tǒng)配置、內(nèi)存配置、各種工具包等。步驟2)用戶將待驗(yàn)證模型輸入至模型轉(zhuǎn)換層中的,待驗(yàn)證模型通過模型轉(zhuǎn)換器轉(zhuǎn)換為若干個(gè)特征模型;其中,待驗(yàn)證模型包括Rhapsody模型、simulink模型以及其他模型;步驟3)以若干個(gè)特征模型輸入至驗(yàn)證數(shù)據(jù)和邏輯生成層通過驗(yàn)證數(shù)據(jù)生成器和驗(yàn)證邏輯生成器生成驗(yàn)證數(shù)據(jù)集和驗(yàn)證邏輯集;步驟4)利用驗(yàn)證程序生成和選取層中的驗(yàn)證程序生成和選擇器將驗(yàn)證數(shù)據(jù)集和驗(yàn)證邏輯集生成驗(yàn)證程序集;從驗(yàn)證程序集中選取出驗(yàn)證程序子集;步驟5)根據(jù)驗(yàn)證程序子集通過DO-178B/C中要求的軟件覆蓋強(qiáng)度級別進(jìn)行驗(yàn)證;若驗(yàn)證成功,則待驗(yàn)證模型通過驗(yàn)證;若驗(yàn)證失敗,則待驗(yàn)證模型未通過驗(yàn)證;其中,覆蓋強(qiáng)度級別包括語句判定、修訂的條件以及判定覆蓋。已驗(yàn)證程序集和驗(yàn)證環(huán)境的基礎(chǔ)上,根據(jù)DO-178B/C中定義的軟件級別(A、B和C級),采用不同算法,選取出不同的驗(yàn)證程序子集。另外,需要進(jìn)一步說明的是:采用該方法時(shí)可以采用驗(yàn)證管理模塊;用于為了降低驗(yàn)證人員搭建驗(yàn)證運(yùn)行環(huán)境的難度,幫助驗(yàn)證人員快速構(gòu)建驗(yàn)證平臺,對一個(gè)項(xiàng)目甚至是多個(gè)項(xiàng)目中的眾多驗(yàn)證程序進(jìn)行系統(tǒng)化、層次化的管理,便于驗(yàn)證人員高效復(fù)用這些資產(chǎn)。如圖4所示:驗(yàn)證管理模塊可細(xì)分為運(yùn)行配置管理和驗(yàn)證程序管理兩個(gè)模塊。運(yùn)行配置管理可細(xì)分為數(shù)據(jù)集配置管理、運(yùn)行環(huán)境配置管理和目標(biāo)機(jī)管理三個(gè)模塊。數(shù)據(jù)集配置管理模塊完成的功能是:數(shù)據(jù)集配置——包括數(shù)據(jù)名稱設(shè)置和數(shù)據(jù)集路徑設(shè)置;驗(yàn)證用例根目錄設(shè)置;驗(yàn)證程序根目錄設(shè)置;運(yùn)行環(huán)境配置管理模塊完成的功能是:配置數(shù)據(jù)存儲區(qū)、代碼區(qū)的起始地址;配置目標(biāo)機(jī)(如果適用)的啟動(dòng)路徑;配置虛擬機(jī)(如果適用)的啟動(dòng)路徑;目標(biāo)機(jī)管理模塊完成的功能是:添加目標(biāo)機(jī);修改目標(biāo)機(jī)信息;刪除目標(biāo)機(jī);由于模型驗(yàn)證工具自動(dòng)生成的驗(yàn)證程序數(shù)量可能較大,某些驗(yàn)證程序在某一項(xiàng)目的特定要求下可能并不適用。驗(yàn)證程序管理模塊為驗(yàn)證人員對這樣的驗(yàn)證程序的維護(hù)提供手段,包括:驗(yàn)證程序修改、驗(yàn)證程序刪除和驗(yàn)證程序?yàn)g覽三個(gè)模塊。