• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      湯玥等

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

      關(guān)鍵詞: 體系結(jié)構(gòu)設(shè)計和分析語言; 可靠性模型; 廣義隨機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,國際對象集團)提出了模型驅(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è)計語言[4](Architecture Analysis and Design Language,AADL)。AADL可以定義和實現(xiàn)支持MDA的工具并且已被標(biāo)準(zhǔn)化。

      AADL提供標(biāo)準(zhǔn)化的文本和圖形符號來描述軟件和硬件系統(tǒng)架構(gòu)及其功能接口。AADL將系統(tǒng)的設(shè)計、分析、驗證和自動代碼生成等環(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)模型中。為了補充支持AADL核心語言對相關(guān)可靠性的信息(如故障、故障傳播、修改、容錯策略)的描述, SAE 發(fā)布了錯誤模型附件[7](Error Model Annex,Annex E)并且將其標(biāo)準(zhǔn)化。錯誤附件的使用在原有的模型描述和驗證的基礎(chǔ)上增加了可靠性分析,進(jìn)一步完善了AADL語言。

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

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

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

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

      設(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ǔ)上,實現(xiàn)從AADL 可靠性模型到GSPN 計算模型的模型轉(zhuǎn)換的工具,為可靠性評估提供條件。單獨組件的錯誤模型到GSPN的轉(zhuǎn)換如圖2所示。

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

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

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

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

      AADL可靠性模型到GSPN可靠性計算模型的轉(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)行提取,因為錯誤模型要XML、文本、圖形3種存儲方式,而SAX可以很好的處理XML文件,所以本工具采用SAX對錯誤模型中的狀態(tài)、事件、錯誤傳出、錯誤傳入等元素進(jìn)行識別和提取,并將其以對象的形式存儲在鏈表中,待所有元素提取完成后,對其進(jìn)行轉(zhuǎn)換。方法Clickleft(IAction Action)通過點擊鼠標(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工具驗證的輸入文件。

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

      本節(jié)將對航電系統(tǒng)的飛行規(guī)劃子系統(tǒng)進(jìn)行AADL可靠性建模,利用轉(zhuǎn)換工具把飛行規(guī)劃子系統(tǒng)的錯誤模型轉(zhuǎn)換到廣義隨機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ī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可靠性模型到廣義隨機Petri網(wǎng)的轉(zhuǎn)換規(guī)則,設(shè)計并實現(xiàn)了AADL可靠性模型到廣義隨機Petri網(wǎng)的轉(zhuǎn)換工具,為AADL模型可靠性評估提供了條件。本文還給出了運用轉(zhuǎn)換工具將航電系統(tǒng)的飛行規(guī)劃子系統(tǒng)的錯誤模型轉(zhuǎn)換到GSPN的實例。后期將進(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)換方法的研究與實現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2012.

      [3] 劉曉娟,溫冠華,李建軍,等.軟件可靠性度量方法[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的軟件可靠性驗證[J].計算機應(yīng)用,2013,32(2):92?95.

      [6] 楊志斌,皮磊,胡凱,等.復(fù)雜嵌入式實時系統(tǒng)體系結(jié)構(gòu)設(shè)計與分析語言: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] 林闖.隨機Petri網(wǎng)和系統(tǒng)性能評價[M].北京:清華大學(xué)出版社,2005.

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

      新河县| 平罗县| 呼图壁县| 普宁市| 永川市| 调兵山市| 子洲县| 夹江县| 台北县| 缙云县| 金寨县| 建阳市| 中牟县| 富锦市| 菏泽市| 西青区| 河曲县| 宜宾市| 滦平县| 类乌齐县| 定州市| 准格尔旗| 和顺县| 兴义市| 娄底市| 沁水县| 通江县| 清河县| 蓬安县| 保康县| 大同市| 汤阴县| 斗六市| 望都县| 长沙市| 武义县| 谷城县| 西宁市| 大埔县| 遵化市| 黑水县|