首页> 中国专利> TASM2UPPAAL模型转换方法

TASM2UPPAAL模型转换方法

摘要

本发明涉及一种模型转换方法,用于将TASM模型转换为UPPAAL模型,使用KM3描述目标语言UPPAAL的元模型;针对TASM模型的环境变量与抽象机,执行规则语法元素,使用环境变量的转换方法和主抽象机与执行规则的转换方法,将TASM模型转换为UPPAAL模型。

著录项

  • 公开/公告号CN102609260A

    专利类型发明专利

  • 公开/公告日2012-07-25

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201210027759.X

  • 申请日2012-02-08

  • 分类号G06F9/44;

  • 代理机构

  • 代理人

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 06:17:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-11-19

    授权

    授权

  • 2012-09-26

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20120208

    实质审查的生效

  • 2012-07-25

    公开

    公开

说明书

技术领域

本发明涉及一种模型转换方法,尤其涉及将TASM模型转换为 UPPAAL模型的方法。

背景技术

嵌入式实时系统是一种需要在满足实时计算约束条件下实现特定功能 的计算控制系统。其广泛应用于航空电子、航天器、汽车控制等领域,这 些系统具有资源受限、实时响应、容错、专用硬件等特点,对强实时性、 可靠性等性质有较高的要求。由于软硬件规模及复杂度的增大以及计算精 度、实时响应的要求的提高,这类系统变得越来越复杂,学术界和工业界 一直在深入地研究如何在开发时间与成本受限的条件下更好地设计、实现 高质量的复杂嵌入式实时系统并对其功能进行验证。

抽象状态机(Abstract State Machines,ASMs)是由Yuri Gurevich在1980 年代提出的一种用于系统工程形式建模的一种形式化方法。在此方法的基 础上又产生了XASM(eXtensible Abstract State Machine)、AsmL(Abstract  State Machine Language)等语言和工具上的扩展。但是ASMs和这些扩展并 没有提及如何考虑时间和资源等非功能属性。针对这一问题,麻省理工学 院的Martin Ouimet等人于2006提出了时间抽象状态机(Timed Abstract  State Machine,下文简称为TASM)语言。TASM语言是一种用来对于嵌 入式实时系统的行为进行规范化和仿真的建模语言。它是ASMs的一个扩 展。TASM能够支持时间、资源、同步、并发等多种功能及非功能属性进 行描述,具有语义描述简洁、可读性好等特点。

UPPAAL是由瑞典Uppsala大学和丹麦Aazborg大学联合开发的模型 检测工具。它以R.Alur和Dill提出的时间自动机(Timed Automata)作为 形式化理论基础,可以对以时间自动机网络为模型的实时系统进行模拟和 模型检测。

时间自动机在有穷状态机的基础上增加了时钟变量,它采用了连续时 间模型并且所有时钟变量是同步前进的。在UPPAAL中,实时系统被建模 为并发执行的时间自动机网络模型。有界整型变量被引入到时间自动机的 概念中,它们的值可以被读取也可以被修改以及被用于计算。状态在时间 自动机网络中被定义为所有时间自动机所处位置,时钟约束和普通变量的 值的组合。通过自动机位置间的迁移或与其它自动机的同步,模型从当前 状态迁移到新的状态。

由于TASM工具TASM toolset对于逻辑行为、时间行为的验证能力偏 弱,我们选择利用UPPAAL模型检测工具对其功能正确性(有无死锁)、 非功能正确性(时间等约束条件)进行进一步的形式化验证。为此,本发 明研究一种从TASM子集到UPPAAL的模型转换方法实现两种模型的自 动转换。

发明内容

一种模型转换方法,用于将TASM模型转换为UPPAAL模型,其特征在于:

使用KM3描述目标语言UPPAAL的元模型;

针对TASM模型的环境变量与抽象机,执行规则语法元素,使用环境 变量的转换方法和主抽象机与执行规则的转换方法,将TASM模型转 换为UPPAAL模型。

所述UPPAAL的元模型包括:

(1)nta:

UPPAAL模型的根节点,下辖节点包括对UPPAAL模型定义的普通变 量、时钟变量及同步通信信道进行声明的节点declaration,时间自动机模 板集合的节点template,对时间自动机进行声明及实例化的节点system;

