国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

AADL模型到廣義隨機(jī)Petri網(wǎng)的轉(zhuǎn)換工具

2015-06-15 22:42湯玥等
現(xiàn)代電子技術(shù) 2015年12期

湯玥等

摘 要: 為了便于對體系結(jié)構(gòu)設(shè)計(jì)和分析語言AADL可靠性模型進(jìn)行可靠性評估, 實(shí)現(xiàn)AADL模型到廣義隨機(jī)Petri網(wǎng)模型(GSPN)可靠性計(jì)算模型的自動轉(zhuǎn)換,依據(jù)AADL模型到GSPN模型的轉(zhuǎn)換規(guī)則,設(shè)計(jì)并實(shí)現(xiàn)了集成在開源工具OSATE上的模型轉(zhuǎn)換工具。實(shí)驗(yàn)表明:該文的轉(zhuǎn)換工具可以將AADL可靠性模型自動轉(zhuǎn)換為GSPN模型。

關(guān)鍵詞: 體系結(jié)構(gòu)設(shè)計(jì)和分析語言; 可靠性模型; 廣義隨機(jī)Petri網(wǎng); 模型轉(zhuǎn)換工具

中圖分類號: TN911?34; TP311 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)12?0062?04

0 引 言

近年來,嵌入式系統(tǒng)一直在不斷的發(fā)展,嵌入式系統(tǒng)的結(jié)構(gòu)也變得越來越豐富和復(fù)雜,規(guī)模日益變大,嵌入式系統(tǒng)的開發(fā)周期、非功能性屬性(可靠性、可調(diào)度性、安全性)及開發(fā)成本的要求也是越來越高,之前的那些嵌入式系統(tǒng)開發(fā)方法早就已經(jīng)不能滿足現(xiàn)在嵌入式軟件開發(fā)的需求。OMG(Object Management Group,國際對象集團(tuán))提出了模型驅(qū)動體系架構(gòu)(Model Driven Architecture,MDA)[1?2]。MDA整合了OMG在模型存儲、模型轉(zhuǎn)換和建模語言等方面的諸多標(biāo)準(zhǔn)。MDA的引進(jìn)將嵌入式系統(tǒng)軟件開發(fā)提升到了模型級。此后,對新型的嵌入式系統(tǒng)的非功能屬性可以從更高的抽象層面上進(jìn)行分析。這樣不僅能很大程度地縮短系統(tǒng)的開發(fā)周期,而且節(jié)約開發(fā)成本[3]。

基于這個思想,美國自動化工程師協(xié)會(Society of Automotive Engineers,SAE)發(fā)布了航空標(biāo)準(zhǔn)AS5506——架構(gòu)分析與設(shè)計(jì)語言[4](Architecture Analysis and Design Language,AADL)。AADL可以定義和實(shí)現(xiàn)支持MDA的工具并且已被標(biāo)準(zhǔn)化。

AADL提供標(biāo)準(zhǔn)化的文本和圖形符號來描述軟件和硬件系統(tǒng)架構(gòu)及其功能接口。AADL將系統(tǒng)的設(shè)計(jì)、分析、驗(yàn)證和自動代碼生成等環(huán)節(jié)融合在一個框架之中[5]。在AADL中,系統(tǒng)被模型化成交互應(yīng)用構(gòu)件(數(shù)據(jù)、線程、進(jìn)程、子程序)的分層集合和一組執(zhí)行平臺的組件(總線、處理器、設(shè)備、存儲器)[6]。應(yīng)用構(gòu)件被綁定在執(zhí)行平臺,相關(guān)信息被分開描述,然后插入到架構(gòu)模型中。為了補(bǔ)充支持AADL核心語言對相關(guān)可靠性的信息(如故障、故障傳播、修改、容錯策略)的描述, SAE 發(fā)布了錯誤模型附件[7](Error Model Annex,Annex E)并且將其標(biāo)準(zhǔn)化。錯誤附件的使用在原有的模型描述和驗(yàn)證的基礎(chǔ)上增加了可靠性分析,進(jìn)一步完善了AADL語言。

