首页 / TASM2UPPAAL模型转换方法

TASM2UPPAAL模型转换方法有效专利 发明

技术领域

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

相关背景技术

[0002] 嵌入式实时系统是一种需要在满足实时计算约束条件下实现特定功能的计算控制系统。其广泛应用于航空电子、航天器、汽车控制等领域,这些系统具有资源受限、实时响应、容错、专用硬件等特点,对强实时性、可靠性等性质有较高的要求。由于软硬件规模及复杂度的增大以及计算精度、实时响应的要求的提高,这类系统变得越来越复杂,学术界和工业界一直在深入地研究如何在开发时间与成本受限的条件下更好地设计、实现高质量的复杂嵌入式实时系统并对其功能进行验证。
[0003] 抽象状态机(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能够支持时间、资源、同步、并发等多种功能及非功能属性进行描述,具有语义描述简洁、可读性好等特点。
[0004] UPPAAL是由瑞典Uppsala大学和丹麦Aazborg大学联合开发的模型检测工具。它以R.Alur和Dill提出的时间自动机(Timed Automata)作为形式化理论基础,可以对以时间自动机网络为模型的实时系统进行模拟和模型检测。
[0005] 时间自动机在有穷状态机的基础上增加了时钟变量,它采用了连续时间模型并且所有时钟变量是同步前进的。在UPPAAL中,实时系统被建模为并发执行的时间自动机网络模型。有界整型变量被引入到时间自动机的概念中,它们的值可以被读取也可以被修改以及被用于计算。状态在时间自动机网络中被定义为所有时间自动机所处位置,时钟约束和普通变量的值的组合。通过自动机位置间的迁移或与其它自动机的同步,模型从当前状态迁移到新的状态。
[0006] 由于TASM工具TASM toolset对于逻辑行为、时间行为的验证能力偏弱,我们选择利用UPPAAL模型检测工具对其功能正确性(有无死锁)、非功能正确性(时间等约束条件)进行进一步的形式化验证。为此,本发明研究一种从TASM子集到UPPAAL的模型转换方法实现两种模型的自动转换。

具体实施方式

[0041] 下面将结合附图对本发明作进一步的说明:
[0042] 本发明涉及到一个TASM2UPPAAL模型转换工具,该模型转换工具对任意TASM模型,都能自动将其转换到相应的UPPAAL模型。该模型转换工具的源语言TASM是一种广泛应用于软、硬件系统设计的形式化描述语言,它支持嵌入式实时系统的功能行为、时间属性以及资源消耗的描述和验证。该模型转换工具的目标模型UPPAAL是由瑞典Uppsala大学和丹麦Aazborg大学联合开发的模型检测工具。它以R.Alur和Dill提出的时间自动机(Timed Automata)作为形式化理论基础,可以对以时间自动机网络为模型的实时系统进行模拟和模型检测。
[0043] 1)工具总体概述
[0044] 该模型转换工具,基于ATL模型转换技术,要完成该模型转换工具,定义源语言TASM与目标UPPAAL的元模型,元模型是以面向对象的思想描述一种语言的语法结构,从而使模型转换时,能根据其相应的语法元素,进行相对应的转换。针对模型转换的特点,使用了KM3重新描述了UPPAAL的元模型(语法结构)。模型转换的总体框架如图1所示。
[0045] 2)UPPAAL元模型
[0046] 根据模型转换工具特性,使用KM3对其进行了描述,如图2是UPPAAL元模型的框架图。
[0047] (1)nta
[0048] UPPAAL模型的根节点。下辖节点包括对UPPAAL模型定义的普通变量,时钟变量及同步通信信道进行声明的节点declaration;时间自动机模板集合的节点template;对时间自动机进行声明及实例化的节点system。
[0049] (2)declaration
[0050] Nta的下辖节点,放置用户定义的变量的声明及初始化定义。
[0051] (3)template
[0052] nta的下辖节点,其中定义时间自动机模板,其下辖以下节点
[0053] ●name:时间自动机的名字。
[0054] ●declaration:时间自动机局部变量,时钟的声明。
[0055] ●Parameters:时间自动机的输入参数,在实例化中使用。
[0056] ●location:时间自动机中的位置,在位置上可以设置属性紧急urgent,不变量invariant等属性。
[0057] ●transition:各个位置之间的迁移,包括迁移的起始位置(source)和目的位置(target)。上面可以设置转换条件(guard),对变量的赋值(update),时间自动机之间的同步(sync)等。
[0058] ●init:定义时间自动机的初始位置(location)。
[0059] (4)system
[0060] nta的下辖节点,是对UPPAAL模型的时间自动机模板进行声明及实例化。
[0061] (5)Label
[0062] 在时间自动机的元模型定义中,时间自动机位置(location)上的属性以及状态转换(transition)上的条件(guard)、赋值(assignment)、同步(synchronization)都在元模型中的label节点中被描述。
[0063] 3)模型转换方法
[0064] 研究TASM中各语法元素到UPPAAL的模型转换方法,其中包括,环境变量的转换方法,主抽象机与执行规则的转换方法。
[0065] 3.1)环境变量的转换方法:
[0066] TASM拥有更丰富的数据类型,包括整型、浮点型、布尔型以及用户自定义类型等。而UPPAAL模型中只有有界整型一种数据类型。由于浮点型是无法转换的,所以待转换的TASM模型是不能包含浮点类型变量的定义的。而布尔型和用户自定义类型的变量则可以被转换为等价的有界整型变量。映射方式如下表1所示。
[0067] 表1TASM和UPPAAL数据类型映射关系
[0068]
[0069] 整型变量映射为UPPAAL中的int,布尔类型的变量可以映射到UPPAAL中的类型为int[0,1]即取值范围为0或1的整型变量;拥有n个取值e1到en的用户自定义变量可以被映射到UPPAAL中的类型为int[0,n-1]即取值范围为0到n-1的整型变量,e1被映射到0,en被映射到n-1。
[0070] 3.2)主抽象机与执行规则的转换方法:
[0071] 一个TASM模型可以包含多个主抽象机(main machine,下文简称抽象机),这些抽象机在执行时是并发执行的。这与时间自动机网络的执行模型十分相似。在建立映射规则时,每一个抽象机都对应一个时间自动机。抽象机的并发执行模型就对应于时间自动机网络的并发执行模型。而TASM中每一次规则的执行(即一次状态变迁)的效果在其作用于环境之前是需要消耗时间的,这与时间自动机在状态变迁中不消耗时间的语义是不同的,而这两种时间表示方法的表达能力是相同的。在建立映射规则时,我们可以为每一个时间自动机定义一个中心位置pivot以及时钟变量c,中心位置被定义为紧急位置(urgent location),表示在此位置上不消耗时间;在时间自动机上为与其对应抽象机的每一条规则定义一个中间位置,时间将在中间位置上消耗时间直到可以进行状态变迁。每一条规则的执行可以被映射为UPPAAL时间自动机中的两个状态变迁。
[0072] 抽象机的每一条规则与时间自动机的映射规则(即一般规则到UPPAAL的转换)如下表2所示。
[0073] 设一般规则为Ri=,其中,Gi为规则Ri的约束条件(guard),t为Ri的执行时间,被表示为t=[tmin,tmax],tmin≤tmax,Ei为规则的执行动作,对此规则,定义中间位置Ri,定义从pivot到Ri的状态变迁,约束条件为Gi,执行动作为重置时钟,在位置Ri上定义时间不变量c<=tmax,定义从Ri到pivot的状态变迁,约束条件定义为c>=tmin,执行动作为Ei。
[0074] 表2一般规则到UPPAAL的转换
[0075]
[0076] UPPAAL中的Ri位置为定义的中间位置,当抽象机的规则Ri的约束条件被满足时,对应时间自动机从pivot变迁到位置Ri,同时时钟被重置,在位置Ri上,时间向前流动,当时钟值c满足tmin≤c≤tmax即对应于规则Ri的执行时间时,可以从中间位置Ri回到初始位置pivot表示Ri执行完,同时Ei被作用于环境。这样,主抽象机的一条规则Ri的执行就被等价映射到UPPAAL模型中了。
[0077] 当Ei中包含同步通信时(即带有同步的一般规则到UPPAAL的转换),根据TASM模型的语义其映射规则如表3所示。
[0078] 设带有同步的一般规则Ri=,其中,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。
[0079] 表3带有同步的一般规则到UPPAAL的转换
[0080]
[0081] TASM语义中,当动作执行中含有同步通信语句是,首先执行除同步通信以外的其他语句,执行完成后,再执行同步通信语句以发送或接收同步信号。
[0082] 在TASM中,还有一种特殊的else规则(else rule),else规则没有设定约束条件,当处于同一抽象机的其他规则的约束条件都不被满足时,将执行else规则。并且,else规则常常与时间表示方法“t:=next”组合一起使用,表示的语义为抽象机将一直处于等待状态直到抽象机的任意一条规则的约束条件被满足。在为“else规则+t:=next”建立到UPPAAL映射时,方法与一般规则比较相似,都需要建立一个中间位置,通过从pivot位置与此中间位置之间的状态变迁表示规则的执行。但不同的是,由于不再需要定义时间约束条件以及中间位置的时间不变量,需要添加一个用于同步的紧急同步信道(urgent synchronization channel),以保证当其他规则的约束条件被满足时,能够从中间位置回到pivot位置,为此我们还需要添加一个用于发送紧急同步信号的时间自动机。
[0083] 设抽象机m拥有n个一般规则Ri到Rn(Ri=),同时拥有else规则Re,其执行时间表示为“t:=next”。“else规则+t:=next”到UPPAAL的映射规则(即带有t:=next时间结构和else规则到UPPAAL的转换)如表4所示。
[0084] 设规则Re=,其中,Ge为空;t:=next;Ee为规则Re的执行动作,对此规则,定义中间位置Re,定义从pivot到Re的状态变迁,设抽象机的其它规则的约束条件G1到Gn,定义状态变迁的约束条件为!(G1||G2...||Gn),定义从Re到pivot的状态变迁,约束条件是(G1||G2...||Gn),执行动作为Ee,定义从Re到pivot状态变迁上的紧急同步信道cElse?以及发送同步信号cElse!的时间自动机。
[0085] 表4带有t:=next时间结构的而else规则到UPPAAL的转换
[0086]
[0087] 当抽象机的其它规则的约束条件G1到Gn都不满足时,时间自动机从中心位置pivot变迁到位置Re。当处于位置Re时,如果G1到Gn有一条约束条件被满足,Re规则的动作被执行,并且回到初始位置pivot。由于时间约束被设定为“t:=next”,为了保证在满足约束条件的情况下,能够从位置Re回到位置pivot,添加了紧急同步信道cElse以及用于发送同步信号的辅助时间自动机。
[0088] 在else规则拥有一般的执行时间表示时,其到UPPAAL的映射规则(带有一般执行时间表示的else规则到UPPAAL的转换)如表5所示。
[0089] 设规则Re=,其中,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。
[0090] 表5带有一般执行时间表示的else规则到UPPAAL的转换
[0091]
[0092] 当一般规则的Ri的时间表示为时间结构“t:=next”时,其到UPPAAL的映射规则(带有t:=next时间结构的一般规则到UPPAAL的转换)如表6所示。
[0093] 设Ri=,其中,Gi为规则Ri的约束条件(guard);t为Ri的执行施行时间被表示为t:=next;Ei为规则Ri的执行动作,对于此规则,定义中间位置Ri,定义pivot到Ri的状态变迁,约束条件是Gi,定义从Re到pivot的状态变迁,约束条件是(G1||G2...||Gn),执行动作为Ee,定义从Re到pivot状态变迁上的紧急同步信道urgent?以及发送同步信号urgent!的时间自动机。
[0094] 表6带有t:=next时间结构的一般规则到UPPAAL的转换
[0095]
[0096] 当规则Ri的规则的约束条件Gi被满足时,时间自动机从中心位置pivot迁移到Ri,由于其执行时间表示为“t:=next”,我们需要在从Ri到中心位置pivot的迁移上增加紧急同步信道urgentC,同时此迁移的约束条件被设定为除Ri本身的约束条件以外其它任意一个规则的约束条件被满足。当约束条件被满足的同时收到同步信号urgentC,发生从Ri到中心位置pivot的状态迁移,Ei被执行。

当前第1页 第1页 第2页 第3页
相关技术
转换方法相关技术
胡凯发明人的其他相关专利技术