CN102799521B - 一种层次式时间自动机平展化算法 - Google Patents

一种层次式时间自动机平展化算法 Download PDF

Info

Publication number
CN102799521B
CN102799521B CN201210218467.4A CN201210218467A CN102799521B CN 102799521 B CN102799521 B CN 102799521B CN 201210218467 A CN201210218467 A CN 201210218467A CN 102799521 B CN102799521 B CN 102799521B
Authority
CN
China
Prior art keywords
state
type
transfer
combined
timed automata
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.)
Active
Application number
CN201210218467.4A
Other languages
English (en)
Other versions
CN102799521A (zh
Inventor
周宇
胡军
黄志球
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201210218467.4A priority Critical patent/CN102799521B/zh
Publication of CN102799521A publication Critical patent/CN102799521A/zh
Application granted granted Critical
Publication of CN102799521B publication Critical patent/CN102799521B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种层次式时间自动机平展化算法,步骤是:(1)针对层次式时间自动机中的每一个非根顺序时间自动机,相应地添加inactive状态;(2)针对每个非根节点顺序时间自动机,添加一个特殊状态,并从源于复合状态的转移的相应的源限制函数值中的每个状态添加相应的转移到该特殊状态,并将该转移对应的事件扩充为广播通道类型,并将上面到达新状态的转移事件扩充为该广播通道类型的接受类型;(3)从步骤(2)每个顺序时间自动机中新添加的特殊状态出发引出新的转移,到达步骤(1)中所添加的对应的顺序时间自动机中的inactive状态。此种算法可使得平展后的结果能够作为模型检测工具的输入,从而进行自动化的验证。

Description

一种层次式时间自动机平展化算法
技术领域
本发明属于软件测试和验证领域,特别涉及一种针对层次式时间自动机模型的平展算法,即将层次式时间自动机划归为传统的时间自动机模型,主要用于解决现有软件模型检测工具不能直接检验层次式自动机模型正确性问题。
背景技术
模型检测技术是形式化验证软件正确性的重要方法之一,该方法的主要输入部分包括软件系统模型和规约,通过工具软件对系统的状态进行穷尽搜索,从而可以验证所设计的系统模型是否满足规约要求,当发现系统存在不满足规约的状态时,能够给出从初始状态到达该非法状态的路径,从而便于分析。由于模型检测工具具备自动化程度高、覆盖面广的特点,能够检测出传统的软件测试方法难以发现的错误,因此该技术广泛应用于对于软件可靠性要求较高的领域,例如航空、航天等。
系统模型和规约是进行模型检测的要素,形式化的系统模型通常是有穷状态迁移系统,这在实践中往往被转换成不同的有穷状态自动机,这样,现实中的问题被转换成了自动机所描述的语言之间的包含问题,而这个问题在计算机科学中已经被证明是可判定的,因此自动机是支持模型检测的重要的工具。
层次式时间自动机是在经典的时间自动机基础之上,为描述现实世界中客观对象的状态包含关系所扩充的一种自动机模型,其扩展之处在于增添了一个时钟,且该时钟只能被重置为0,在基于模型检测的反应式软件系统的形式化验证过程中有着重要的应用,也是诸多建模工具例如实时UML、状态图的理论基础。层次式时间自动机可直接对复杂状态(如包含多个区域的复合状态)进行建模,应用精化函数描述状态间的层次关系。该自动机模型在建模直观性,表达能力等方面有着明显的优势。
发明内容
本发明的目的,在于提供一种层次式时间自动机平展化算法,其可使得平展后的结果能够作为模型检测工具的输入,从而进行自动化的验证。
为了后续描述的方便,同时为了区别传统时间自动机与层次式时间自动机模型,我们称前一种模型为顺序时间自动机。首先对顺序时间自动机和层次式时间自动机分别进行定义,顺序时间自动机是一个八元组<S,s0,σ,C,Inv,μ,∑,T>,其中,S是状态集合,s是S中的元素,s0是起始状态,σ是状态的类型函数,该函数定义域是状态,值域是状态的类型,其状态类型包括原子类型、复合类型、历史类型以及初入类型;C是该自动机时钟集合,Inv指该自动机的不变量集合,μ是状态的历史标记函数,∑是状态迁移触发动作集合,T是状态转移集合,是S×∑×CC×2C×S的子集,其中CC是该自动机的时钟约束,t是T中的元素。根据顺序时间自动机模型,我们可以定义层次式时间自动机M如下:<F,E,ρ>,其中,F是顺序时间自动机模型集合,但要求任两个顺序时间自动机的状态集合是不相交的,E是触发事件集合,ρ是精化函数,将一个状态映射为顺序时间自动机集合,由上可知,该函数针对复合状态有定义,针对原子状态,该函数返回空集,层次式时间自动机中的层次主要由该精化函数进行描述;此外我们还需要定义源限制函数sr和目标限制函数tr,这两类函数的定义域都是转移,其中源限制函数主要用于得到转移的源状态集合,而目标限制函数主要用于得到转移的目标状态集合。
为了达成上述目的,本发明的解决方案是:
一种层次式时间自动机平展化算法,包括如下步骤:
(1)针对层次式时间自动机中的每一个非根顺序时间自动机,相应地添加inactive状态;
(2)针对每个非根节点顺序时间自动机,添加一个特殊状态,并从源于复合状态的转移的相应的源限制函数值中的每个状态添加相应的转移到该特殊状态,并将该转移对应的事件扩充为广播通道类型,并将上面到达新状态的转移事件扩充为该广播通道类型的接受类型;
(3)从步骤(2)每个顺序时间自动机中新添加的特殊状态出发引出新的转移,到达步骤(1)中所添加的对应的顺序时间自动机中的inactive状态。
上述步骤(1)与步骤(2)之间,还包括如下步骤:
(a)遍历层次式时间自动机中的每一个复合状态,判断其是否包含历史信息,如果不包含,转步骤(b1),如果包含,则转步骤(c1);
(b1)针对每一个进入无历史信息的复合状态的转移,从inactive状态添加这些复合状态内部相应的默认初入状态,触发事件同于t的触发事件;如果复合状态本身是初始状态,那么该状态中的默认初入状态被标记为初入状态,否则将步骤(1)添加的inactive状态标记为初入状态;
(b2)为同步各个顺序自动机之间的并行执行,将进入复合状态的每一个转移事件扩充为广播通道的发出类型,而在其相应的子状态顺序时间自动机中,把从inactive状态到默认初入状态的事件扩充标记为该广播通道类型的接受类型;转步骤(2);
(c1)如果复合状态中有历史信息,针对其中的每一个子状态添加一个布尔变量,并将其中初入状态的变量初始化为真值,其余的赋予假值,当内部发生状态转移的时候,相应的布尔变量值会被重置,使得最近一次被访问的状态对应的变量为真值;
(c2)针对复合状态的每一个子顺序自动机,添加一个选择状态,从该选择状态出发引出到达该子顺序自动机中的每一个状态的转移,转移的卫式条件为该状态对应的布尔变量值为真;如果复合状态的历史类型为浅历史类型,那么步骤(c1)、(c2)的操作止于复合状态的直接子顺序自动机层,如果复合状态的历史类型为深历史类型,那么步骤(c1)、(c2)的操作递归至最低一层。
由于现有的工具无法直接对层次式时间自动机进行验证,采用上述方案后,本发明可以使得对这种转换后的等价顺序时间自动机集合进行模型检测工作,从而可以自动地发现模型设计过程中存在的逻辑问题。
附图说明
图1是本发明的流程图;
图2是本发明具体实施例中层次式时间自动机的图形化表示图;
图3是图2平展后的顺序时间自动机集合图形化表示图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
配合图1所示,本发明提供一种层次式时间自动机平展化算法,包括如下步骤:
(1)针对层次式时间自动机M中的每一个顺序时间自动机F,将之视作一个独立的时间自动机,针对每一个不是根自动机(root automaton)的F,相应地添加一个状态,将之标记为inactive;
(2)遍历层次式时间自动机M中的每一个复合状态s,判断其是否包含历史信息,如果不包含,转步骤(3),如果包含,则转步骤(5);
(3)针对每一个进入无历史信息的复合状态s的转移t,从inactive状态添加这些复合状态内部相应的默认初入状态,触发事件同于转移t对应的触发事件;如果复合状态s本身是初始状态,那么该状态中的默认初入状态被标记为初入状态,否则将步骤(1)添加的inactive状态标记为初入状态;
(4)为同步各个顺序自动机之间的并行执行,将进入复合状态s的每一个转移事件扩充为广播通道(broadcast channel)的发出类型(用!标记),而在其相应的子状态顺序时间自动机中,把从inactive状态到默认初入状态的事件扩充标记为该广播通道类型的接受类型(用?标记);转步骤(7);
(5)如果复合状态s中有历史信息,针对其中的每一个子状态添加一个布尔变量,并将其中初入状态的变量初始化为真值,其余的赋予假值,当内部发生状态转移的时候,相应的布尔变量值会被重置,使得最近一次被访问的状态对应的变量为真值;
(6)针对s的每一个子顺序自动机,添加一个选择状态,从该选择状态出发引出到达该子顺序自动机中的每一个状态的转移,转移的卫式(guards)条件为该状态对应的布尔变量值为真;如果复合状态s的历史类型为浅历史类型,那么步骤(5)、(6)的操作止于s的直接子顺序自动机层,如果s的历史类型为深历史类型,那么将原s更新为s的子复合状态,步骤(5)、(6)的操作递归至最低一层;
(7)针对每个非根节点顺序时间自动机,添加一个特殊状态,并从源于复合状态的转移的相应的源限制函数值中的每个状态添加相应的转移到该特殊状态,并将该转移对应的事件扩充为广播通道类型(broadcast channel),并将上面到达新状态的转移事件扩充为该广播通道类型的接受类型;
(8)从步骤(7)每个顺序时间自动机中新添加的特殊状态出发引出新的转移,到达步骤(1)中所添加的对应的顺序时间自动机中的inactive状态。
下面结合经典时间自动机仿真验证工具UPPAAL,来详细介绍该发明的工作方式,该算法输入为层次式时间自动机,输出为等价的可并行执行的顺序时间自动机集合。输入层次式时间自动机如图2所示,由F1-F6顺序时间自动机组成,其中F1为根自动机,S12为复合状态,ρ(S12)为{F2,F3,F4},其中F3中的S31为复合历史状态,即μ(S31)为deep(深历史状态),而ρ(S31)为{F5,F6},时钟变量为t,位于状态中的表达式为时钟约束,位于转移位置的赋值语句为时钟重置动作。
根据步骤(1),将F1-F6转化为六个独立的时间自动机,由于F1是根自动机,在F2-F6每个自动机中相应地添加一个状态,将之标记为inactive;
根据步骤(3),针对每一个进入非历史复合状态S12的转移事件t,在该例中为e1,从其子自动机中的inactive状态添加到这些复合状态内部相应的默认初入状态(F2-F4),触发事件同于t的触发事件。由于复合状态S12本身不是初始状态,在上步骤添加的inactive状态标记为初入状态;
根据步骤(4),需要同步各类自动机之间的并行执行,因此将进入S12的转移事件扩充为广播通道发出类型(由!标识),在各子自动机中从inactive状态出发的转移扩充为该广播通道的接受类型(由?标识);
遍历该层次式时间自动机,查找其他复合状态,重复步骤(1)-(4),在本例中,已没有非复合历史状态。
由于S31为历史状态,根据步骤(5),针对其子自动机F5、F6,其中的每一个子状态(S51,S52,S61,S62)添加一个布尔变量,用来记录历史信息。初入状态的变量初始化为真值,其余的变量赋予假值,内部的转移事件需要附加一个布尔变量重置动作,使得最近一次被访问的状态对应的变量为真值。
根据步骤(6),针对S31的每一个子顺序自动机F5、F6,添加一个选择状态,从该选择状态出发引出到达该子顺序自动机中的每一个状态(S51,S52,S61,S62)的转移,转移的卫式(guards)条件为该状态对应的布尔变量值为真。由于S31的历史类型为深历史类型,4(a),4(b)步骤的操作递归至S31的最低一层,由于S31只有一层,所以该步于此终止。
根据步骤(7),针对每个非根节点顺序时间自动机F2-F6,添加一个特殊状态,并从源于复合状态的转移的相应的源限制函数值中的每个状态添加相应的转移到该特殊状态,并将该转移对应的事件扩充为广播通道的发出类型(用!标记),并将子自动机中添加相应到达新状态的转移事件扩充为该广播通道的接受类型(用?标记),由于该状态只是起到一个全局会合的作用,我们应用UPPAAL中的瞬时状态类型对之进行标记,表示到达该状态后马上转移到它的下面的状态,时钟不在此计时。
根据步骤(8),从步骤(7)中每个顺序时间自动机中新添加的瞬时状态出发引出新的转移,到达步骤(1)中所添加的对应的顺序时间自动机中的inactive状态。
图3即为该实例对应的平展化算法之后的顺序自动机集合。
下附本发明实施例所采用的算法。
算法1.产生顺序时间自动机基本元素(对应前述步骤(1)-(4))
输入:M:层次时间自动机模型
输出:T:顺序时间自动机集合
开始:
结束;
算法2.顺序时间自动机添加历史信息(对应前述步骤(5)-(6))
输入:map:算法1的所得结果变量
输出:T:顺序时间自动机集合
开始:
结束;
算法3.顺序时间自动机添加全局交会信息(对应前述步骤(7)-(8))
输入:map:算法2的所得结果变量
输出:T:顺序时间自动机集合
开始:
结束.
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (1)

1.一种层次式时间自动机平展化算法,其特征在于包括如下步骤:
(1)针对层次式时间自动机中的每一个非根顺序时间自动机,相应地添加inactive状态;
(2)针对每个非根顺序时间自动机,添加一个特殊状态,并从源于复合状态的转移的相应的源限制函数值中的每个状态添加相应的转移到该特殊状态,并将该转移对应的事件扩充为广播通道类型,并将上面到达前述新添加的特殊状态的转移事件扩充为该广播通道类型的接受类型;
(3)从步骤(2)每个非根顺序时间自动机中新添加的特殊状态出发引出新的转移,到达步骤(1)中所添加的对应的顺序时间自动机中的inactive状态;
所述步骤(1)与步骤(2)之间,还包括如下步骤:
(a)遍历层次式时间自动机中的每一个复合状态,判断其是否包含历史信息,如果不包含,转步骤(b1),如果包含,则转步骤(c1);
(b1)针对每一个进入无历史信息的复合状态的转移t,从inactive状态添加这些复合状态内部相应的默认初入状态,触发事件同于t的触发事件;如果复合状态本身是初始状态,那么该复合状态中的默认初入状态被标记为初入状态,否则将步骤(1)添加的inactive状态标记为初入状态;
(b2)为同步各个顺序时间自动机之间的并行执行,将进入复合状态的每一个转移事件扩充为广播通道的发出类型,而在其相应的子状态顺序时间自动机中,把从inactive状态到默认初入状态的事件扩充标记为该广播通道类型的接受类型;转步骤(2);
(c1)如果复合状态中有历史信息,针对其中的每一个状态添加一个布尔变量,并将其中初入状态的变量初始化为真值,其余的赋予假值,当内部发生状态转移的时候,相应的布尔变量值会被重置,使得最近一次被访问的状态对应的变量为真值;
(c2)针对复合状态的每一个子状态顺序时间自动机,添加一个选择状态,从该选择状态出发引出到达该子状态顺序时间自动机中的每一个状态的转移,转移的卫式条件为该状态对应的布尔变量值为真;如果复合状态的历史类型为浅历史类型,那么步骤(c1)、(c2)的操作止于该复合状态的子状态顺序时间自动机,如果复合状态的历史类型为深历史类型,那么步骤(c1)、(c2)的操作递归至最低一层。
CN201210218467.4A 2012-06-28 2012-06-28 一种层次式时间自动机平展化算法 Active CN102799521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210218467.4A CN102799521B (zh) 2012-06-28 2012-06-28 一种层次式时间自动机平展化算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210218467.4A CN102799521B (zh) 2012-06-28 2012-06-28 一种层次式时间自动机平展化算法

Publications (2)

Publication Number Publication Date
CN102799521A CN102799521A (zh) 2012-11-28
CN102799521B true CN102799521B (zh) 2015-05-20

Family

ID=47198634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210218467.4A Active CN102799521B (zh) 2012-06-28 2012-06-28 一种层次式时间自动机平展化算法

Country Status (1)

Country Link
CN (1) CN102799521B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335534B (zh) * 2014-05-30 2018-12-14 华为技术有限公司 模型建立方法和装置
CN111984233B (zh) * 2020-08-03 2022-02-01 南京航空航天大学 一种AltaRica模型中类的平展化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063369A (zh) * 2010-12-23 2011-05-18 西北工业大学 一种基于aadl模态时间自动机模型的嵌入式软件测试方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484009B2 (en) * 2010-05-14 2013-07-09 GM Global Technology Operations LLC Timing analysis using formal methods

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063369A (zh) * 2010-12-23 2011-05-18 西北工业大学 一种基于aadl模态时间自动机模型的嵌入式软件测试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Real-Time Component Composition using Hierarchical Timed Automata;Xianli Jin 等;《Seventh International Conference on Quality Software (QSIC 2007)》;20071012;第90-99页 *
基于层次自动机和模型检测的UML状态图检测方法;王佳婧 等;《硅谷》;20101208(第23期);第178-179页 *

Also Published As

Publication number Publication date
CN102799521A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
US10241852B2 (en) Automated qualification of a safety critical system
Moreira et al. Polynomial time verification of decentralized diagnosability of discrete event systems
CN103473400B (zh) 基于层次依赖建模的软件fmea方法
CN108376221A (zh) 一种基于aadl模型扩展的软件系统安全性验证与评估方法
CN105159827A (zh) 一种面向gui软件的可靠性加速测试方法
Liu et al. Automatic generation of assertions from system level design using data mining
CN102624476B (zh) 一种基于模型检测的无线传感器网络时间同步检验方法
CN102799521B (zh) 一种层次式时间自动机平展化算法
CN105022692A (zh) 一种死锁检测验证方法
CN107357948A (zh) 用于建立fpga网表的方法
CN102193858B (zh) 一种测试用例集生成方法
TWI713680B (zh) 控制實體擺置之方法、系統及電腦實施方法以及製造積體電路之方法
CN105302547A (zh) 一种面向Verilog HDL设计的故障注入方法
Karmazin et al. Timing driven placement for quasi delay-insensitive circuits
CN105607990A (zh) 一种空指针崩溃的挖掘方法及装置
US10380295B1 (en) Methods, systems, and articles of manufacture for X-behavior verification of an electronic design
Madalinski et al. Diagnosability verification with parallel LTL-X model checking based on Petri net unfoldings
Zhou et al. Functional test generation for hard-to-reach states using path constraint solving
CN105426176B (zh) 一种基于信息隐藏的图转换系统模型检测方法
CN104636509A (zh) 门级仿真中验证时序问题的方法
CN106415550A (zh) 电路自动综合方法、相关的设备和计算机程序
CN105808839A (zh) 一种电路路径的测试覆盖率分析方法
US10094875B1 (en) Methods, systems, and articles of manufacture for graph-driven verification and debugging of an electronic design
CN103914381A (zh) 生成时序安全属性类缺陷模式相关的函数摘要信息的方法
Kallel et al. Monitoring transaction level SystemC models using a generic and aspect-oriented framework

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