一种从tasm时间抽象状态机到扩展nta自动机的转换方法
【技术领域】
[0001] 本发明涉及应用领域中间模型进行转换的方法,特别涉及一种从TASM(Timed AbstactStateMachine,时间抽象状态机)时间抽象状态机到扩展NTA(NetworkofTimed Automata,时间自动机网络)自动机的转换方法。
【背景技术】
[0002] 基于模型驱动开发的理论意义是:第一,模型有利于早期设计方案的验证与测试。 如可基于敏捷开发的方法,快速构造不同的设计方案,对于那些正在迭代中的方案,利用基 于模型的代码生成技术,迅速产生代码框架,并可进行实质的验证或测试,以分析设计方案 的质量。
[0003] 第二,利用模型可以生成程序的框架,减轻设计者的设计负担和程序员的编码压 力,有利于自动化软件生成。
[0004] 当前,能够满足上述要求的中间模型有很多,如Petri网(一种对离散并行系统的 数学表示方法)和TASM等。其中,设计者选择TASM作为中间模型的理由是:第一,TASM是 抽象状态机(AbstractStateMachine,ASM)的一种扩展,既支持时序和资源消耗,同时也 支持行为和通信的规约;第二,TASM支持层次组合、并发和通信等概念;第三,TASM采用并 行执行的主机(mainmachine)集合来支持并行行为的规约,并提供子机(sub-machine)和 功能机(function-machine)调用以支持层次行为的规约;第四,通信仅发生在主机之间并 可以使用通道同步和共享变量;第五,TASM语言具有形式化语义,这一语义能够成为一种 可执行的规范。
[0005] 同时,TASM可作为某种(如AADL,ArchitectureAnalysisandDesignLanguage, 体系结构分析与设计语言)嵌入式实时系统的高层设计的中间模型(即TASM时间抽象状态 机),该中间模型表示的设计结论与实际的业务处理平台无关。因此,当需要对采用AADL语 言描述的嵌入式实时系统的高层设计实施具体的验证活动时,需要将该TASM时间抽象状 态机模型与具体的验证平台进行绑定,即需要将该TASM时间抽象状态机模型转换成某种 具体验证平台的输入文件。
[0006] UPPAAL(-个使用扩展NTA自动机作为输入模型的仿真验证平台)就是这样一种 针对嵌入式实时系统提供形式化验证的平台,其输入形式采用了扩展NTA自动机,输出为 验证的结论。然而现有技术中没有将TASM模型直接转换为扩展NTA自动机模型的方法,因 此无法实现设计结论的验证。
【发明内容】
[0007] 本发明的目的在于针对上述问题与不足,提供一种能够直接将TASM时间抽象状 态机模型转换为扩展NTA自动机的方法,以进一步帮助用户实现设计结论的验证。
[0008] 为达到上述目的,本发明采用如下的技术方案。
[0009] 本发明提供一种从TASM时间抽象状态机到扩展NTA自动机的转换方法,本方法 步骤执行的前提是,已知一个TASM时间抽象状态机模型的源文件,该文件的格式为ΧΜΙ(XML-basedMetadataInterchange,使用标准通用标记语言的子集可扩展标记语言)格式。 本发明方法步骤完成转换后所得到的是NTA自动机模型,该文件为XMI格式。
[0010] 本发明方法的主要步骤如下: (1)建立基于TASM时间抽象状态机源模型结构和扩展NTA自动机目标模型结构的元模 型。
[0011]采用以Ecore(EMF所提供的一种元模型结构)模型为父类的元模型来描述待转换 的TASM时间抽象状态机源模型结构和转换后的扩展NTA自动机目标模型结构。具体选择 Eclipse提供的EMF(EclipseModelingFramework,Eclipse所提供的模型开发框架)包 来支持对Ecore元模型进行建模,具体对Ecore元模型进行建模的工具为EMF提供的Ecore 建模器。将Ecore建模器所分别建立的TASM时间抽象状态机模型的元模型与扩展NTA自 动机目标模型的元模型,使用持久化技术存入数据库中。
[0012] (2)创建TASM时间抽象状态机源模型到扩展NTA自动机目标模型的转换规则。
[0013] 依据得到的TASM时间抽象状态机模型的元模型与扩展NTA自动机模型的元模型, 按照TASM时间抽象状态机模型的元模型与扩展的NTA自动机模型的元模型之间的结构与 语义关系,使用ATL转换规则编辑器建立这两种元模型之间的ATL(AtlasTransformation Language,Atlas转换语言)转换规则集。
[0014] 具体创建转换规则时,即对TASM时间抽象状态机模型中的构件转换时,考虑三种 情况。
[0015] 第一种,变量:将TASM时间抽象状态机模型中的变量转换为扩展NTA自动机中 的变量,由于TASM时间抽象状态机模型中变量的类型多于扩展NTA自动机所支持的变量 类型,故需要对这些扩展NTA自动机不能直接支持的变量类型进行语义转换,即对TASM时 间抽象状态机模型中的变量中那些无法直接用扩展NTA自动机变量表示的变量,使用扩展 NTA自动机变量集进行表示。
[0016] 第二种,规则:TASM时间抽象状态机模型中的规则表示了变量之间的关系。由于 扩展NTA自动机并不存在这样的规则,而是对于这种规则采用了状态迀移的这种表示,因 此需要建立一种将TASM时间抽象状态机模型中的规则转换为扩展NTA自动机中相应状态 迀移的映射方法。具体做法是,将TASM规则中的条件部分,转换为扩展NTA自动机中的卫 士条件;将TASM规则中的条件满足后的执行部分,转换为扩展NTA自动机中的分派任务。
[0017] 第三种,作用域:TASM时间抽象状态机模型是自动机的集合,在转换为NTA自动机 时,将TASM时间抽象状态机集合按照元素的划分来划分转换后的扩展NTA自动机的作用 域。
[0018] 将以上三种情况编辑成的ATL转换规则,使用持久化技术存入数据库中。
[0019] (3)利用转换规则,实施TASM时间抽象状态机源模型到扩展NTA自动机目标模型 的转换。
[0020] 首先,输入TASM时间抽象状态机元模型所对应的源文件、TASM时间抽象状态机元 模型、建立的从TASM时间抽象状态机模型源文件转换成扩展NTA自动机目标文件的ATL转 换规则、扩展NTA自动机元模型;其次,使用ATL开发包中的ATL转换虚拟机实现扩展NTA 自动机目标文件的生成;最后,将待转换的TASM时间抽象状态机元模型源文件与转换完成 的扩展NTA自动机目标文件,使用持久化技术存入数据库中。
[0021] 在上述技术方案中,步骤(2)中所述的创建TASM时间抽象状态机源模型到扩展 ΝΤΑ自动机目标模型的转换规则,具体步骤为: 步骤1,使用ATL集成开发环境提供的ATL规则编辑器,创建ATL模型转换中的TASM时 间抽象状态机源模型的元模型与扩展ΝΤΑ自动机目标模型的元模型之间的转换规则集,具 体做法是,在Eclipse中建立ATL模型转换工程,并新建模型ATL转换规则文件,填写源模 型与目标模型的信息,包括元模型名称与对应的元模型文件,ATL集成开发环境将自动生成 ATL模型转换中所用到的配置文件; 步骤2,针对TASM时间抽象状态机构件中的变量创建转换规则,对于扩展NTA自动机 中直接支持的那些变量类型,直接通过0CL语言创建对应的扩展NTA自动机变量,并将TASM 时间抽象状态机构件中的变量值复制到转换后的扩展NTA自动机变量中,对于无法用单一 变量表达的TASM时间抽象状态机中所定义的变量类型,使用扩展的NTA自动机中所提供 的标准变量类型解释为变量集,并用0CL语言在扩展的NTA自动机文件中创建这样的变量 集; 变量集生成的具体做法是: 步骤2. 1,将TASM时间抽象状态机中的离散变量,映射到扩展NTA自动机的整形变量 中; 步骤2. 2,将TASM时间抽象状态机中的枚举型变量,映射到扩展NTA自动机的整数常数 上; 步骤2. 3,将TASM中的连续变量类型,根据用户可接受的误差范围(位数),通过采样的 方式,将连续变量映射到一个整数集上,这个整数集上的最小值设为转换后的扩展NTA自 动机的下边界,这个整数集的最大值则设为转换后的扩展NTA自动机的上边界; 步骤3,针对TASM时间抽象状态机构件中的作用域创建转换规则,将TASM时间抽象状 态机中的一个自动机单元,使用0CL语法填充在扩展NTA自动机中的一个"〈template〉"标 签中,并将该标签的属性"name"设置为唯一标识字段,当扩展NTA自动机的模板A中的状 态迀移将要访问模板B中的变量时,对模板A中状态迀移语句中所有属于模板B中的变量 标识符的最左边,加上模板B的标识符和下划线",以避免标识符冲突造成的二义性或不 一致性; 步骤4,针对TASM时间抽象状态机构件中的规则创建转换规则,将TASM时间抽象状态 机中所定义的规则集中以条件语句出现的形式,解释为〈卫士条件,分派任务〉二元组; 步骤4. 1,将原条件语句中的条件部分,使用扩展NTA自动机的语法转换为卫士条件, 具体做法是: (4. 1. 1)将TA