CN103049603A - 一种带并发的状态机图转换到自动机的方法 - Google Patents
一种带并发的状态机图转换到自动机的方法 Download PDFInfo
- Publication number
- CN103049603A CN103049603A CN2012105390442A CN201210539044A CN103049603A CN 103049603 A CN103049603 A CN 103049603A CN 2012105390442 A CN2012105390442 A CN 2012105390442A CN 201210539044 A CN201210539044 A CN 201210539044A CN 103049603 A CN103049603 A CN 103049603A
- Authority
- CN
- China
- Prior art keywords
- state
- node
- automat
- state machine
- transition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010586 diagram Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000007704 transition Effects 0.000 claims abstract description 40
- 238000013508 migration Methods 0.000 claims description 36
- 230000005012 migration Effects 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 15
- 230000001419 dependent effect Effects 0.000 claims description 9
- 238000010304 firing Methods 0.000 claims description 9
- 238000013461 design Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 230000005281 excited state Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000002650 habitual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种带并发的状态机图转换到自动机的方法,包括步骤如下:步骤10:输入一个UML状态机图;步骤11:生成一个名字为go的自动机(自动机的名字可根据自己习惯定义),该自动机可以产生一个go信号量;步骤12:对状态机图的每个状态声明一个整型全局变量;步骤13:对状态机图的每个迁移声明一个自动机;步骤14:每个自动机添加两个location(自动机中的节点)和三个transition(自动机中的迁移);步骤15:根据UML状态图的迁移,完善所添加的location和transition;步骤16:所有产生的自动机,构成转换结果。该方法主要特点为可以将带并发的UML状态机图转化为自动机,方便各个领域应用。
Description
技术领域
本发明涉及一种带并发的状态机图转换到自动机的方法。
背景技术
实时嵌入式***在制造工业、通信、汽车、航空航天、消费类产品等领域得到了越来越广泛的应用。但是,实时嵌入式***的开发通常十分复杂,所以在开发前期,要对整个***建立相应的模型进行抽象。这样有助于实时***软件的开发,能够很好地控制***的复杂性。
在实时嵌入式***开发过程中,经常会用到UML状态机图(SMD),它是一种半形式化的模型,这样在实时嵌入式***开发的初期,设计者就不能很好的对设计模型进行分析和验证。为了解决这个问题,我们需要将SMD转化为形式化的自动机模型,并利用现有工具对转化结果进行分析验证。这样在***设计初期就可以发现***的一些错误和不足,有利于***更好更快地开发。
自动机是一类形式化的建模语言,有很多现有的包括Uppaal在内的模型检验工具进行支撑。利用支撑工具我们可以方便的对已有自动机模型进行模拟,分析及验证工作。(Uppaal可以用来对被转换时间自动机网络模型的实时***进行建模、校验和验证。它是由瑞典Uppsala大学的信息技术学院和丹麦Aalborg大学的计算科学学院联合开发的)
发明内容
本发明目的是,鉴于上述问题,本发明旨在提供一个带并发的状态机图转换到自动机的方法,该方法可以结合模型驱动工程技术,实现状态机图模型到自动机模型的转换,从而使通过现有模型检验工具对设计模型进行模拟,分析与验证变成可能。
本发明是通过以下的技术方案实现的:
步骤10:输入一个UML状态机图;
步骤11:生成一个名字为go的自动机(自动机的名字可根据自己习惯定义),该自动机可以产生一个go信号量;
步骤12:对状态机图的每个状态声明一个整型全局变量;
步骤13:对状态机图的每个迁移声明一个自动机;
步骤14:每个自动机添加两个location(自动机中的节点)和三个transition(自动机中的迁移);
步骤15:根据UML状态图的迁移,完善所添加的location和transition;
步骤16:所有产生的自动机,构成转换结果。
所述步骤10所构造的模型符合下面的形式,该模型包括一个根节点Region(Region代表一个状态图的范围),每个Region都要有个Name(状态图的名字)节点,在Region里可以有若干个State(状态图中的节点)和Transition(状态图中的迁移),同时还可以添加局部变量声明(如时钟变量和整型变量等),另外可以根据需要添加参数节点。该模型是可以根据附图6所示元模型实现,此元模型是根据模型驱动思想,然后结合状态图的结构构造的,构造示例如附图2所示。
设计一个状态机图的过程包括:
步骤200:用eclipse运行状态机图编辑器;
步骤201:右键单击根节点,新建一个或多个Region;
步骤202:右键单击Region节点,创建***中所需要的State节点,同时为每个State节点命名,如果State节点有时限变量,则跳转到步骤203,否则跳转到步骤204;
步骤203:右键单击State节点,增加时限变量节点,并设置初始值;
步骤204:右键单击Region节点,创建***中所需要的Transition节点,同时为每个Transition节点命名及指定源和目标状态;
步骤205:右键单击Region节点,增加局部变量声明节点;
步骤206:右键单击Region节点,增加参数节点;
步骤207:右键单击Region节点,增加名字节点;
步骤208:右键单击根节点,增加全局变量声明节点;
步骤209:右键单击根节点,增加***模型声明节点;
步骤210:结束本次状态机图设计。
所述步骤12中,对状态机图的每个状态声明一个整型全局变量,执行的过程包括:
步骤30:遍历整个输入的UML状态机图,得到所有状态;
步骤31:对每个遍历到的状态记录其属性,包括是否为开始节点,普通节点,终止节点;
步骤32:对每个遍历到的状态记录其约束;
步骤33:对每个遍历到的状态在自动机声明中声明一个整型变量用于表示其状态;
所述步骤13和14中,对状态机图的每个迁移声明一个自动机,并为每个自动机添加两个location和三个transition,执行的过程包括:
步骤40:创建一个自动机;
步骤41:在自动机中添加两个location名字分别为disabled和firing;disabled代表当前自动机处于未使能状态,firing代表当前自动机处于使能激发状态。
步骤42:在自动机中添加三个transition名字分别为T1,T2和T3;此处命名仅为标识作用。
步骤43:根据UML状态图的迁移,完善所添加的location和transition;
步骤44:若状态机图的迁移需要事件来触发,则创建一个仅含有一个location和一个指向自身的transition的自动机,且该自动机transition会发出该事件;
所述步骤15中,根据UML状态图的迁移,完善所添加的location和transition。操作流程可以参看附图5。
执行的过程包括:
步骤50:在UML状态机图中,若源状态有约束,则将约束加到名字在firing的location上;
步骤51:在T1上添加卫式,判断源状态对应变量是否为1,同时,迁移结束后令时钟为0并开始计时;
步骤52:在T2上添加卫式,判断源状态对应变量是否为0,同时,添加同步信号go,用以容错处理;
步骤53:在T3上添加卫式,判断源状态对应变量是否为1,同时,若源迁移上有卫式,也要加到T3的卫式上来;
步骤54:若源迁移上有事件,在T3上添加相同的事件信号,T3迁移结束后对源状态对应的变量置为0,目标状态对应的变量置为1。
本发明有益效果:这是一种带并发的状态机图转换到自动机的方法,该方法可以结合模型驱动工程技术,实现状态机图模型到自动机模型的转换,从而使通过现有模型检验工具对设计模型进行模拟,分析与验证变成可能。同时,此方法也可以方便地应用到其他领域应用。
附图说明
图1为UML状态图转化为自动机示意图;
图2为UML状态图编辑器示意图;
图3为对UML状态图状态的处理示意图;
图4为根据迁移产生自动机示意图;
图5为完善产生的自动机示意图;
图6为状态图元模型机示意图。
具体实施方式
本发明方法工作流程如图1-图5所示。
图1所示为本方法实施的整体结构和工作原理。本方法的目的是将带并发的状态机图转换到自动机,该方法可以结合模型驱动工程技术,实现状态机图模型到自动机模型的转换,从而使通过现有模型检验工具对设计模型进行模拟,分析与验证变成可能。同时,此方法也可以方便地应用到其他领域应用。
步骤10:输入一个UML状态机图;
步骤11:生成一个名字为go的自动机(自动机的名字可根据自己习惯定义),该自动机可以产生一个go信号量;
步骤12:对状态机图的每个状态声明一个整型全局变量;
步骤13:对状态机图的每个迁移声明一个自动机;
步骤14:每个自动机添加两个location(自动机中的节点)和三个transition(自动机中的迁移);
步骤15:根据UML状态图的迁移,完善所添加的location和transition;
步骤16:所有产生的自动机,构成转换结果。
所述步骤10所构造的模型符合下面的形式,该模型包括一个根节点Region(Region代表一个状态图的范围),每个Region都要有个Name(状态图的名字)节点,在Region里可以有若干个State(状态图中的节点)和Transition(状态图中的迁移),同时还可以添加局部变量声明(如时钟变量和整型变量等),另外可以根据需要添加参数节点。该模型是可以根据附图6所示元模型实现,此元模型是根据模型驱动思想,然后结合状态图的结构构造的,构造示例如附图2所示。
设计一个状态机图的过程包括:步骤200:用eclipse运行状态机图编辑器;
步骤201:右键单击根节点,新建一个或多个Region;
步骤202:右键单击Region节点,创建***中所需要的State节点,同时为每个State节点命名,如果State节点有时限变量,则跳转到步骤203,否则跳转到步骤204;
步骤203:右键单击State节点,增加时限变量节点,并设置初始值;
步骤204:右键单击Region节点,创建***中所需要的Transition节点,同时为每个Transition节点命名及指定源和目标状态;
步骤205:右键单击Region节点,增加局部变量声明节点;
步骤206:右键单击Region节点,增加参数节点;
步骤207:右键单击Region节点,增加名字节点;
步骤208:右键单击根节点,增加全局变量声明节点;
步骤209:右键单击根节点,增加***模型声明节点;步骤210:结束本次状态机图设计。
所述步骤12中,对状态机图的每个状态声明一个整型全局变量,执行的过程包括:
步骤30:遍历整个输入的UML状态机图,得到所有状态;
步骤31:对每个遍历到的状态记录其属性,包括是否为开始节点,普通节点,终止节点;
步骤32:对每个遍历到的状态记录其约束;
步骤33:对每个遍历到的状态在自动机声明中声明一个整型变量用于表示其状态。
所述步骤13和14中,对状态机图的每个迁移声明一个自动机,并为每个自动机添加两个location和三个transition,执行的过程包括:
步骤40:创建一个自动机;
步骤41:在自动机中添加两个location名字分别为disabled和firing;disabled代表当前自动机处于未使能状态,firing代表当前自动机处于使能激发状态。
步骤42:在自动机中添加三个transition名字分别为T1,T2和T3;此处命名仅为标识作用。
步骤43:根据UML状态图的迁移,完善所添加的location和transition;
步骤44:若状态机图的迁移需要事件来触发,则创建一个仅含有一个location和一个指向自身的transition的自动机,且该自动机transition会发出该事件;
所述步骤15中,根据UML状态图的迁移,完善所添加的location和transition。操作流程可以参看附图5。
执行的过程包括:
步骤50:在UML状态机图中,若源状态有约束,则将约束加到名字在firing的location上;
步骤51:在T1(参看附图5)上添加卫式,判断源状态对应变量是否为1,同时,迁移结束后令时钟为0并开始计时;
步骤52:在T2(参看附图5)上添加卫式,判断源状态对应变量是否为0,同时,添加同步信号go,用以容错处理;
步骤53:在T3(参看附图5)上添加卫式,判断源状态对应变量是否为1,同时,若源迁移上有卫式,也要加到T3的卫式上来;
步骤54:若源迁移上有事件,在T3上添加相同的事件信号,T3迁移结束后对源状态对应的变量置为0,目标状态对应的变量置为1。
Claims (5)
1.一种带并发的状态机图转换到自动机的方法,其特征是包括步骤如下:
步骤10:输入一个UML状态机图;
步骤11:生成一个名字为go的自动机,该自动机产生一个go信号量;
步骤12:对状态机图的每个状态声明一个整型全局变量;
步骤13:对状态机图的每个迁移声明一个自动机;
步骤14:每个自动机添加两个location和三个transition;
步骤15:根据UML状态图的迁移,完善所添加的location和transition;
步骤16:所有产生的自动机,构成转换结果;
步骤11中,自动机的名字可根据任意定义;
所述location为自动机中的节点,transition为自动机中的迁移。
2.根据权利要求1所述的带并发的状态机图转换到自动机的方法,其特征是步骤10中,
所构造的模型符合以下形式:
该模型包括一个根节点Region,每个Region都要有个Name节点,在Region里可以有若干个State和Transition,同时还允许添加局部变量声明,允许根据需要添加参数节点;所述Region代表一个状态图的范围,Name为状态图的名字,State为状态图中的节点,Transition为状态图中的迁移;
设计一个状态机图的过程包括:
步骤200:用eclipse运行状态机图编辑器;
步骤201:右键单击根节点,新建一个或多个Region;
步骤202:右键单击Region节点,创建***中所需要的State节点,同时为每个State节点命名,如果State节点有时限变量,则跳转到步骤203,否则跳转到步骤204;
步骤203:右键单击State节点,增加时限变量节点,并设置初始值;
步骤204:右键单击Region节点,创建***中所需要的Transition节点,同时为每个Transition节点命名及指定源和目标状态;
步骤205:右键单击Region节点,增加局部变量声明节点;
步骤206:右键单击Region节点,增加参数节点;
步骤207:右键单击Region节点,增加名字节点;
步骤208:右键单击根节点,增加全局变量声明节点;
步骤209:右键单击根节点,增加***模型声明节点;
步骤210:结束本次状态机图设计。
3.根据权利要求1所述的种带并发的状态机图转换到自动机的方法,其特征是所述步骤12中,对状态机图的每个状态声明一个整型全局变量,执行的过程包括:
步骤30:遍历整个输入的UML状态机图,得到所有状态;
步骤31:对每个遍历到的状态记录其属性,包括是否为开始节点,普通节点,终止节点;
步骤32:对每个遍历到的状态记录其约束;
步骤33:对每个遍历到的状态在自动机声明中声明一个整型变量用于表示其状态。
4.根据权利要求1所述的带并发的状态机图转换到自动机的方法,其特征是所述步骤13和14中,对状态机图的每个迁移声明一个自动机,并为每个自动机添加两个location和三个transition,执行的过程包括:
步骤40:创建一个自动机;
步骤41:在自动机中添加两个location名字分别为disabled和firing;disabled代表当前自动机处于未使能状态,firing代表当前自动机处于使能激发状态;
步骤42:在自动机中添加三个transition名字分别为T1,T2和T3;此处命名仅为标识作用;
步骤43:根据UML状态图的迁移,完善所添加的location和transition;
步骤44:若状态机图的迁移需要事件来触发,则创建一个仅含有一个location和一个指向自身的transition的自动机,且该自动机transition会发出该事件。
5.根据权利要求1所述的带并发的状态机图转换到自动机的方法,其特征是所述步骤15中,根据UML状态图的迁移,完善所添加的location和transition;执行的过程包括:
步骤50:在UML状态机图中,若源状态有约束,则将约束加到名字在firing的location上;
步骤51:在T1上添加卫式,判断源状态对应变量是否为1,同时,迁移结束后令时钟为0并开始计时;
步骤52:在T2上添加卫式,判断源状态对应变量是否为0,同时,添加同步信号go,用以容错处理;
步骤53:在T3上添加卫式,判断源状态对应变量是否为1,同时,若源迁移上有卫式,也要加到T3的卫式上来;
步骤54:若源迁移上有事件,在T3上添加相同的事件信号,T3迁移结束后对源状态对应的变量置为0,目标状态对应的变量置为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210539044.2A CN103049603B (zh) | 2012-12-13 | 2012-12-13 | 一种带并发的状态机图转换到自动机的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210539044.2A CN103049603B (zh) | 2012-12-13 | 2012-12-13 | 一种带并发的状态机图转换到自动机的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049603A true CN103049603A (zh) | 2013-04-17 |
CN103049603B CN103049603B (zh) | 2015-06-03 |
Family
ID=48062240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210539044.2A Expired - Fee Related CN103049603B (zh) | 2012-12-13 | 2012-12-13 | 一种带并发的状态机图转换到自动机的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049603B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335534A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 模型建立方法和装置 |
CN105955882A (zh) * | 2016-04-27 | 2016-09-21 | 南京大学 | 一种迭代学习模型行为相似性的测试用例生成方法和装置 |
CN109828746A (zh) * | 2018-11-20 | 2019-05-31 | 杭州电子科技大学 | 一种基于自适应序列图转换为时间自动机的方法 |
CN111026467A (zh) * | 2019-12-06 | 2020-04-17 | 合肥科大智能机器人技术有限公司 | 一种有限状态机的控制方法及有限状态机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160384A1 (en) * | 1998-08-26 | 2005-07-21 | Mentor Graphics Corporation | Recognition of a state machine in high-level integrated circuit description language code |
CN102368226A (zh) * | 2011-10-10 | 2012-03-07 | 南京大学 | 一种基于扩展有限状态机可行路径分析的测试用例自动生成方法 |
-
2012
- 2012-12-13 CN CN201210539044.2A patent/CN103049603B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160384A1 (en) * | 1998-08-26 | 2005-07-21 | Mentor Graphics Corporation | Recognition of a state machine in high-level integrated circuit description language code |
CN102368226A (zh) * | 2011-10-10 | 2012-03-07 | 南京大学 | 一种基于扩展有限状态机可行路径分析的测试用例自动生成方法 |
Non-Patent Citations (1)
Title |
---|
张天等: "基于MDA的设计模式建模与模型转换", 《软件学报》, vol. 19, no. 9, 30 September 2008 (2008-09-30) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335534A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 模型建立方法和装置 |
CN105335534B (zh) * | 2014-05-30 | 2018-12-14 | 华为技术有限公司 | 模型建立方法和装置 |
CN105955882A (zh) * | 2016-04-27 | 2016-09-21 | 南京大学 | 一种迭代学习模型行为相似性的测试用例生成方法和装置 |
CN105955882B (zh) * | 2016-04-27 | 2019-01-08 | 南京大学 | 一种迭代学习模型行为相似性的测试用例生成方法和装置 |
CN109828746A (zh) * | 2018-11-20 | 2019-05-31 | 杭州电子科技大学 | 一种基于自适应序列图转换为时间自动机的方法 |
CN111026467A (zh) * | 2019-12-06 | 2020-04-17 | 合肥科大智能机器人技术有限公司 | 一种有限状态机的控制方法及有限状态机 |
CN111026467B (zh) * | 2019-12-06 | 2022-12-20 | 合肥科大智能机器人技术有限公司 | 一种有限状态机的控制方法及有限状态机 |
Also Published As
Publication number | Publication date |
---|---|
CN103049603B (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368216B (zh) | 一种基于项目自动构造的流程实现方法 | |
Hegedüs et al. | Back-annotation of simulation traces with change-driven model transformations | |
CN103065000B (zh) | 一种基于模型驱动工程进行SysML状态机图分析验证的方法 | |
CN111124379B (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN103049603B (zh) | 一种带并发的状态机图转换到自动机的方法 | |
CN103116500A (zh) | 一种结构体定义和结构输出的方法及装置 | |
Yie et al. | Advanced traceability for ATL | |
Ulrich et al. | The ETSI test description language TDL and its application | |
André et al. | Translating UML state machines to coloured Petri nets using Acceleo: A report | |
Hu et al. | Automated fault tolerance augmentation in model-driven engineering for CPS | |
Redell et al. | The AIDA toolset for design and implementation analysis of distributed real-time control systems | |
Bill et al. | OCL meets CTL: Towards CTL-Extended OCL Model Checking. | |
CN102750177A (zh) | 一种使用编译器的脚本实现方法 | |
Yoo et al. | Verification of PLC programs written in FBD with VIS | |
Van Amstel et al. | Transforming process algebra models into uml state machines: Bridging a semantic gap? | |
CN111045685A (zh) | 代码转换方法、装置、存储介质及电子设备 | |
Elmansouri et al. | From UML activity diagrams to CSP expressions: A graph transformation approach using Atom3 tool | |
Kokash et al. | Input-output conformance testing for channel-based service connectors | |
Dixit et al. | Umbrella: A New Component-Based Software Development Model | |
Gao et al. | Flexible and extensible notations for modeling languages | |
Houhou et al. | Framework for Wireless Sensor Networks Code Generation from Formal Specification | |
Karsai | Unification or Integration? The Challenge of Semantics in Heterogeneous Modeling Languages. | |
Moutinho et al. | Petri net based specification and verification of globally-asynchronous-locally-synchronous system | |
Moeser | Example on „Usage of Free Sketches in MBSE “ | |
Kuryazov | Delta operation language for model difference representation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150603 Termination date: 20171213 |
|
CF01 | Termination of patent right due to non-payment of annual fee |