(2)declaration:

nta的下辖节点,放置用户定义的变量的声明及初始化定义;

(3)template

nta的下辖节点,定义时间自动机模板,其下辖以下节点:

●name:时间自动机的名字;

●declaration:时间自动机局部变量,时钟的声明;

●Parameters:时间自动机的输入参数,在实例化中使用;

●location:时间自动机中的位置,在位置上设置属性:紧急urgent、 不变量invariant;

●transition:各个位置之间的迁移,包括迁移的起始位置source和 目的位置target,上面设置转换条件guard,对变量的赋值update, 时间自动机之间的同步sync;

●init:定义时间自动机的初始位置location;

(4)system:

nta的下辖节点,对UPPAAL模型的时间自动机模板进行声明及实例 化;

(5)Label:

在时间自动机的元模型定义中,时间自动机位置(location)上的属性 以及状态转换(transition)上的条件(guard)、赋值(assignment)、同步 (synchronization)都在元模型中的label节点中被描述。

其中将TASM的整型、布尔型以及用户自定义类型的数据类型转换为 UPPAAL模型中的有界整型一种数据类型,包含以下规则:

整型变量映射为UPPAAL中的int,布尔类型的变量boolean{False, True}映射到UPPAAL中的类型为int[0,1],即取值范围为0或1的整型变 量拥有n个取值e1到en的用户自定义变量User-defined type{e1,e2,....en} 被映射到UPPAAL中的类型为int[0,n-1],即取值范围为0到n-1的整型变 量,其中e1被映射到0,en被映射到n-1。

其中所述主抽象机(main machine)与执行规则的转换方法包括以下规 则:

主抽象机到UPPAAL时间自动机(automata)的转换:每一个主抽 象机对应UPPAAL中的一个时间自动机,为每一个时间自动机定义 一个中心紧急位置(urgent location)pivot以及时钟变量c;

主抽象机规则的转换方法:在时间自动机上为与其对应抽象机的每 一条规则定义一个中间位置,时间将在中间位置上消耗时间直到进 行状态变迁,每一条规则的执行被映射为UPPAAL时间自动机中的 两个状态变迁,其中,各种类型规则所对应的转换方法为:

1)一般规则到UPPAAL的转换

设一般规则为Ri=<Gi,t,Ei>,其中,Gi为规则Ri的约束条 件(guard),t为Ri的执行时间,被表示为t=[tmin,tmax],tmin ≤tmax,Ei为规则的执行动作,对此规则,定义中间位置Ri, 定义从pivot到Ri的状态变迁,约束条件为Gi,执行动作为 重置时钟,在位置Ri上定义时间不变量c<=tmax,定义从Ri 到pivot的状态变迁,约束条件定义为c>=tmin,执行动作为 Ei;

2)带有同步的一般规则到UPPAAL的转换

设带有同步的一般规则Ri=<Gi,t,Ei>,其中,Gi为规则Ri 的约束条件(guard),t为Ri的执行时间,被表示为 t=[tmin,tmax],tmin≤tmax,Ei为下列语句:Update;Syn;其中 Update为除同步通信以外的动作语句集合;Syn语句为同步通 信语句,发送同步信号为“chan!”,接收同步信号为“chan ?”, 此规则,定义中间位置Ri,定义从pivot到Ri的状态变迁, 约束条件为Gi,执行动作为重置时钟,在位置Ri上定义时间 不变量c<=tmax,定义紧急位置U,定义从Ri到U的状态变 迁,约束条件定义为c>=tmin,执行动作为Update,定义从位 置U到pivot的状态变迁,执行动作为Syn;

3)带有t:=next时间结构和else规则到UPPAAL的转换 设规则Re=<Ge,t,Ee>,其中,Ge为空;t:=next;Ee为规 则Re的执行动作,对此规则,定义中间位置Re,定义从pivot 到Re的状态变迁,设抽象机的其它规则的约束条件G1到Gn, 定义状态变迁的约束条件为!(G1||G2...||Gn),定义从Re到 pivot的状态变迁,约束条件是(G1||G2...||Gn),执行动作为 Ee,定义从Re到pivot状态变迁上的紧急同步信道“cElse?” 以及发送同步信号“cElse !”的时间自动机;