為了支持基于AADL模型的各種分析目前已經(jīng)實(shí)現(xiàn)了一些工具。調(diào)度和內(nèi)存需求可以通過Cheddar來進(jìn)行模擬和可行性測試的分析。開源AADL工具環(huán)境(Open Source AADL Tool Environment,OSATE)[8]支持資源分配分析。目前無法對AADL模型直接進(jìn)行可靠性驗(yàn)證,本文的轉(zhuǎn)換工具可以將AADL可靠性模型自動轉(zhuǎn)換為廣義隨機(jī)Petri網(wǎng)模型(General Stochastic Petri Net,GSPN)[9],在此基礎(chǔ)上,可以通過對GSPN模型的驗(yàn)證來進(jìn)行AADL模型的分析與驗(yàn)證。

1 OSATE插件開發(fā)流程

開源AADL工具環(huán)境是基于Eclipse平臺[10]的AADL模型開發(fā)工具。Eclipse平臺是一個基于Java的集成開發(fā)環(huán)境,它可以擴(kuò)展并且開放源碼。就Eclipse的本身而言,是利用其插件(Plug?in)機(jī)制來實(shí)現(xiàn)其所有功能的。在OSATE平臺上,可以進(jìn)行AADL的建模、模型實(shí)例化以及語法檢查。因此,本文在OSATE和錯誤模型附錄庫插件開發(fā)的基礎(chǔ)上設(shè)計(jì)了AADL架構(gòu)模型和AADL錯誤模型,直接利用OSATE對AADL架構(gòu)模型和AADL錯誤模型進(jìn)行解析,生成一個實(shí)例文件(AAXL文件)。利用XML解析器SAX對得到的AAXL模型文件進(jìn)行解析,通過AADL錯誤模型向GSPN模型轉(zhuǎn)換規(guī)則,轉(zhuǎn)換生成一個廣義隨機(jī)Petri網(wǎng)的XML文件。之后,就可以利用馬爾可夫分析法、故障樹分析法或者用PIPE2對轉(zhuǎn)換后的GSPN模型進(jìn)行可靠性的評估可驗(yàn)證。插件的開發(fā)流程如圖1所示。

2 AADL模型到GSPN模型轉(zhuǎn)換規(guī)則

設(shè)計(jì)實(shí)現(xiàn)AADL模型到GSPN模型的轉(zhuǎn)換工具,關(guān)鍵是要確定AADL模型到相應(yīng)GSPN模型的轉(zhuǎn)換關(guān)系。下面給出AADL錯誤模型基本元素轉(zhuǎn)換為GSPN的規(guī)則。

規(guī)則1:將AADL錯誤模型中的錯誤狀態(tài)轉(zhuǎn)換為GSPN中的庫所。

規(guī)則2:將AADL錯誤模型中的錯誤事件轉(zhuǎn)換為GSPN中的變遷,滿足泊松分布的事件轉(zhuǎn)換為時間變遷,服從固定概率的事件轉(zhuǎn)換為瞬時變遷。

規(guī)則3:將AADL中錯誤狀態(tài)之間的變遷轉(zhuǎn)換為變遷到庫所的弧和庫所到變遷的弧。

規(guī)則4:將初始錯誤狀態(tài)轉(zhuǎn)換為包含一個托肯的庫所。

規(guī)則5:對于符合泊松分布的錯誤傳出,把狀態(tài)和錯誤傳出轉(zhuǎn)換庫所,增加一個時間變遷,其符合泊松分布,增加錯誤傳出庫所和變遷的禁止弧,把相應(yīng)的弧加上。

規(guī)則6:對于服從固定概率的錯誤傳出,把狀態(tài)和錯誤傳出轉(zhuǎn)換為庫所,增加一個庫所表示無錯誤傳出狀態(tài)。增加兩個變遷,分別表示錯誤傳出和錯誤未傳出。把相應(yīng)的弧加上。

規(guī)則7:將狀態(tài)轉(zhuǎn)換為庫所,把錯誤傳入轉(zhuǎn)換為瞬時變遷,且概率為1,增加相應(yīng)的弧。

規(guī)則8:把在錯誤傳播過濾規(guī)則中所定義的每個連接轉(zhuǎn)換為一個瞬時變遷,狀態(tài)和傳播轉(zhuǎn)換為庫所,在相應(yīng)的庫所上加上禁止弧。

