Tasm2uppaal模型转换方法

文档序号:6364423阅读:377来源:国知局
专利名称:Tasm2uppaal模型转换方法
技术领域
本发明涉及一种模型转换方法,尤其涉及将TASM模型转换为UPPAAL模型的方法。
背景技术
嵌入式实时系统是一种需要在满足实时计算约束条件下实现特定功能的计算控制系统。其广泛应用于航空电子、航天器、汽车控制等领域,这些系统具有资源受限、实时响应、容错、专用硬件等特点,对强实时性、可靠性等性质有较高的要求。由于软硬件规模及复杂度的增大以及计算精度、实时响应的要求的提高,这类系统变得越来越复杂,学术界和工业界一直在深入地研究如何在开发时间与成本受限的条件下更好地设计、实现高质量的复杂嵌入式实时系统并对其功能进行验证。抽象状态机(AbstractState 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的元模型包括(I) nta:UPPAAL模型的根节点,下辖节点包括对UPPAAL模型定义的普通变量、时钟变量及同步通信信道进行声明的节点declaration,时间自动机模板集合的节点template,对时间自动机进行声明及实例化的节点system ;(2) declaration nta的下辖节点,放置用户定义的变量的声明及初始化定义;(3) templatenta的下辖节点,定义时间自动机模板,其下辖以下节点· 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
,即取值范围为O或I的整型变量拥有η个取值el到en的用户自定义变量User-defined type {el, e2, . . . . en}被映射到UPPAAL中的类型为int [O, n-1],即取值范围为O到η-i的整型变量,其中el被映射到0,en被映射到n_l。其中所述主抽象机(main machine)与执行规则的转换方法包括以下规则主抽象机到UPPAAL时间自动机(automata)的转换每一个主抽象机对应UPPAAL 中的一个时间自动机,为每一个时间自动机定义一个中心紧急位置(urgent location) pivot以及时钟变量c ;主抽象机规则的转换方法在时间自动机上为与其对应抽象机的每一条规则定义一个中间位置,时间将在中间位置上消耗时间直到进行状态变迁,每一条规则的执行被映射为UPPAAL时间自动机中的两个状态变迁,其中,各种类型规则所对应的转换方法为I) 一般规则到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至Ij 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的状态变迁,设抽象机的其它规则的约束条件Gl到Gn,定义状态变迁的约束条件为!(Gl I IG2. . . I I Gn),定义从Re到pivot的状态变迁,约束条件是(Gl | | 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的状态变迁,设抽象机的其它规则的约束条件Gl到Gn,定义状态变迁的约束条件为! (Gl | | 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的状态变迁,约束条件是(Gl | | G2. . . | | Gn),执行动作为Ee,定义从Re到pivot状态变迁上的紧急同步信道“urgent ”以及发送同步信号“urgent ! ”的时间自动机。


图I :模型转换的总体框架图2 =UPPAAL元模型结构图
具体实施例方式下面将结合附图对本发明作进一步的说明本发明涉及到一个TASM2UPPAAL模型转换工具,该模型转换工具对任意TASM模型,都能自动将其转换到相应的UPPAAL模型。该模型转换工具的源语言TASM是一种广泛应用于软、硬件系统设计的形式化描述语言,它支持嵌入式实时系统的功能行为、时间属性以及资源消耗的描述和验证。该模型转换工具的目标模型UPPAAL是由瑞典Uppsala大学和丹麦Aazborg大学联合开发的模型检测工具。它以R. Alur和Dill提出的时间自动机 (Timed Automata)作为形式化理论基础,可以对以时间自动机网络为模型的实时系统进行模拟和模型检测。I)工具总体概述该模型转换工具,基于ATL模型转换技术,要完成该模型转换工具,定义源语言 TASM与目标UPPAAL的元模型,元模型是以面向对象的思想描述一种语言的语法结构,从而使模型转换时,能根据其相应的语法元素,进行相对应的转换。针对模型转换的特点,使用了 KM3重新描述了 UPPAAL的元模型(语法结构)。模型转换的总体框架如图I所示。2) UPPAAL 元模型根据模型转换工具特性,使用KM3对其进行了描述,如图2是UPPAAL元模型的框架图。(I) ntaUPPAAL模型的根节点。下辖节点包括对UPPAAL模型定义的普通变量,时钟变量及同步通信信道进行声明的节点declaration ;时间自动机模板集合的节点template ;对时间自动机进行声明及实例化的节点system。(2)declarationNta的下辖节点,放置用户定义的变量的声明及初始化定义。(3) templatenta的下辖节点,其中定义时间自动机模板,其下辖以下节点· name :时间自动机的名字。· declaration :时间自动机局部变量,时钟的声明。· Parameters :时间自动机的输入参数,在实例化中使用。· location :时间自动机中的位置,在位置上可以设置属性紧急urgent,不变量 invariant 等属性。· transition :各个位置之间的迁移,包括迁移的起始位置(source)和目的位置 (target)。上面可以设置转换条件(guard),对变量的赋值(update),时间自动机之间的同步(sync)等。· init :定义时间自动机的初始位置(location)。(4)systemnta的下辖节点,是对UPPAAL模型的时间自动机模板进行声明及实例化。(5) Label在时间自动机的元模型定义中,时间自动机位置(location)上的属性以及状态转换(transition)上的条件(guard)、赋值(assignment)、同步(synchronization)都在元模型中的label节点中被描述。3)模型转换方法研究TASM中各语法元素到UPPAAL的模型转换方法,其中包括,环境变量的转换方法,主抽象机与执行规则的转换方法。3. I)环境变量的转换方法TASM拥有更丰富的数据类型,包括整型、浮点型、布尔型以及用户自定义类型等。 而UPPAAL模型中只有有界整型一种数据类型。由于浮点型是无法转换的,所以待转换的 TASM模型是不能包含浮点类型变量的定义的。而布尔型和用户自定义类型的变量则可以被转换为等价的有界整型变量。映射方式如下表I所示。表ITASM和UPPAAL数据类型映射关系
TASM数据类型UPPAAL数据类型integerintboolean{False,True}int
User-defined type{el,e2,.. ..en}int
整型变量映射为UPPAAL中的int,布尔类型的变量可以映射到UPPAAL中的类型为 int
即取值范围为O或I的整型变量;拥有η个取值el到en的用户自定义变量可以被映射到UPPAAL中的类型为int
即取值范围为O到n_l的整型变量,el被映射到
O,en被映射到η-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,执行动作为Ei0表2 —般规则到UPPAAL的转换
权利要求
1.一种模型转换方法,用于将TASM模型转换为UPPAAL模型,其特征在于使用KM3描述目标语言UPPAAL的元模型;针对TASM模型的环境变量与抽象机,执行规则语法元素,使用环境变量的转换方法和主抽象机与执行规则的转换方法,将TASM模型转换为UPPAAL模型。
2.根据权利要求I所述的模型转换方法,其特征在于所述UPPAAL的元模型包括(1)ntaUPPAAL模型的根节点,下辖节点包括对UPPAAL模型定义的普通变量、时钟变量及同步通信信道进行声明的节点declaration,时间自动机模板集合的节点template,对时间自动机进行声明及实例化的节点system ;(2)declarationnta的下辖节点,放置用户定义的变量的声明及初始化定义;(3)templatenta的下辖节点,定义时间自动机模板,其下辖以下节点 name :时间自动机的名字; declaration :时间自动机局部变量,时钟的声明; Parameters :时间自动机的输入参数,在实例化中使用; location :时间自动机中的位置,在位置上设置属性紧急urgent、不变量 invariant ; transition :各个位置之间的迁移,包括迁移的起始位置source和目的位置 target,上面设置转换条件guard,对变量的赋值update,时间自动机之间的同步sync ; init :定义时间自动机的初始位置location ;(4)systemnta的下辖节点,对UPPAAL模型的时间自动机模板进行声明及实例化;(5)Label在时间自动机的元模型定义中,时间自动机位置(location)上的属性以及状态转换 (transition)上的条件(guard)、赋值(assignment)、同步(synchronization)都在元模型中的label节点中被描述。
3.根据权利要求I所述的模型转换方法,其特征在于将TASM的整型、布尔型以及用户自定义类型的数据类型转换为UPPAAL模型中的有界整型一种数据类型,包含以下规则整型变量映射为UPPAAL中的int,布尔类型的变量boolean {False,True}映射到 UPPAAL中的类型为int
,即取值范围为O或I的整型变量;拥有η个取值el到en的用户自定义变量User-defined type {el, e2,. . · · en}被映射到UPPAAL中的类型为int [O, n-1],即取值范围为O到η-i的整型变量,其中el被映射到0,en被映射到n_l。
4.根据权利要求I所述的模型转换方法,其特征在于所述主抽象机(mainmachine) 与执行规则的转换方法包括以下规则主抽象机到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的状态变迁,设抽象机的其它规则的约束条件Gl到Gn,定义状态变迁的约束条件为!(Gl I IG2. . . I I Gn),定义从Re到pivot的状态变迁,约束条件是(G11 | 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的状态变迁,设抽象机的其它规则的约束条件Gl到Gn,定义状态变迁的约束条件为!(Gl I IG2. . . I I 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的状态变迁,约束条件是(Gl| G2. . . | I Gn),执行动作为Ee,定义从Re 到pivot状态变迁上的紧急同步信道“urgent ”以及发送同步信号“urgent ! ”的时间自动机。
全文摘要
本发明涉及一种模型转换方法,用于将TASM模型转换为UPPAAL模型,使用KM3描述目标语言UPPAAL的元模型;针对TASM模型的环境变量与抽象机,执行规则语法元素,使用环境变量的转换方法和主抽象机与执行规则的转换方法,将TASM模型转换为UPPAAL模型。
文档编号G06F9/44GK102609260SQ201210027759
公开日2012年7月25日 申请日期2012年2月8日 优先权日2012年2月8日
发明者姜泮昌, 张腾, 杨志斌, 胡凯, 蒋树, 顾斌 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1