模型到广义随机Petri网的转换工具.docx
- 文档编号:1986789
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:8
- 大小:89.85KB
模型到广义随机Petri网的转换工具.docx
《模型到广义随机Petri网的转换工具.docx》由会员分享,可在线阅读,更多相关《模型到广义随机Petri网的转换工具.docx(8页珍藏版)》请在冰豆网上搜索。
模型到广义随机Petri网的转换工具
AADL模型到广义随机Petri网的转换工具-电气论文
AADL模型到广义随机Petri网的转换工具
汤玥,苏威,李蜀瑜
(陕西师范大学计算机科学学院,陕西西安710119)
摘要:
为了便于对体系结构设计和分析语言AADL可靠性模型进行可靠性评估,实现AADL模型到广义随机Petri网模型(GSPN)可靠性计算模型的自动转换,依据AADL模型到GSPN模型的转换规则,设计并实现了集成在开源工具OSATE上的模型转换工具。
实验表明:
该文的转换工具可以将AADL可靠性模型自动转换为GSPN模型。
关键词:
体系结构设计和分析语言;可靠性模型;广义随机Petri网;模型转换工具
中图分类号:
TN911-34;TP311文献标识码:
A文章编号:
1004-373X(2015)12-0062-04
收稿日期:
2014-12-15
基金项目:
国家自然科学基金资助项目()
0引言
近年来,嵌入式系统一直在不断的发展,嵌入式系统的结构也变得越来越丰富和复杂,规模日益变大,嵌入式系统的开发周期、非功能性属性(可靠性、可调度性、安全性)及开发成本的要求也是越来越高,之前的那些嵌入式系统开发方法早就已经不能满足现在嵌入式软件开发的需求。
OMG(ObjectManagementGroup,国际对象集团)提出了模型驱动体系架构(ModelDrivenArchitecture,MDA)[1-2]。
MDA整合了OMG在模型存储、模型转换和建模语言等方面的诸多标准。
MDA的引进将嵌入式系统软件开发提升到了模型级。
此后,对新型的嵌入式系统的非功能属性可以从更高的抽象层面上进行分析。
这样不仅能很大程度地缩短系统的开发周期,而且节约开发成本[3]。
基于这个思想,美国自动化工程师协会(SocietyofAutomotiveEngineers,SAE)发布了航空标准AS5506——架构分析与设计语言[4](ArchitectureAnalysisandDe-signLanguage,AADL)。
AADL可以定义和实现支持MDA的工具并且已被标准化。
AADL提供标准化的文本和图形符号来描述软件和硬件系统架构及其功能接口。
AADL将系统的设计、分析、验证和自动代码生成等环节融合在一个框架之中[5]。
在AADL中,系统被模型化成交互应用构件(数据、线程、进程、子程序)的分层集合和一组执行平台的组件(总线、处理器、设备、存储器)[6]。
应用构件被绑定在执行平台,相关信息被分开描述,然后插入到架构模型中。
为了补充支持AADL核心语言对相关可靠性的信息(如故障、故障传播、修改、容错策略)的描述,SAE发布了错误模型附件[7](ErrorModelAnnex,AnnexE)并且将其标准化。
错误附件的使用在原有的模型描述和验证的基础上增加了可靠性分析,进一步完善了AADL语言。
为了支持基于AADL模型的各种分析目前已经实现了一些工具。
调度和内存需求可以通过Cheddar来进行模拟和可行性测试的分析。
开源AADL工具环境(OpenSourceAADLToolEnvironment,OSATE)[8]支持资源分配分析。
目前无法对AADL模型直接进行可靠性验证,本文的转换工具可以将AADL可靠性模型自动转换为广义随机Petri网模型(GeneralStochasticPetriNet,GSPN)[9],在此基础上,可以通过对GSPN模型的验证来进行AADL模型的分析与验证。
1OSATE插件开发流程
开源AADL工具环境是基于Eclipse平台[10]的AADL模型开发工具。
Eclipse平台是一个基于Java的集成开发环境,它可以扩展并且开放源码。
就Eclipse的本身而言,是利用其插件(Plug-in)机制来实现其所有功能的。
在OSATE平台上,可以进行AADL的建模、模型实例化以及语法检查。
因此,本文在OSATE和错误模型附录库插件开发的基础上设计了AADL架构模型和AADL错误模型,直接利用OSATE对AADL架构模型和AADL错误模型进行解析,生成一个实例文件(AAXL文件)。
利用XML解析器SAX对得到的AAXL模型文件进行解析,通过AADL错误模型向GSPN模型转换规则,转换生成一个广义随机Petri网的XML文件。
之后,就可以利用马尔可夫分析法、故障树分析法或者用PIPE2对转换后的GSPN模型进行可靠性的评估可验证。
插件的开发流程如图1所示。
2AADL模型到GSPN模型转换规则
设计实现AADL模型到GSPN模型的转换工具,关键是要确定AADL模型到相应GSPN模型的转换关系。
下面给出AADL错误模型基本元素转换为GSPN的规则。
规则1:
将AADL错误模型中的错误状态转换为GSPN中的库所。
规则2:
将AADL错误模型中的错误事件转换为GSPN中的变迁,满足泊松分布的事件转换为时间变迁,服从固定概率的事件转换为瞬时变迁。
规则3:
将AADL中错误状态之间的变迁转换为变迁到库所的弧和库所到变迁的弧。
规则4:
将初始错误状态转换为包含一个托肯的库所。
规则5:
对于符合泊松分布的错误传出,把状态和错误传出转换库所,增加一个时间变迁,其符合泊松分布,增加错误传出库所和变迁的禁止弧,把相应的弧加上。
规则6:
对于服从固定概率的错误传出,把状态和错误传出转换为库所,增加一个库所表示无错误传出状态。
增加两个变迁,分别表示错误传出和错误未传出。
把相应的弧加上。
规则7:
将状态转换为库所,把错误传入转换为瞬时变迁,且概率为1,增加相应的弧。
规则8:
把在错误传播过滤规则中所定义的每个连接转换为一个瞬时变迁,状态和传播转换为库所,在相应的库所上加上禁止弧。
规则9:
把在guard_out中定义错误传播屏蔽规则转换为库所,一一对应,把每一个规则中每一连接转换为变迁。
可以在这些模型转换规则的基础上,实现从AADL可靠性模型到GSPN计算模型的模型转换的工具,为可靠性评估提供条件。
单独组件的错误模型到GSPN的转换如图2所示。
3转换工具的设计与实现
3.1转换工具的整体架构设计
模型转换工具的架构如图3所示,OSATE和ErrorModelAnnex是基于Eclipse平台开发的。
OSATE为AADL可靠性模型提供了设计环境,ErrorModelAnnex给出了错误模型的定义。
转换工具是基于OSATE和ErrorModelAnnex开发的,实现了AADL可靠性模型到GSPN模型的自动转换。
转换工具的输入文件是的AAXL文件,AAXL文件是XML格式的。
AAXL文件是开源工具OSATE提供的文件接口,而模型转换工具的输出文件是广义随机Petri网模型的XML文件,可以供其他工具分析GSPN模型的基本属性以及可靠性。
3.2转换工具的模块设计与实现
AADL可靠性模型到GSPN可靠性计算模型的转换工具是基于OSATE和ErrorModelAnnex开发的。
该工具包含4个功能模块:
建立AADL可靠性模型模块、AAXL文件提取解析模块、AADL错误模型转换为GSPN模块、GSPN模型输出模块,如图4所示。
(1)建立AADL可靠性模型模块。
AADL错误模型是对构件的各种可靠性信息包括故障行为、故障传播等进行描述。
将AADL错误模型添加到AADL架构模型中,与嵌入式软件中的各种构件相结合,即错误模型与相应的构件绑定,最终形成完整的嵌入式软件可靠性模型。
(2)AAXL文件提取解析模块。
对错误模型进行转换,首先要对错误模型所在的AAXL文件的错误附件进行提取,因为错误模型要XML、文本、图形3种存储方式,而SAX可以很好的处理XML文件,所以本工具采用SAX对错误模型中的状态、事件、错误传出、错误传入等元素进行识别和提取,并将其以对象的形式存储在链表中,待所有元素提取完成后,对其进行转换。
方法Clickleft(IActionAction)通过点击鼠标左键获取文件,方法Judge(Resultpath)判断该文件是否为AAXL文件,若为AAXL文件,SaxRead.readaaxl(Resultpath)对AAXL文件进行解析提取信息。
(3)AADL错误模型到GSPN转换模块。
状态转换为库所,初始状态转换为带有托肯的库所,事件根据其满足泊松分布还是固定概率分别转换为时间变迁或瞬间变迁,错误传出和传入对应的转换为弧。
将转换后的元素以对象的形式存储起来,以待存储为XML文件。
下面给出模型转换的伪代码:
Begin
Do
I(fWrongEleisErrorState)//元素是故障状态
TransformPlace();//转换为GSPN库所
elsei(fWrongEleisErrorEvent)//元素是故障传播
TransformTransition();//转换为GSPN变迁
elsei(fWrongEleisErrorTransition)//元素是状态迁移
TransformArc();//生成库所和变迁之间的连接弧
elsei(fWrongEleisOutProp)//元素是故障传出
RecordSourceID();//记录源组件的标识
RecordSourceEven(t);//记录传出的故障事件
elsei(fWrongEleisInProp)//元素是故障传入
i(fmatched())//查询同标识故障传出事件
RecordTargetID();//记录目标组件的标识
RecordTransition();//记录目标组件的状态迁移
End
(4)GSPN模型输出模块。
最后,从已经记录下来的元素集合中读取元素,调用相应元素的输出方法,建立目标目录和文件,利用Dom工具将输出的信息集中输出到目标文件中。
最后得到的文件可作为pipe2工具验证的输入文件。
4转换工具的应用
本节将对航电系统的飞行规划子系统进行AADL可靠性建模,利用转换工具把飞行规划子系统的错误模型转换到广义随机Petri网。
航电系统的飞行规划子系统有6个进程构成:
传感器处理进程(NavigationPro-cess)、综合导航进程(IntegrateNavigationProcess)、飞行优化进程(FlightPerforProcess)、导航处理进程(Guid-anceProcess)、飞行规划进程(FlightPlaneProcess)、数据显示(DataDisplayProcess)。
其中硬件组件包括:
传感器(Device)、处理器(FMProcessor)、内存(MeM)和总线(Processor_Mem_Bus)。
根据飞行规划子系统的AADL架构模型和每一个组件的动态运行以及它们之间的交互情况,给每一个组件增加相应的错误模型,并且根据它们之间的交互情况,确定它们之间的错误传播。
飞行规划子系统的错误模型,在这里本文使用文本表示,描述了传感器处理进程(NavigationProcess)和综合导航进程(IntegrateNavigationProcess)的错误模型。
综合导航进程(IntegrateNavigationProcess)的错误模型如下:
errormodelNavigation_Process
features
NaP_ErrorFree:
initialerrorstate;
Nap_Faile:
errorstate;
NaP_Failed,NaP_Repair:
errorevent;
NaP_InteP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模型 广义 随机 Petri 转换 工具