4)带有一般执行时间表示的else规则到UPPAAL的转换 设规则Re=<Ge,t,Ee>,其中,Ge为空;t为Re的执行时 间,被表示为t=[tmin,tmax],tmin≤tmax;Ee为规则Re的执 行动作,对于此规则,定义中间位置Re,定义从pivot到Re 的状态变迁,设抽象机的其它规则的约束条件G1到Gn,定 义状态变迁的约束条件为!(G1||G2...||Gn),执行动作为重置 时钟,在Re上定义时间不变量c<=tmax,定义从Re到pivot 的状态变迁,约束条件是c>=tmin,执行动作为Ee。

5)带有t:=next时间结构的一般规则到UPPAAL的转换 设Ri=<Gi,t,Ei>,其中,Gi为规则Ri的约束条件(guard); t为Ri的执行施行时间被表示为t:=next;Ei为规则Ri的执行 动作,对于此规则,定义中间位置Ri,定义pivot到Ri的状 态变迁,约束条件是Gi,定义从Re到pivot的状态变迁,约 束条件是(G1||G2...||Gn),执行动作为Ee,定义从Re到pivot 状态变迁上的紧急同步信道“urgent?”以及发送同步信号 “urgent !”的时间自动机。

附图说明

图1:模型转换的总体框架

图2:UPPAAL元模型结构图

具体实施方式

下面将结合附图对本发明作进一步的说明:

本发明涉及到一个TASM2UPPAAL模型转换工具,该模型转换工具 对任意TASM模型,都能自动将其转换到相应的UPPAAL模型。该模型 转换工具的源语言TASM是一种广泛应用于软、硬件系统设计的形式化描 述语言,它支持嵌入式实时系统的功能行为、时间属性以及资源消耗的描 述和验证。该模型转换工具的目标模型UPPAAL是由瑞典Uppsala大学和 丹麦Aazborg大学联合开发的模型检测工具。它以R.Alur和Dill提出的时 间自动机(Timed Automata)作为形式化理论基础,可以对以时间自动机 网络为模型的实时系统进行模拟和模型检测。

1)工具总体概述

该模型转换工具,基于ATL模型转换技术,要完成该模型转换工具, 定义源语言TASM与目标UPPAAL的元模型,元模型是以面向对象的思 想描述一种语言的语法结构,从而使模型转换时,能根据其相应的语法元 素,进行相对应的转换。针对模型转换的特点,使用了KM3重新描述了 UPPAAL的元模型(语法结构)。模型转换的总体框架如图1所示。

2)UPPAAL元模型

根据模型转换工具特性,使用KM3对其进行了描述,如图2是 UPPAAL元模型的框架图。

(1)nta

UPPAAL模型的根节点。下辖节点包括对UPPAAL模型定义的普通变 量,时钟变量及同步通信信道进行声明的节点declaration;时间自动机模 板集合的节点template;对时间自动机进行声明及实例化的节点system。

(2)declaration

Nta的下辖节点,放置用户定义的变量的声明及初始化定义。

(3)template

nta的下辖节点,其中定义时间自动机模板,其下辖以下节点

●name:时间自动机的名字。

●declaration:时间自动机局部变量,时钟的声明。

●Parameters:时间自动机的输入参数,在实例化中使用。

●location:时间自动机中的位置,在位置上可以设置属性紧急 urgent,不变量invariant等属性。

●transition:各个位置之间的迁移,包括迁移的起始位置(source) 和目的位置(target)。上面可以设置转换条件(guard),对变量的 赋值(update),时间自动机之间的同步(sync)等。

●init:定义时间自动机的初始位置(location)。

(4)system

nta的下辖节点,是对UPPAAL模型的时间自动机模板进行声明及实 例化。

(5)Label

在时间自动机的元模型定义中,时间自动机位置(location)上的属性 以及状态转换(transition)上的条件(guard)、赋值(assignment)、同步 (synchronization)都在元模型中的label节点中被描述。

3)模型转换方法

研究TASM中各语法元素到UPPAAL的模型转换方法,其中包括,环 境变量的转换方法,主抽象机与执行规则的转换方法。

3.1)环境变量的转换方法:

TASM拥有更丰富的数据类型,包括整型、浮点型、布尔型以及用户自 定义类型等。而UPPAAL模型中只有有界整型一种数据类型。由于浮点型 是无法转换的,所以待转换的TASM模型是不能包含浮点类型变量的定义 的。而布尔型和用户自定义类型的变量则可以被转换为等价的有界整型变 量。映射方式如下表1所示。

表1TASM和UPPAAL数据类型映射关系

整型变量映射为UPPAAL中的int,布尔类型的变量可以映射到 UPPAAL中的类型为int[0,1]即取值范围为0或1的整型变量;拥有n个取 值e1到en的用户自定义变量可以被映射到UPPAAL中的类型为int[0,n-1] 即取值范围为0到n-1的整型变量,e1被映射到0,en被映射到n-1。

3.2)主抽象机与执行规则的转换方法:

一个TASM模型可以包含多个主抽象机(main machine,下文简称抽象 机),这些抽象机在执行时是并发执行的。这与时间自动机网络的执行模 型十分相似。在建立映射规则时,每一个抽象机都对应一个时间自动机。 抽象机的并发执行模型就对应于时间自动机网络的并发执行模型。而 TASM中每一次规则的执行(即一次状态变迁)的效果在其作用于环境之 前是需要消耗时间的,这与时间自动机在状态变迁中不消耗时间的语义是 不同的,而这两种时间表示方法的表达能力是相同的。在建立映射规则时, 我们可以为每一个时间自动机定义一个中心位置pivot以及时钟变量c,中 心位置被定义为紧急位置(urgent location),表示在此位置上不消耗时间; 在时间自动机上为与其对应抽象机的每一条规则定义一个中间位置,时间 将在中间位置上消耗时间直到可以进行状态变迁。每一条规则的执行可以 被映射为UPPAAL时间自动机中的两个状态变迁。

抽象机的每一条规则与时间自动机的映射规则(即一般规则到 UPPAAL的转换)如下表2所示。

设一般规则为Ri=<Gi,t,Ei>,其中,Gi为规则Ri的约束条件(guard), t为Ri的执行时间,被表示为t=[tmin,tmax],tmin≤tmax,Ei为规则的执行 动作,对此规则,定义中间位置Ri,定义从pivot到Ri的状态变迁,约束 条件为Gi,执行动作为重置时钟,在位置Ri上定义时间不变量c<=tmax, 定义从Ri到pivot的状态变迁,约束条件定义为c>=tmin,执行动作为Ei。

表2一般规则到UPPAAL的转换

UPPAAL中的Ri位置为定义的中间位置,当抽象机的规则Ri的约束条 件被满足时,对应时间自动机从pivot变迁到位置Ri,同时时钟被重置, 在位置Ri上,时间向前流动,当时钟值c满足tmin≤c≤tmax即对应于规则 Ri的执行时间时,可以从中间位置Ri回到初始位置pivot表示Ri执行完, 同时Ei被作用于环境。这样,主抽象机的一条规则Ri的执行就被等价映 射到UPPAAL模型中了。

当Ei中包含同步通信时(即带有同步的一般规则到UPPAAL的转换),根 据TASM模型的语义其映射规则如表3所示。

设带有同步的一般规则Ri=<Gi,t,Ei>,其中,Gi为规则Ri的约束条 件(guard),t为Ri的执行时间,被表示为t=[tmin,tmax],tmin≤tmax,Ei 为下列语句:Update;Syn;其中Update为除同步通信以外的动作语句集合; Syn语句为同步通信语句,发送同步信号为“chan!”,接收同步信号为“chan ?”, 此规则,定义中间位置Ri,定义从pivot到Ri的状态变迁,约束条件为 Gi,执行动作为重置时钟,在位置Ri上定义时间不变量c<=tmax,定义紧 急位置U,定义从Ri到U的状态变迁,约束条件定义为c>=tmin,执行动 作为Update,定义从位置U到pivot的状态变迁,执行动作为Syn。

表3带有同步的一般规则到UPPAAL的转换

TASM语义中,当动作执行中含有同步通信语句是,首先执行除同步 通信以外的其他语句,执行完成后,再执行同步通信语句以发送或接收同 步信号。

