孫 科,覃楊森
(中國飛行試驗(yàn)研究院 陜西 西安710089)
基于GSPN的機(jī)載構(gòu)件化軟件系統(tǒng)可靠性測(cè)試方法
孫 科,覃楊森
(中國飛行試驗(yàn)研究院 陜西 西安710089)
利用AADL語言對(duì)機(jī)載構(gòu)件化軟件系統(tǒng)體系結(jié)構(gòu)進(jìn)行可靠性建模,實(shí)現(xiàn)AADL可靠性模型到廣義隨機(jī)Petri網(wǎng)(GSPN)可靠性計(jì)算模型的轉(zhuǎn)換。模型轉(zhuǎn)換規(guī)則主要包括基本元素轉(zhuǎn)換規(guī)則、基本依賴元素轉(zhuǎn)換規(guī)則。在此基礎(chǔ)上,將依賴關(guān)系擴(kuò)展到語義連接、參數(shù)連接及子構(gòu)件調(diào)用上,同時(shí)使用圖形化方法對(duì)轉(zhuǎn)換規(guī)則進(jìn)行說明,使可靠性模型向GSPN模型轉(zhuǎn)換規(guī)則更加完備,以實(shí)現(xiàn)對(duì)機(jī)載構(gòu)件化軟件系統(tǒng)可靠性的計(jì)算測(cè)試與分析評(píng)估。
軟件測(cè)試;構(gòu)件化軟件;可靠性;轉(zhuǎn)換規(guī)則;GSPN
隨著機(jī)載軟件系統(tǒng)的發(fā)展,其構(gòu)件化體系結(jié)構(gòu)越來越復(fù)雜,規(guī)模越來越大,對(duì)系統(tǒng)的開發(fā)成本、開發(fā)周期及非功能屬性(可調(diào)度性、可靠性、安全性)要求也越來越高。因此,機(jī)載軟件系統(tǒng)設(shè)計(jì)可在模型級(jí)別對(duì)系統(tǒng)的非功能屬性進(jìn)行測(cè)試,對(duì)系統(tǒng)的可調(diào)度性、可靠性、安全性進(jìn)行分析,根據(jù)需求在模型級(jí)別對(duì)系統(tǒng)架構(gòu)進(jìn)行修改,以縮短開發(fā)周期,節(jié)約成本?;谶@個(gè)思想,美國自動(dòng)化工程師協(xié)會(huì)(Society of Automotive Engineers,SAE)發(fā)布了航空標(biāo)準(zhǔn)AS5506——架構(gòu)分析與設(shè)計(jì)語言[1-2](Architecture Analysis and Design Language,AADL)。AADL支持在非功能屬性方面對(duì)機(jī)載系統(tǒng)體系結(jié)構(gòu)進(jìn)行分析,其將硬件和軟件抽象為不同的構(gòu)件,構(gòu)件間通過接口或調(diào)用實(shí)現(xiàn)數(shù)據(jù)的通信,它并不關(guān)心構(gòu)件的具體實(shí)現(xiàn),通過軟件構(gòu)件、硬件構(gòu)件和系統(tǒng)構(gòu)件對(duì)機(jī)載高可靠性系統(tǒng)進(jìn)行了描述與測(cè)試分析。為了對(duì)機(jī)載系統(tǒng)的可靠性進(jìn)行描述,SAE又發(fā)布了航空標(biāo)準(zhǔn)AS5506/1——錯(cuò)誤模型附錄[3-4](Annex E:Error Model Annex)。此標(biāo)準(zhǔn)的提出完善了AADL建模語言,使其由原來單一的模型描述和驗(yàn)證增加了可靠性分析。AADL系統(tǒng)可靠性模型是一個(gè)靜態(tài)的模型,為了對(duì)AADL系統(tǒng)架構(gòu)模型進(jìn)行可靠性測(cè)試和分析,需要采用廣義隨機(jī)Petri網(wǎng)(GSPN)[5]可靠性計(jì)算模型對(duì)AADL可靠性模型進(jìn)行描述,然后通過對(duì)GSPN可靠性計(jì)算模型進(jìn)行計(jì)算測(cè)試與分析,以驗(yàn)證AADL可靠性模型是否滿足系統(tǒng)設(shè)計(jì)要求[6]。
一個(gè)六元組(S,T;F,W,M,λ)是一個(gè)廣義隨機(jī)Petri網(wǎng)(GSPN),當(dāng)且僅當(dāng):S,W,M,λ 與 SPN 定義相同;F中允許有禁止弧,禁止弧僅存在于從庫所到遷移,禁止弧所連接的庫所原可實(shí)施條件變?yōu)椴豢蓪?shí)施條件,原不可實(shí)施條件變?yōu)榭蓪?shí)施條件,且在相連遷移實(shí)施時(shí),沒有標(biāo)識(shí)從相連的庫所中移出;遷移集 T 劃分為兩個(gè)子集:T=Tt∪Ti,Tt∩Ti=Ф,時(shí)間遷移集 Tt={T1,T2,…Tk},瞬時(shí)遷移集 Ti={Tk+1,Tk+2,…Tn},與時(shí)間遷移集相關(guān)聯(lián)的平均遷移實(shí)施速率集合 λ={λ1,λ2…λk},與瞬時(shí)遷移相關(guān)聯(lián)的弧權(quán)函數(shù)集合為 W={wk+1,wk+2,…,wn};在一個(gè)標(biāo)識(shí) M 下多個(gè)可實(shí)施瞬時(shí)遷移定義一個(gè)隨機(jī)開關(guān),確定它們之間實(shí)施概率選擇[7]。
在GSPN中,時(shí)間遷移的實(shí)施速率同隨機(jī)Petri網(wǎng)一樣,也可能依賴于標(biāo)識(shí)[8]。如果在一個(gè)標(biāo)識(shí)M下,有若干個(gè)遷移構(gòu)成一個(gè)可實(shí)施遷移集合H,則有下列兩種情形:
1)如果H全部由時(shí)間遷移組成,則H中任一時(shí)間ti∈H實(shí)施的概率為:
與SPN的情形相同,這種標(biāo)識(shí)稱為實(shí)存標(biāo)識(shí);
2)如果H包含若干個(gè)瞬時(shí)遷移和若干個(gè)時(shí)間遷移或不包含時(shí)間遷移時(shí),只有瞬時(shí)遷移能實(shí)施,時(shí)間遷移不能實(shí)施。選擇哪個(gè)瞬時(shí)遷移實(shí)施,要根據(jù)一個(gè)概率分布函數(shù)。H的全部瞬時(shí)遷移構(gòu)成的子集連同相關(guān)的概率分布一起稱為一個(gè)隨機(jī)開關(guān)[9]。相應(yīng)的概率分布稱為一個(gè)開關(guān)分布。
每一個(gè)瞬時(shí)遷移的實(shí)施概率為:
不同的標(biāo)識(shí)可以分配同一個(gè)隨機(jī)開關(guān),它們具有相同的瞬時(shí)遷移集合并且定義同一個(gè)開關(guān)分布。若與一個(gè)可實(shí)施的瞬時(shí)遷移相關(guān)的概率為零,則該遷移不能實(shí)施,其結(jié)果就好像它不可實(shí)施一樣。一般情況下,一個(gè)GSPN的可達(dá)集是相關(guān)的P/T網(wǎng)可達(dá)集的一個(gè)子集,這是因?yàn)镚SPN中瞬時(shí)遷移優(yōu)于時(shí)間遷移的實(shí)施,從而造成一些表示不可達(dá)。另外GSPN的可達(dá)集可以劃分為兩個(gè)不相交的子集:僅使時(shí)間遷移可實(shí)施的標(biāo)識(shí)集;可使瞬時(shí)遷移可實(shí)施的標(biāo)識(shí)集[10]。前者標(biāo)識(shí)在穩(wěn)定狀態(tài)下有駐留時(shí)間;后者標(biāo)識(shí)沒有駐留時(shí)間。這為GSPN狀態(tài)空間的化簡提供了依據(jù)。
AADL可靠性模型是無法進(jìn)行量化分析和評(píng)估的,需要將其轉(zhuǎn)換為可分析計(jì)算的GSPN模型。圖1所示為AADL可靠性模型向GSPN模型轉(zhuǎn)換以及可靠性測(cè)試評(píng)估的過程圖。
圖1 可靠性測(cè)試評(píng)估過程圖
第一步,根據(jù)需求利用AADL標(biāo)準(zhǔn)建立機(jī)載軟件系統(tǒng)架構(gòu)模型;
第二步,建立軟件系統(tǒng)構(gòu)件的AADL錯(cuò)誤模型,構(gòu)件間具有相互依賴關(guān)系;
第三步,利用上兩步建立的AADL可靠性模型,根據(jù)轉(zhuǎn)換規(guī)則,將AADL可靠性模型轉(zhuǎn)換為GSPN模型;
第四步,根據(jù)生成的GSPN模型進(jìn)行可靠性計(jì)算,根據(jù)可靠性計(jì)算結(jié)果,分析是否滿足系統(tǒng)軟件設(shè)計(jì)要求,如果不滿足,需對(duì)AADL可靠性模型進(jìn)行修改或重構(gòu)。
當(dāng)只考慮機(jī)載軟件系統(tǒng)中單獨(dú)的構(gòu)件或相對(duì)獨(dú)立的構(gòu)件時(shí),將錯(cuò)誤模型中的基本元素錯(cuò)誤狀態(tài)、錯(cuò)誤事件、錯(cuò)誤狀態(tài)的變遷轉(zhuǎn)換為GSPN模型中的位置、弧、遷移等基本元素[11],如表1所示。
表1 AADL錯(cuò)誤模型和GSPN模型基本對(duì)應(yīng)關(guān)系
在基本元素轉(zhuǎn)換中,從AADL錯(cuò)誤模型向GPSN模型轉(zhuǎn)換時(shí),GSPN模型中的遷移到底采用哪種遷移,是采用時(shí)間遷移還是采用瞬時(shí)遷移,主要和這種錯(cuò)誤事件類型和其分布有關(guān)[12],如果錯(cuò)誤事件的發(fā)生服從泊松分布,那么應(yīng)將其轉(zhuǎn)換到時(shí)間遷移,如果服從固定概率分布,應(yīng)將其轉(zhuǎn)換到瞬時(shí)遷移。
由于構(gòu)件之間是互相關(guān)聯(lián)的,一個(gè)構(gòu)件發(fā)生錯(cuò)誤可能會(huì)影響到另一個(gè)構(gòu)件,這就造成了錯(cuò)誤的傳播,有交互的構(gòu)件都是基于兩種最基本的錯(cuò)誤傳播方 式 out propagation和 in propagation, 因 此 ,in propagation和out propagation基本依賴關(guān)系規(guī)則的轉(zhuǎn)換對(duì)其他的高級(jí)依賴關(guān)系的轉(zhuǎn)換起到很大的影響。
在對(duì)out propagation和in propagation進(jìn)行聯(lián)合的過程中,in propagation因out propagation的存在而發(fā)生,二者的聯(lián)合,就是錯(cuò)誤傳播的最基本情況[13]。如圖2所示,Component1是錯(cuò)誤傳播的發(fā)送者,Component2是錯(cuò)誤傳播的接收者,兩者通過數(shù)據(jù)端口進(jìn)行連接,錯(cuò)誤傳播也是通過數(shù)據(jù)端口進(jìn)行傳播的,Component1發(fā)出的錯(cuò)誤名字和Component2接收的錯(cuò)誤名字是相同的。
圖2 發(fā)送和接受構(gòu)件in-out propagation匹配
圖3 發(fā)送構(gòu)件到接受構(gòu)件錯(cuò)誤傳播的GSPN模型
圖3是對(duì)圖2的GSPN模型轉(zhuǎn)化。如圖3所示,加了一條從Outprop到InProp的雙向弧和從In_src到t∈得禁止弧,從Outprop到InProp的雙向弧表示當(dāng)Out_src發(fā)生錯(cuò)誤傳播,在Outprop中就存一個(gè)標(biāo)識(shí),如果此時(shí)InProp中也存在一個(gè)標(biāo)識(shí),那么Component2就接受到Component1的錯(cuò)誤,發(fā)生錯(cuò)誤狀態(tài)的變遷,假如還有其他的接受構(gòu)件,那么其他的接受構(gòu)件也可以接受到這個(gè)錯(cuò)誤,OutProp中的標(biāo)識(shí)不應(yīng)該消失,因此,必須是雙向弧。從In_src到t∈得禁止弧,表示當(dāng)out_src只發(fā)生一次錯(cuò)誤傳播到達(dá)錯(cuò)誤狀態(tài)Out_dst,Outprop中存在一個(gè)標(biāo)識(shí),如果此時(shí)In_src中已經(jīng)存在一個(gè)標(biāo)識(shí),接受構(gòu)件已經(jīng)準(zhǔn)備好接受錯(cuò)誤,為了防止這個(gè)OutProp中的標(biāo)識(shí)被t∈吸收,所以加了從In_src到t∈的禁止弧。
某型號(hào)飛行控制系統(tǒng)的AADL架構(gòu)模型如圖4所示。該系統(tǒng)由兩個(gè)通過通信介質(zhì)連接的計(jì)算機(jī)系統(tǒng)構(gòu)成。其中一個(gè)系統(tǒng)實(shí)現(xiàn)了與所有的執(zhí)行器和GPS位置傳感器的交互。另一個(gè)系統(tǒng)是人機(jī)交互界面系統(tǒng),這個(gè)系統(tǒng)管理移動(dòng)地圖顯示器,并執(zhí)行飛行員啟動(dòng)/取消被動(dòng)開關(guān)的操作。
圖4 某型號(hào)飛控系統(tǒng)架構(gòu)模型圖
如圖4所示,飛控系統(tǒng)由Nav_Autopilot_System和HCI_System兩個(gè)子系統(tǒng)構(gòu)成。Nav_Autopilot_System子系統(tǒng)是自動(dòng)控制系統(tǒng),包含進(jìn)程P_Nav_Con 以及 5 個(gè) 設(shè) 備 構(gòu) 件 (Alieron、Elevator、Rudder、Engine、GPS),其中設(shè)備構(gòu)件 GPS 主要負(fù)責(zé)讀取外部數(shù)據(jù)(經(jīng)度、維度、海拔、溫度等)并發(fā)送給進(jìn)程P_Nav_Con,由進(jìn)程P_Nav_Con向其它4個(gè)設(shè)備構(gòu)件發(fā)出控制信號(hào),這4個(gè)設(shè)備構(gòu)件是控制飛機(jī)飛行的設(shè)備[14]。在子系統(tǒng)Nav_Autopilot_System中,GPS構(gòu)件是主要的錯(cuò)誤傳播源,錯(cuò)誤傳播是從它發(fā)出給P_Nav_Con進(jìn)程,然后傳給4個(gè)設(shè)備構(gòu)件和HCI_System子系統(tǒng)。
圖5 硬件構(gòu)件的錯(cuò)誤模型描述
HCI_System子系統(tǒng)是人工控制系統(tǒng),主要包含進(jìn)程P_HCI,這個(gè)進(jìn)程負(fù)責(zé)接收飛行員的控制信號(hào),在顯示器上顯示出來控制信息,并將這些控制信息發(fā)送給Nav_Autopilot_System子系統(tǒng)的4個(gè)設(shè)備構(gòu)件,從而控制飛機(jī)的飛行。在子系統(tǒng)HCI_System中,T_Pilot_Input是主要的錯(cuò)誤傳播源,錯(cuò)誤從它發(fā)出傳播給Nav_Autopilot_System子系統(tǒng)的設(shè)備構(gòu)件。
根據(jù)以上的系統(tǒng)分析,首先建立飛行控制系統(tǒng)的AADL架構(gòu)模型,進(jìn)而在飛控系統(tǒng)的架構(gòu)模型基礎(chǔ)上,建立對(duì)應(yīng)的AADL錯(cuò)誤模型。硬件構(gòu)件錯(cuò)誤模型如同圖5所示。其中,構(gòu)件的初始狀態(tài)為無錯(cuò)誤狀態(tài)(Error_Free state);臨時(shí)錯(cuò)誤故障以速率λh1被激活;永久錯(cuò)誤故障以速率λh2被激活;由臨時(shí)錯(cuò)誤故障引起的錯(cuò)誤其發(fā)生速率為μh1;由永久錯(cuò)誤故障引起的錯(cuò)誤要么被發(fā)現(xiàn)(發(fā)現(xiàn)速率為τh1),要么未被發(fā)現(xiàn)(未被發(fā)現(xiàn)速率為τh2),在這兩種情況下,構(gòu)件都遷移到Failed狀態(tài),如果錯(cuò)誤被發(fā)現(xiàn),硬件構(gòu)件則被修復(fù),如果錯(cuò)誤未被發(fā)現(xiàn),那么Failure則以速率ξh被察覺,這個(gè)構(gòu)件便以速率μh2被修復(fù)。
圖6 軟件構(gòu)件的錯(cuò)誤模型描述
圖6所示為軟件構(gòu)件錯(cuò)誤模型。其中,構(gòu)件的初始狀態(tài)為無錯(cuò)誤狀態(tài)(Error_Free state);故障以速率λs被激活,錯(cuò)誤要么被發(fā)現(xiàn)(速率為τh1),要么未被發(fā)現(xiàn)(速率為τh2)[15]。一個(gè)被檢測(cè)到的由臨時(shí)故障引起的錯(cuò)誤,將被錯(cuò)誤檢測(cè)機(jī)制以速率πs1消除,該構(gòu)件隨后遷移至Error_Free狀態(tài);一個(gè)被檢測(cè)到的由永久故障引起的錯(cuò)誤將以速率πs2導(dǎo)致構(gòu)件的失效,那么該構(gòu)件需要重啟以消除錯(cuò)誤影響,構(gòu)件的重啟速率為νs。未被檢測(cè)到的錯(cuò)誤可能自行消失(速率為 rateδs)或者可能被檢測(cè)機(jī)制察覺(速率為 ξs)。
根據(jù)第2節(jié)中的可靠性模型轉(zhuǎn)換規(guī)則,將圖4所示系統(tǒng)構(gòu)件的可靠性模型轉(zhuǎn)換得到GSPN可靠性計(jì)算模型。將GSPN可靠性計(jì)算模型的PNML文件導(dǎo)入可靠性計(jì)算工具PIPE2中,以實(shí)現(xiàn)對(duì)系統(tǒng)可靠性的高效計(jì)算[16]。PIPE2執(zhí)行可靠性計(jì)算過程如圖7所示。同時(shí),由于PIPE2是一個(gè)針對(duì)GSPN可靠性計(jì)算模型的開源工具,可將工具的計(jì)算過程進(jìn)行參數(shù)優(yōu)化,例如調(diào)整可靠性模型計(jì)算步長等,修正計(jì)算結(jié)果精度,進(jìn)行多次計(jì)算對(duì)比分析。
圖7 可靠性計(jì)算流程
文中通過將機(jī)載構(gòu)件化軟件系統(tǒng)的可靠性模型轉(zhuǎn)換為GSPN模型,可以對(duì)機(jī)載系統(tǒng)的可靠性進(jìn)行量化測(cè)試計(jì)算,得出明確的數(shù)值分析結(jié)果,判斷是否符合系統(tǒng)設(shè)計(jì)的可靠性需求,以便在系統(tǒng)的設(shè)計(jì)階段,及時(shí)調(diào)整和完善設(shè)計(jì)方案,達(dá)到降低機(jī)載構(gòu)件化軟件系統(tǒng)開發(fā)成本,提高開發(fā)效率的目的。
[1]覃楊森,霍朝暉,劉成玉.構(gòu)件化機(jī)載軟件非功能屬性測(cè)試分析方法研究[J].測(cè)控技術(shù),2013,32(11):119-123.
[2]彭成,王盼卿.軟件形式化開發(fā)方法的選擇策略研究[J].電子設(shè)計(jì)工程,2014(15):30-32.
[3]劉鳳.基于軟件構(gòu)件技術(shù)的軟件化雷達(dá)[J].現(xiàn)代雷達(dá),2016(5):12-15.
[4]程亦涵,黃志球,闞雙龍.一種結(jié)合AADL和IMC的系統(tǒng)可靠性建模方法 [J].計(jì)算機(jī)工程與科學(xué),2015,37(8):1517-1524.
[5]楊志斌,皮磊,胡凱,等.復(fù)雜嵌入式實(shí)時(shí)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)與分析語言:AADL[J].軟件學(xué)報(bào),2010,21(5):899-915.
[6]李振松,顧斌.AADL在航天器控制系統(tǒng)設(shè)計(jì)中的應(yīng)用研究[J].空間控制技術(shù)與應(yīng)用,2011,37(1):55-58.
[7]陳明鋁,張立臣.AADL對(duì)月球車導(dǎo)航系統(tǒng)的設(shè)計(jì)與建模[J].計(jì)算機(jī)應(yīng)用與軟件,2013(11):235-237.
[8]王小強(qiáng),韓斌.基于GSPN的飛機(jī)測(cè)試性指標(biāo)確定方法研究 [J].計(jì)算機(jī)測(cè)量與控制,2016,24(4):13-15,18.
[9]趙喆,賈玉紅,鄭昕,等.基于GSPN的飛機(jī)前輪轉(zhuǎn)彎系統(tǒng)安全性評(píng)估[J].北京航空航天大學(xué)學(xué)報(bào),2011,37(12):1546-1551.
[10]吳永強(qiáng),潘禎.構(gòu)件技術(shù)的通用自動(dòng)測(cè)試系統(tǒng)軟件設(shè)計(jì)[J].電子設(shè)計(jì)工程,2015,23(23):69-71.
[11]石健,王少萍,王康.基于GSPN的機(jī)載液壓作動(dòng)系統(tǒng)可靠性模型[J].航空學(xué)報(bào),2011,32(5):920-933.
[12]王二威.軟件可靠性模型研究綜述[J].軟件工程,2016(2):1-2.
[13]李展,單士華.基于GSPN的艦載服務(wù)器系統(tǒng)可靠性建模及分析[J].火力與指揮控制,2015,40(5):57-60.
[14]谷春英,姚青山.基于GSPN的計(jì)算機(jī)硬件系統(tǒng)可靠性分析[J].微電子學(xué)與計(jì)算機(jī),2013(6):122-125.
[15]桑亞輝,肖樂.基于GSPN的軟件可靠性建模及分析[J].計(jì)算機(jī)測(cè)量與控制,2013,21(5):1251-1253.
[16]師麗斌,李蜀瑜.基于ARINC 653標(biāo)準(zhǔn)的嵌入式構(gòu)件元模型研究[J].電子設(shè)計(jì)工程,2015(21):91-94.
Reliability test method of airborne component based software system based on GSPN
SUN Ke,QIN Yang-sen
(Chinese Flight Test Establishment,Xi'an 710089,China)
Reliability modeling of airborne component based software system architecture using AADL language,the conversion of AADL reliability model to GSPN reliability calculation model is realized.Model transformation rules mainly include the basic elements of the conversion rules,basic dependent element conversion rule.Based on that,the dependency relation is extended to the semantic connection,the parameter connection and the sub component invocation,at the same time using the graphical method to explain the conversion rules,the reliability model is transformed to the GSPN model,in order to calculate and analyze the reliability of airborne component based software system.
software testing; component based software; reliability; conversion rule; GSPN
TN99
A
1674-6236(2017)17-0016-05
2016-07-10稿件編號(hào):201607080
國防基礎(chǔ)科研項(xiàng)目(A0520132031)
孫 科(1982—),男,山西陽高人,碩士,工程師。研究方向:構(gòu)件化機(jī)載軟件測(cè)試。