規(guī)則9:把在guard_out中定義錯誤傳播屏蔽規(guī)則轉(zhuǎn)換為庫所,一一對應(yīng),把每一個規(guī)則中每一連接轉(zhuǎn)換為變遷。

可以在這些模型轉(zhuǎn)換規(guī)則的基礎(chǔ)上,實(shí)現(xiàn)從AADL 可靠性模型到GSPN 計(jì)算模型的模型轉(zhuǎn)換的工具,為可靠性評估提供條件。單獨(dú)組件的錯誤模型到GSPN的轉(zhuǎn)換如圖2所示。

3 轉(zhuǎn)換工具的設(shè)計(jì)與實(shí)現(xiàn)

3.1 轉(zhuǎn)換工具的整體架構(gòu)設(shè)計(jì)

模型轉(zhuǎn)換工具的架構(gòu)如圖3所示,OSATE和Error Model Annex是基于Eclipse平臺開發(fā)的。OSATE為AADL可靠性模型提供了設(shè)計(jì)環(huán)境,Error Model Annex給出了錯誤模型的定義。轉(zhuǎn)換工具是基于OSATE和Error Model Annex開發(fā)的,實(shí)現(xiàn)了AADL可靠性模型到GSPN模型的自動轉(zhuǎn)換。轉(zhuǎn)換工具的輸入文件是的AAXL文件,AAXL文件是XML格式的。AAXL文件是開源工具OSATE提供的文件接口,而模型轉(zhuǎn)換工具的輸出文件是廣義隨機(jī)Petri網(wǎng)模型的XML文件,可以供其他工具分析GSPN模型的基本屬性以及可靠性。

3.2 轉(zhuǎn)換工具的模塊設(shè)計(jì)與實(shí)現(xiàn)

AADL可靠性模型到GSPN可靠性計(jì)算模型的轉(zhuǎn)換工具是基于OSATE和Error Model Annex開發(fā)的。該工具包含4個功能模塊:建立AADL可靠性模型模塊、AAXL文件提取解析模塊、AADL錯誤模型轉(zhuǎn)換為GSPN模塊、GSPN模型輸出模塊,如圖4所示。

(1) 建立AADL可靠性模型模塊。AADL錯誤模型是對構(gòu)件的各種可靠性信息包括故障行為、故障傳播等進(jìn)行描述。將AADL錯誤模型添加到AADL架構(gòu)模型中,與嵌入式軟件中的各種構(gòu)件相結(jié)合,即錯誤模型與相應(yīng)的構(gòu)件綁定,最終形成完整的嵌入式軟件可靠性模型。

(2) AAXL文件提取解析模塊。對錯誤模型進(jìn)行轉(zhuǎn)換,首先要對錯誤模型所在的AAXL文件的錯誤附件進(jìn)行提取,因?yàn)殄e誤模型要XML、文本、圖形3種存儲方式,而SAX可以很好的處理XML文件,所以本工具采用SAX對錯誤模型中的狀態(tài)、事件、錯誤傳出、錯誤傳入等元素進(jìn)行識別和提取,并將其以對象的形式存儲在鏈表中,待所有元素提取完成后,對其進(jìn)行轉(zhuǎn)換。方法Clickleft(IAction Action)通過點(diǎn)擊鼠標(biāo)左鍵獲取文件,方法Judge(Resultpath)判斷該文件是否為AAXL文件,若為AAXL文件,SaxRead.readaaxl(Resultpath)對AAXL文件進(jìn)行解析提取信息。

(3) AADL錯誤模型到GSPN轉(zhuǎn)換模塊。狀態(tài)轉(zhuǎn)換為庫所,初始狀態(tài)轉(zhuǎn)換為帶有托肯的庫所,事件根據(jù)其滿足泊松分布還是固定概率分別轉(zhuǎn)換為時間變遷或瞬間變遷,錯誤傳出和傳入對應(yīng)的轉(zhuǎn)換為弧。將轉(zhuǎn)換后的元素以對象的形式存儲起來,以待存儲為XML文件。下面給出模型轉(zhuǎn)換的偽代碼:

Begin

Do

If(WrongEle is ErrorState) //元素是故障狀態(tài)

TransformPlace(); //轉(zhuǎn)換為GSPN庫所

else if(WrongEle is ErrorEvent) //元素是故障傳播

TransformTransition(); //轉(zhuǎn)換為GSPN變遷

else if(WrongEle is ErrorTransition) //元素是狀態(tài)遷移

TransformArc(); //生成庫所和變遷之間的連接弧

else if(WrongEle is OutProp) //元素是故障傳出

RecordSourceID(); //記錄源組件的標(biāo)識

RecordSourceEvent(); //記錄傳出的故障事件

else if(WrongEle is InProp) //元素是故障傳入

if(matched()) //查詢同標(biāo)識故障傳出事件

RecordTargetID(); //記錄目標(biāo)組件的標(biāo)識

RecordTransition(); //記錄目標(biāo)組件的狀態(tài)遷移

End

(4) GSPN模型輸出模塊。最后,從已經(jīng)記錄下來的元素集合中讀取元素,調(diào)用相應(yīng)元素的輸出方法,建立目標(biāo)目錄和文件,利用Dom工具將輸出的信息集中輸出到目標(biāo)文件中。最后得到的文件可作為pipe2工具驗(yàn)證的輸入文件。

4 轉(zhuǎn)換工具的應(yīng)用

本節(jié)將對航電系統(tǒng)的飛行規(guī)劃子系統(tǒng)進(jìn)行AADL可靠性建模,利用轉(zhuǎn)換工具把飛行規(guī)劃子系統(tǒng)的錯誤模型轉(zhuǎn)換到廣義隨機(jī)Petri網(wǎng)。航電系統(tǒng)的飛行規(guī)劃子系統(tǒng)有6個進(jìn)程構(gòu)成:傳感器處理進(jìn)程(Navigation Process)、綜合導(dǎo)航進(jìn)程(IntegrateNavigation Process)、飛行優(yōu)化進(jìn)程(FlightPerfor Process)、導(dǎo)航處理進(jìn)程(Guidance Process)、飛行規(guī)劃進(jìn)程(FlightPlane Process)、數(shù)據(jù)顯示(DataDisplay Process)。其中硬件組件包括:傳感器(Device)、處理器(FMProcessor)、內(nèi)存(MeM)和總線(Processor_Mem_Bus)。根據(jù)飛行規(guī)劃子系統(tǒng)的AADL架構(gòu)模型和每一個組件的動態(tài)運(yùn)行以及它們之間的交互情況,給每一個組件增加相應(yīng)的錯誤模型,并且根據(jù)它們之間的交互情況,確定它們之間的錯誤傳播。飛行規(guī)劃子系統(tǒng)的錯誤模型,在這里本文使用文本表示,描述了傳感器處理進(jìn)程(Navigation Process)和綜合導(dǎo)航進(jìn)程(Integrate Navigation Process)的錯誤模型。

綜合導(dǎo)航進(jìn)程(Integrate Navigation Process)的錯誤模型如下:

error model Navigation_Process

features

NaP_ErrorFree:initial error state;

Nap_Faile:error state;

NaP_Failed,NaP_Repair:error event;

NaP_InteP_Faile:out error propagation;

end Navigation_Process;

error model implementation Navigation_Process.Impl

transitions

NaP_ErrorFree?[NaP_Faile]?>NaP_Failed;

NaP_Failed?[out NaP_InteP_Faile]?>NaP_Failed;

NaP_Failed?[NaP_Repair]?>NaP_ErrorFree;

properties

Occurrece=>possion 5.0e?4 applies to NaP_Faile;

Occurrece=>possion 1.0e?1 applies to NaP_Repair;

Occurrece=>fix 0.8 applies to NaP_InteP_Faile;

end Navigation_Process.Impl

error mode2 IntegrateNavigation_Process

features

InteP_ErrorFree:initial error state;

InteP_Failed:error state;

InteP_Faile,InteP_Pepair:error event;

NaP_InteP_Out_Faile:out error propagation;

Intep_Out_Faile:out error propagation;

end IntegrateNavigation_Process;

error mode2 implementation IntegrateNavigation_Process.Impl