在TASM中,还有一种特殊的else规则(else rule),else规则没有设 定约束条件,当处于同一抽象机的其他规则的约束条件都不被满足时,将 执行else规则。并且,else规则常常与时间表示方法“t:=next”组合一起使用, 表示的语义为抽象机将一直处于等待状态直到抽象机的任意一条规则的 约束条件被满足。在为“else规则+t:=next”建立到UPPAAL映射时,方法与 一般规则比较相似,都需要建立一个中间位置,通过从pivot位置与此中 间位置之间的状态变迁表示规则的执行。但不同的是,由于不再需要定义 时间约束条件以及中间位置的时间不变量,需要添加一个用于同步的紧急 同步信道(urgent synchronization channel),以保证当其他规则的约束条件 被满足时,能够从中间位置回到pivot位置,为此我们还需要添加一个用 于发送紧急同步信号的时间自动机。

设抽象机m拥有n个一般规则Ri到Rn(Ri=<Gi,t,Ei>),同时拥有else 规则Re,其执行时间表示为“t:=next”。“else规则+t:=next”到UPPAAL的映射 规则(即带有t:=next时间结构和else规则到UPPAAL的转换)如表4所示。

设规则Re=<Ge,t,Ee>,其中,Ge为空;t:=next;Ee为规则Re的执 行动作,对此规则,定义中间位置Re,定义从pivot到Re的状态变迁, 设抽象机的其它规则的约束条件G1到Gn,定义状态变迁的约束条件为! (G1||G2...||Gn),定义从Re到pivot的状态变迁,约束条件是 (G1||G2...||Gn),执行动作为Ee,定义从Re到pivot状态变迁上的紧急同 步信道cElse?以及发送同步信号cElse!的时间自动机。

表4带有t:=next时间结构的而else规则到UPPAAL的转换

当抽象机的其它规则的约束条件G1到Gn都不满足时,时间自动机 从中心位置pivot变迁到位置Re。当处于位置Re时,如果G1到Gn有一 条约束条件被满足,Re规则的动作被执行,并且回到初始位置pivot。由 于时间约束被设定为“t:=next”,为了保证在满足约束条件的情况下,能够从 位置Re回到位置pivot,添加了紧急同步信道cElse以及用于发送同步信 号的辅助时间自动机。

在else规则拥有一般的执行时间表示时,其到UPPAAL的映射规则(带 有一般执行时间表示的else规则到UPPAAL的转换)如表5所示。

设规则Re=<Ge,t,Ee>,其中,Ge为空;t为Re的执行时间,被表 示为t=[tmin,tmax],tmin≤tmax;Ee为规则Re的执行动作,对于此规则, 定义中间位置Re,定义从pivot到Re的状态变迁,设抽象机的其它规则 的约束条件G1到Gn,定义状态变迁的约束条件为!(G1||G2...||Gn),执 行动作为重置时钟,在Re上定义时间不变量c<=tmax,定义从Re到pivot 的状态变迁,约束条件是c>=tmin,执行动作为Ee。

表5带有一般执行时间表示的else规则到UPPAAL的转换

当一般规则的Ri的时间表示为时间结构“t:=next”时,其到UPPAAL的 映射规则(带有t:=next时间结构的一般规则到UPPAAL的转换)如表6所示。

设Ri=<Gi,t,Ei>,其中,Gi为规则Ri的约束条件(guard);t为Ri 的执行施行时间被表示为t:=next;Ei为规则Ri的执行动作,对于此规则, 定义中间位置Ri,定义pivot到Ri的状态变迁,约束条件是Gi,定义从 Re到pivot的状态变迁,约束条件是(G1||G2...||Gn),执行动作为Ee,定 义从Re到pivot状态变迁上的紧急同步信道urgent?以及发送同步信号 urgent!的时间自动机。

表6带有t:=next时间结构的一般规则到UPPAAL的转换

当规则Ri的规则的约束条件Gi被满足时,时间自动机从中心位置 pivot迁移到Ri,由于其执行时间表示为“t:=next”,我们需要在从Ri到中心 位置pivot的迁移上增加紧急同步信道urgentC,同时此迁移的约束条件被 设定为除Ri本身的约束条件以外其它任意一个规则的约束条件被满足。当 约束条件被满足的同时收到同步信号urgentC,发生从Ri到中心位置pivot 的状态迁移,Ei被执行。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号