transitions

InteP_ErrorFree?[InteP_Faile]?>InteP_Failed;

InteP_ErrorFree?[in NaP_InteP_Faile]?>InteP_Failed;

InteP_Failed?[InteP_Repair]?>InteP_ErrorFree;

InteP_Failed?[Intep_out_Faile]?>InteP_Failed;

properties

Occurrece=>possion 1.0e?3 applies to InteP_Failed;

Occurrece=>possion 1.0e?1 applies to InteP_Repair;

Occurrece=>fix 0.75 applies to InteP_Out_Failed;

end IntegrateNavigation_Process.Impl

利用AADL模型到GSPN的轉(zhuǎn)換工具將上述錯誤模型轉(zhuǎn)換并生成了一個XML文件。飛行規(guī)劃子系統(tǒng)的傳感器處理進(jìn)程(Navigation Process)和綜合導(dǎo)航進(jìn)程(Integrate Navigation Process)的GSPN模型如圖5所示。

5 結(jié) 語

本文介紹了OSATE插件開發(fā)流程和AADL可靠性模型到廣義隨機(jī)Petri網(wǎng)的轉(zhuǎn)換規(guī)則,設(shè)計(jì)并實(shí)現(xiàn)了AADL可靠性模型到廣義隨機(jī)Petri網(wǎng)的轉(zhuǎn)換工具,為AADL模型可靠性評估提供了條件。本文還給出了運(yùn)用轉(zhuǎn)換工具將航電系統(tǒng)的飛行規(guī)劃子系統(tǒng)的錯誤模型轉(zhuǎn)換到GSPN的實(shí)例。后期將進(jìn)一步完善AADL可靠性模型到GSPN的轉(zhuǎn)換工具,并研究評估AADL模型可靠性的方法。

圖5 傳感器處理進(jìn)程和綜合導(dǎo)航進(jìn)程的GSPN模型

參考文獻(xiàn)

[1] OMG. Model driven architecture (MDA) [EB/OL]. [2009?01?03]. http://www.omg.org/mda.

[2] 孫宏旭.MDA模型轉(zhuǎn)換方法的研究與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2012.

[3] 劉曉娟,溫冠華,李建軍,等.軟件可靠性度量方法[J].計(jì)算機(jī)工程,2009,35(3):57?59.

[4] YANG Z B, PI L, HU K, et al. AADL: An architecture design and analysis language for complex embedded real?time system [J]. Journal of Software, 2010, 21(5): 899?915.

[5] 譙婷婷,王樂,耶國棟.基于AADL的軟件可靠性驗(yàn)證[J].計(jì)算機(jī)應(yīng)用,2013,32(2):92?95.

[6] 楊志斌,皮磊,胡凱,等.復(fù)雜嵌入式實(shí)時系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)與分析語言:AADL[J].軟件學(xué)報,2010,21(5):899?915.

[7] International Society of Automotive Engineers. SAEAS5506/1?2006 SAE architecture analysis and design language (AADL) annex volume 1, annex e: error model annex [S]. [S.l.]: International Society of Automotive Engineers, 2006.

[8] FEILER Peter. Open source AADL tool environment [R]. [S.l.]: Software Engineering Institute, 2005.

[9] 林闖.隨機(jī)Petri網(wǎng)和系統(tǒng)性能評價[M].北京:清華大學(xué)出版社,2005.

[10] 張昊,麥先根,賈璐.Eclipse插件開發(fā)技術(shù)淺探[J].航空計(jì)算技術(shù),2006(6):108?112.

阿拉善盟| 沭阳县| 海淀区| 迭部县| 忻城县| 高碑店市| 邛崃市| 新疆| 嘉鱼县| 门源| 伊春市| 信宜市| 博客| 安泽县| 昌图县| 峨山| 江西省| 绍兴市| 伊通| 长武县| 马关县| 登封市| 时尚| 枣阳市| 景东| 高淳县| 英吉沙县| 黔江区| 江源县| 嘉祥县| 乌鲁木齐市| 屯昌县| 新绛县| 郓城县| 金阳县| 竹北市| 隆化县| 浮山县| 阿图什市| 昭通市| 连平县|