CN102426521B - 基于HybridUML和定理证明的CPS自适应性验证方法 - Google Patents
基于HybridUML和定理证明的CPS自适应性验证方法 Download PDFInfo
- Publication number
- CN102426521B CN102426521B CN201110338039.0A CN201110338039A CN102426521B CN 102426521 B CN102426521 B CN 102426521B CN 201110338039 A CN201110338039 A CN 201110338039A CN 102426521 B CN102426521 B CN 102426521B
- Authority
- CN
- China
- Prior art keywords
- qhp
- model
- cps
- mode
- attribute
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于HybridUML和定理证明的CPS自适应性验证方法,主要用于解决形式化验证方法理论性过强所带来的难以普遍应用的难题。本发明步骤包括:首先利用HybridUML视图对CPS建模;然后将HybridUML规约转换为定理证明器KeYmaera的输入-量化混合程序QHP;结合生成的QHP,以量化微分动态逻辑QdL公式的形式对待验证的属性进行规约,然后利用KeYmaera进行自动验证;进行模型转换之前,需要定义HybridUML和QHP的元模型,转换时首先消除顶层Mode具有的层次性,转换后得到的模型称为FlatMode,然后根据FlatMode和QHP之间宏观语义以及元语义的一致性确定转换规则,然后利用ATL语言描述转换规则,实现FlatMode模型到QHP媒介模型的转换,然后利用自定义模板语言实现QHP媒介模型到QHP代码的转换。
Description
技术领域
本发明是一种基于HybridUML和定理证明的CPS自适应性验证方法,主要用于基于UML的CPS标准***开发过程中自适应属性的验证。
背景技术
信息物理融合***(Cyber Physical Systems,CPS)CPS主要应用在一些对性能要求很高的领域,尤其是安全性关键的领域,因此保障***的正确性极为重要。仿真和测试技术是目前广泛应用的确保***正确运行的方法。但是这两种方法均有明显的缺陷:仿真技术在寻找细微错误方面能力不足;而测试往往不完整。形式化验证技术弥补了以上不足。在形式化验证中,会构造一个***形式化模型,用以描述***行为,同时会利用逻辑公式描述***应该具备的行为即属性,然后证明***的行为是否满足属性。形式化方法使用严格的数学证明方法作为支撑,验证的结果准确性很强。
CPS涉及离散过程和连续过程的交互,而这符合混成***的定义,因此CPS验证可以借鉴混成***验证理论。Edmund M.Clarke和E.Allen Emerson在20世纪80年代提出了一种形式化验证方法-模型检验。CPS的并发性和时间属性使得CPS状态空间规模极大,而且实际CPS的状态可达性不可判定,这使得模型检验技术难以适用,很多研究人员对混合自动机进行抽象或近似以解决可达性问题,但计算复杂度太高,而且由于混成***没有等价的有限状态抽象以及数值方法解决可达性问题的普遍限制,近似方法实用性不大。现有的大部分基于定理证明的混成***验证方法局限性很大,很难应用于CPS验证。***梅隆大学的AndréPlatzer提出基于量化微分动态逻辑(Quantified Differential Dynamic Logic,QdL)的分布式混成***验证方法,该方法可以应用于CPS属性验证,而且不依赖于状态空间遍历,避免了状态空间***的问题。André利用量化微分不变量避免了对微分方程的求解,解决了可达性问题。在验证CPS属性时,André使用QHP对***建模,然后结合QHP以QdL公式的形式对属性进行规约,最后利用QdL演算规则对属性公式进行证明,为了实现了属性推理验证过程的自动化,Platzer设计并实现了定理证明器-KeYmaera。因此本发明选用该定理证明器作为底层的形式化验证工具。
不过,形式化验证技术理论性过强,很难应用到工业实践中。如果形式化方法可以应用于标准***开发过程,那么使用形式化方法就会非常容易。对象管理组织提出的建模语言UML已经成为工业实践中默认标准建模语言,但它缺乏精确的语义,因此直接对UML进行形式化验证非常困难。本发明基于如下思想:首先利用HybridUML对CPS进行建模,然后将HybridUML规约转换为定理证明器KeYmaera的输入-QHP,然后利用KeYmaera进行自动验证。转换时首先消除顶层Mode具有的层次性,转换后得到的模型称为FlatMode,然后根据FlatMode和QHP之间宏观语义以及元语义的一致性确定转换规则,然后利用ATL(ATLASTransformation Language)语言描述转换规则,实现FlatMode模型到QHP媒介模型的转换,最后利用基于模板的转换方法实现QHP媒介模型到QHP代码的转换。
CPS的网络结构尤其是由移动物理设备组成的自组织网络的结构是动态变化的。控制CPS网络结构动态变化对CPS关键属性如:实时性、安全性等的影响对于CPS来说至关重要。因此CPS需要根据网络结构和状态维数的变化动态的调整***的行为,以确保***关键属性的保持,这种特性称为自适应性。
发明内容
技术问题:本发明的目的是提供一种基于HybridUML和定理证明的CPS自适应性验证方法,主要用于将形式化验证方法应用于以UML作为规约语言的标准***开发过程。该发明可以使得开发者在***开发的早期阶段发现错误,从而极大地降低***开发的风险。
技术方案:本发明的方法的思想是将HybridUML规约转换为定理证明器KeYmaera的输入-QHP,然后利用KeYmaera进行自动验证。转换时,首先消除顶层Mode具有的层次性,转换后得到的模型称为FlatMode,然后根据FlatMode和QHP之间宏观语义以及元语义的一致性确定转换规则,然后利用ATL(ATLASTransformation Language)语言描述转换规则,实现FlatMode模型到QHP媒介模型的转换,最后利用基于模板的转换方法实现QHP媒介模型到QHP代码的转换。
本发明提出的基于HybridUML和定理证明的CPS自适应性验证方法具体步骤如下:
一种基于HybridUML和定理证明的CPS自适应性验证方法,包括如下步骤:
步骤1)根据所选CPS属性的特点,导出应该描述的CPS特征,并选择能够充分描述***特征的Hybrid UML建模视图对***进行建模;
对HybridUML进行了语法和语义扩展,使其表现量化特性;
步骤2)给出所选Hybrid UML建模视图和QHP的元模型形式化描述;元模型是对建模语言准确和显式的描述,定义了模型语言的语法和语义;
步骤3)转换时首先消除顶层Mode具有的层次性,转换后得到的模型称为FlatMode,然后根据FlatMode和QHP之间宏观语义以及元语义的一致性确定转换规则,然后利用ATL(ATLAS Transformation Language)语言描述转换规则,实现FlatMode模型到QHP媒介模型的转换;
为了弥补Mode模型与QHP代码之间的抽象鸿沟,在转换时产生一个媒介模型,它包含了生成QHP代码的所有信息;
步骤4)使用自定义模板语言描述QHP媒介模型到QHP代码的转换;主模板规则调用模板规则IBS2QHPCode、DTS2QHPCode和CTS2QHPCode分别实现QHP媒介模型初始化块、离散变迁集合、连续变迁集合的格式化输出,并调用模板规则Cycle2Star输出QHP代码是否可以循环执行标志符*;
步骤5)根据步骤3和步骤4,将HybridUML模型转换为QHP代码。
步骤6)然后结合生成的QHP代码以QdL公式的形式规约属性,并利用KeYmaera进行自动验证,得出验证结果,并结合验证结果对验证方法进行有效性评估;QdL属性公式的推理验证过程采用相继式演算Sequent Calculus作为基本证明***,验证过程将属性公式作为结论,并将其置于整个演算过程的最底层,自下而上根据QdL演算规则进行演算,如果属性满足,则推理过程以*结束,否则给出属性公式满足时应该满足的前置条件。
步骤3)和步骤4)定义的HybridUML状态机模型到QHP代码的转换是本发明的核心内容,并且本发明在步骤4)中提出了一种基于模板的代码生成方法,并给出了其语法和语义解释。
有益效果:经过大量实例分析,本发明提出的基于HybridUML和定理证明的自适应性验证方法可以很好的应用于基于UML的标准***开发过程,验证***的自适应属性,该发明极大地降低了***开发者进行***验证的难度,从而很大程度上降低了***开发的风险。
附图说明
图1是扩展Classes::Kernel::Constraint
图2是扩展Classes::Kernel::Expression
图3是扩展CommonBehaviors::Comunications::Event
图4是扩展CommonBehaviors::Comunications::ChangeEvent
图5是继承ModeUpdateActivity
图6是HybridUML层次混合状态机Mode元模型类图
图7是FlatMode元模型类图
图8是QHP媒介模型元模型类图
图9是智能交通***Mode建模
图10是智能交通***QHP表示
图11是模型转换框架
图12是CPS自适应性验证框架
附表1基于ATL的Mode模型到QHP媒介模型的转换涉及的相关规则
附表2基于自定义模板语言的QHP媒介模型到QHP代码的相关模板规则
附表3FlatMode与QHP媒介模型之间元模型的语义对应关系
附表2基于自定义模板语言的QHP媒介模型到QHP代码的相关模板规则
表3FlatMode与QHP媒介模型之间元模型的语义对应关系
FlatMode元类及语义 | 对应的QHP媒介模型元类及语义 | 对应的转换规则 |
FlatMode:平铺状态机 | QHP:QHP媒介模型 | Mode2QHP |
EntryStep:初始化步 | QHPInitialization:初始化单元 | ES2QHPI |
InternalStep:离散变迁步 | QHPDTransition:离散变迁 | IS2QHPDT |
ContinuousStep:连续变迁步 | QHPCTransition:连续变迁 | CS2QHPCT |
StateConfig:状态配置 | QHPState:状态 | ModeSC2QHPS |
FlatMode::TriggerEvent:事件 | QHP::TriggerEvent:事件 | ModeTE2QHPTE |
FlatMode::ModeActivity:动作 | QHP::QHPAction:动作 | ModeQUA2QHPQUA |
FlatMode::Constraint:约束 | QHP::Constraint:约束 | ModeC2QHPC |
FlatMode::Expressionn:表达式 | QHP::Expression:表达式 | ModeE2QHPE |
FlatMode::Vertex:抽象结点 | QHP::QHPVertex:抽象结点 | ModeV2QHPV |
FlatMode::ModePseudostate:伪状态 | QHP::QHPPseudostate:伪状态 | ModeP2QHPP |
FlatMode::NewObjectEvent:新结点事件 | QHP::NewObjectEvent:新结点事件 | TE2QHPNOE |
FlatMode::QChangeEvent:布尔事件 | QHP::QChangeEvent:布尔事件 | TE2QHPQCE |
QUpdateActivity:量化更新动作 | QUpdateAction:量化更新动作 | ModeQUA2QHPQUA |
具体实施方式
下面结合附图与具体实施方式对本方法进一步什么如下:
步骤1).根据所选CPS属性的特点,导出应该描述的***特征,并选择恰当的Hybrid UML建模视图对***进行建模,如果现有视图不完全适用,则根据UML语言的扩展机制进行扩展;鉴于本发明选择的自适应性属性的特殊性,本发明对HybridUML进行了语法和语义扩展,使其充分展现CPS网络节点数的动态变化特征。所有扩展如下:
①为了适应CPS网络结点数的动态变化,本发明对Constraint进行了量化扩展,量化约束(QuantifiedConstraint)包括量化微分约束,如量化不变量约束,如far(i,j)表示个体i和j的关系,是一个布尔表达式,C表示类别,叹号表示该类别实际活动结点的集合。扩展如图1所示。
②为了表达CPS网络结点数目的动态变化,对表达式进行了量化扩展。量化表达式包括:量化微分表达式(QDifferentialExpression),如量化代数表达式(QAlgebraicExpression),如量化布尔表达式(QBooleanExpression),如以及New表达式(NewObjectExpression),如n:=New C。扩展如图2所示。
③NewObjectEvent用于表现CPS网络中新结点的出现事件,内部有一个表达该事件的NewObjectExpression,如n:=New C,n为新CPS结点的标识符,New为结点生成操作符,C为结点类别。扩展如图3所示。
④ChangeEvent的扩展同样是为了刻画CPS结点数的动态变化,扩展后的QChangeEvent内部有一个量化布尔表达式(QBooleanExpression),表示事件触发的条件,扩展如图4所示。
⑤QUpdateActivity用于对所有活动CPS结点的离散变量进行更新,内部有一个QAlgebraicExpression,用于表达具体的赋值行为,如将所有C类的活动结点的变量x设为a。扩展如图5所示。
步骤2).给出所选Hybrid UML建模视图和QHP元模型的形式化描述;元模型是对建模语言准确、显式的描述,定义了模型语言的抽象语法和语义。
HybridUML状态机图Mode的抽象元模型以UML类图形式表示,如图6所示,Mode表示层次混合状态机,也代表状态,内部包含各种约束,用于刻画连续变迁,ModeTransition代表离散变迁,由事件(Mode!TriggerEvent)、守护条件(Mode!Constraint)以及动作(ModeActivity)组成。ModePseudostate代表伪状态控制点,Mode!TriggerEvent表示触发变迁的事件,包括Mode!NewObjectEvent和Mode!QChangeEvent,Mode!Constraint代表各种约束,ModeActivity代表离散变迁发生时伴随发生的动作,Mode!Expression代表各种表达式,类别包括New表达式、量化微分表达式、量化代数表达式以及量化布尔表达式。为了精确描述转换,下面给出Mode中主要元类及辅助概念的形式化描述:
定义1.Mode=<ES,XS,VS,SM,Cons,T>;ES为入口控制点集合,XS为出口控制点集合,VS为变量集合,SM为子Mode集合,Cons是约束集合,包括量化微分约束和量化不变量约束,T是变迁(ModeTransition)集合。没有父Mode的Mode称为顶层Mode,没有子Mode的Mode称为叶Mode。
定义2.ModeTransition=<sp,e,g,as,tp>,sp是起始控制点,e是变迁触发事件(TriggerEvent),g为守护条件(Constraint),as为动作序列(ModeActivity),tp为目标控制点。离散变迁分三类:入口变迁(EntryTransition sp∈E),内部变迁(InternalTransition sp∈XSM,tp∈ESM),出口变迁(ExitTransition tp∈X)。
定义3.Mode是层次混合状态机,当它处于活动状态时,实际上会有多个Mode处于活动状态,当前的活动“状态”实际上是一条路径,从顶层Mode开始递归直到最底层活动叶Mode,这条状态路径称为状态配置(State ConfigurationSC)。由于Mode并不支持并发,因此每一时刻顶层Mode只有一个SC处于活动状态,由唯一活动叶Mode标识。
定义4.Mode获得控制通过EntryStep实现,Mode的EntryStep由其直接子Mode的EntryStep和Mode到该子Mode的EntryTransition组成,实际上是一条路径,其终点是即将成为活动子Mode的叶Mode.EntryStep=<ip,as,tm>,其中i代表Mode的入口点,as代表路径上所有EntryTransition的动作序列,tm代表目标叶Mode。
定义5.Mode放弃控制通过ExitStep实现,Mode的ExitStep由其直接子Mode的ExitStep和该子Mode到Mode的ExitTransition组成,ExitStep实际上是一条路径,其起点是当前活动叶Mode,终点是Mode的出口点。ExitStep=<sa,as,x>,其中sa代表当前活动叶Mode,as代表路径上所有ExitTransition包含的动作序列,x是Mode的出口点。
定义6.Mode进行InternalTransition时,会在状态配置之间切换,其发生伴随着活动子Mode的ExitStep以及InternalTransition目标控制点所在子Mode的EntryStep,三者构成一条路径称为InternalStep,InternalStep=<sm,e,g,as,tm>,其中sm是ExitStep的起始叶Mode,e为内部变迁上的事件,g是三者守护条件的顺序集合,as是三者动作序列的顺序集合,tm代表EntryStep的目标叶Mode,Mode的InternalStep包含其子Mode的InternalStep。
定义7.当Mode处于某活动状态配置时,会根据当前活动状态配置的约束对变量进行连续更新,称为ContinuousStep=<sc,flows,invs>,sc代表当前活动状态配置,flows代表量化微分约束,invs代表量化不变量约束。这些约束包括Mode及其所有活动子Mode的约束。
通过定义顶层Mode的EntryStep,ExitStep,InternalStep以及ContinuousStep,顶层Mode所具有的层次性实际上已经被消除,转换后得到的模型称为FlatMode=<EntrySteps,InternalSteps,ContinuousSteps,CycleSymbol,SC>。Mode的层次特性仅仅是为了降低***设计的复杂度以及避免子Mode事件处理动作的重复,一般情况下顶层Mode可以在保持语义的情况下,通过消除层次(Flat操作)转换为简单平面状态机。现有的理论研究认为层次状态机的整体语义与进行Flat操作之后得到的平铺状态机的语义应该是相同或至少等价的,因此顶层Mode语义与FlatMode语义是一致的。FlatMode实际上作为源模型初步处理之后的中间模型,通过对FlatMode中所有模型元素的归纳以及重构,得出其元模型,如图7所示,其大部分元类均继承HybridUML中Mode的元类。
QHP媒介模型元模型同样以UML类图的形式进行表示,如图8所示。QHP表示量化混合程序媒介模型,由初始化单元(QHPInitialization)集合、离散变迁(QHPDTransition)集合以及连续变迁(QHPCTransition)集合组成QHPState表示QHP的状态,QHPInitialization表示初始化单元,完成QHP的初始化工作,由QHP的程序入口点、活动(QHPAction)序列以及目标状态(QHPState)组成。QHPDTransition表示离散变迁,由源状态(QHPState)、事件(QHP!TriggerEvent)、守护条件(QHP!Constraint)、活动(QHPAction)序列以及目标状态组成。QHPCTransition表示当前活动状态下的连续变迁,QHP!TriggerEvent表示触发变迁的事件,包括QHP!NewObjectEvent以及QHP!QChangeEvent,QHP!Constraint代表各种约束,包括量化微分约束和量化不变量约束,QHPAction代表离散变迁上的动作,QHP!Expression代表各种表达式,包括New表达式(QHP!NewobjectExpression)、量化微分表达式(QHP!QDifferentialExpression)、量化代数表达式(QHP!QAlgebraicExpression)以及量化布尔表达式(QHP!QBooleanExpression)。为了精确描述转换,下面给出QHP相关元类形式化描述:
定义8.媒介模型QHP=<IBS,DTS,CTS,Cycle,S>,IBS代表初始化单元集合,完成QHP的初始化工作,DTS是离散变迁集合,CTS是连续变迁集合,Cycle代表QHP是否可循环执行,S为状态集合。
定义9.初始化单元QHPInitialization=<IPS,IAS,TS>,其中,IPS代表QHP的程序入口点,MS代表初始化动作序列,TS代表初始目标状态。
定义10.离散变迁QHPDTransition=<SS,E,G,AS,TS>,其中,SS为变迁的源状态,E是触发变迁的事件,G代表变迁触发的守护条件,AS是变迁发生时的动作序列,TS为变迁的目标状态。
定义11.连续变迁QHPCTransition=<S,flows,invs>,S代表活动状态配置,flows和invs代表微分和不变量约束。
为了区别源元模型和目标元模型的同名元类,在每个同名元类前使用ATL区别元模型类别的符号!,叹号前放置元类的元模型类别。
步骤3).图11所示为对象管理组织提出的标准模型转换框架,如图11所示模型转换总是在元模型层定义,而在模型层执行。转换规则通常用模型转换语言描述,其集合构成了转换定义。
顶层Mode语义与FlatMode语义是一致的,因此转换过程中只需保证FlatMode与QHP媒介模型的语义一致性即可。
宏观语义从语义表达角度讨论语言对模型含义的描述和表达,侧重于保障模型需满足的行为动作的一致性。从模型转换角度来看,目标模型与源模型在宏观语义上的一致性体现了模型转换的基本原则,也是判断模型转换正确性的重要依据。FlatMode模型的形式化描述:FlatMode=<EntrySteps,InternalSteps,ContinuousSteps,CycleSymbol,SC>,QHP媒介模型形式化描述:QHP=<IBS,DTS,CTS,Cycle,S>,从宏观上看,二者语义结构一致。
FlatMode模型包含EntryStep集合EntrySteps用于执行初始化,而QHP媒介模型同样包含一个初始化单元集合IBS,用于执行初始化;FlatMode包含了InternalStep和ContinuousStep的集合的语义,其继承了HybridUML的层次混合状态机语义,整体上描述了离散变迁与连续变迁的交替,模型在任意时刻或者即将进行离散变迁,或者处于某一状态进行连续变化,QHP媒介模型包含了离散变迁集合DTS和连续变迁集合CTS,同样描述了离散变迁和连续变迁的交替;InternalStep完成顶层Mode状态配置之间的转换,从层次状态机整体角度看,活动状态配置相当于Mode的活动“状态”,因此InternalStep与QHPDTranstiton状态变迁语义等同,二者对应;活动状态配置相当于Mode的活动“状态”,因此处于活动状态配置下的ContinuousStep与活动状态下的QHPCTransition的连续变迁语义相同,因此二者对应;CycleSymbol属性描述FlatMode中的InternalSteps是否存在循环路径,Cycle属性描述了QHP中的离散变迁集合构成的变迁路径是否构成环,二者语义等同;FlatMode包含状态配置集合SC,而层次状态机的状态配置相当于状态,因此与QHP媒介模型包含的状态集合S语义等同;综上,FlatMode与QHP媒介模型宏观语义一致,也间接表明了顶层Mode模型与QHP模型的宏观语义一致性。根据宏观语义一致性的分析,得出以下转换规则:
FlatMode::FlatMode→QHP::QHP
FlatMode::EntryStep→QHP::QHPInitialization
FlatMode::InternalStep→QHP::QHPDTransition
FlatMode::ContinuousStep→QHP::QHPCTransition
FlatMode::CycleSymbol→QHP::Cycle
FlatMode::SC→QHP::S
如图11所示,源模型到目标模型的映射实际为源语言(源元模型)和目标语言(目标元模型)之间的映射,表示为一个三元组为(M,S,T),记作M:S→T,其中,S和T为形式化语言概念集合,即元类集合。M实际上构成了模型转换的规则集合,M=∑R,R为单一转换规则,M(A)表示概念集合A由规则集M映射后的结果集合。自然语言机器翻译研究的理论表明,实现不同语言之间正确转换的前提是源语言和目标语言具有相同或相似的语义表达特性。应用于模型映射的形式化语言S和T应满足如下约束:S和T在语义上的对等,即S的概念集在T中具有语义对等的概念集,反之亦然。
本发明为了保证FlatMode与QHP媒介模型的概念语义一致性,对源语言和目标模型语言形式化概念集进行了重构,扩展了相应的概念,即元模型,使得两种语言在语义上实现了对等。概念集重构和扩展的方式采用了UML语言profile机制和基于MOF的语言定义机制。如图7,8所示为FlatMode和QHP媒介模型的元模型。表3所示为FlatMode与QHP媒介模型之间元模型的语义对应关系。通过表格,可以清楚的发现FlatMode元类与QHP媒介模型元类是一一对应的,因此源语言和目标语言的概念集语义对等,即满足元语义一致性。
主规则调用的相关转换规则见附表1,主规则见下表,主转换规则完成顶层Mode模型即FlatMode模型,到QHP媒介模型的转换。entrypoint标明Mode2QHP为转换程序执行的入口,from块为源模式(Source Pattern),后置条件用于匹配源模型元素,在Mode2QHP中源模式的条件[m.isTopLevelModel=true]确保匹配顶层Mode模型,to块为目标模式(Target Pattern),用于生成目标模型元素。do块为命令性语句块,可以调用模板规则和调用规则(CalledRules)。
主转换规则-Mode2QHP
FlatMode的三个属性:EntrySteps、InternalSteps和ContinuousSteps,通过利用ATL以属性helper的形式在顶层Mode上下文中定义得到,三者类型分别为EntryStep、InternalStep和ContinuousStep的集合,QHP媒介模型的三个属性IBS、DTS和CTS,类型分别为QHPInitialization、QHPDTransition和QHPCTransition的集合。集合之间的转换通过集合元素之间的转换完成:EntryStep转换为QHPInitialization,InternalStep转换为QHPDTransition,ContinuousStep转换为QHPCTransition。FlatMode具有属性CycleSymbol,用以标识其InternalSteps是否存在循环路径,其类型为原始数据类型,可以直接转换为QHP媒介模型的属性Cycle。QHP媒介模型p生成后,在规则Mode2QHP的命令性语句块中调用模板规则IModel2Code将媒介模型p转换为QHP代码。
步骤4).使用自定义模板语言描述QHP媒介模型到QHP代码的转换。
本发明为了实现将QHP媒介模型转换为QHP代码的转换,基于已有的模板方法并结合转换需要,提出了一种新的模板规则语法。其语法如上表所示:rule_name为模板规则的名称,一个模板规则主要包括两个部分:LHS(left-handside)和RHS(right-hand side),LHS用于查询和访问源模型而RHS用于扩展目标代码。from关键字相当于LHS,in_name代表源模型元素名称,in_type是类型,condition用于实现对源模型元素的过滤和匹配;to关键字相当于RHS,用于生成目标代码,to中可以调用其它模板规则以及java命令性语句。
QHP的代码格式如下表所示,主要包含四个部分:初始化单元集合、离散变迁集合和连续变迁集合以及标志程序是否可多次执行的星号标志符.初始化单元输出格式为:(formatedAction(IAS);q:=TS.name),模板规则formatedAction实现其所包含的动作序列格式化顺序输出,每个动作的输出格式为(?precondition;BodyExpression;?postCondition),相邻初始化单元使用符号∪连接,初始化单元集合以分号结束。离散变迁以(?q=SS.name∧E.eventExpression;?G.expr;formatedAction(AS);q:=TS.name)的格式输出,离散变迁之间使用符号∪连接;连续变迁以(?q=S.name;formatedFlows(flows)&formatedInvs(invs))的格式输出,连续变迁之间使用符号∪连接;模板规则formatedFlows实现将flows中每一个流约束以“,”间隔输出,模板规则formatedInvs实现将invs中的每一个不变量约束以“∧”间隔输出。QHP是否多次执行由QHP的属性Cycle决定,如果Cycle为true,则输出星号“*”,否则没有任何输出。
QHP模型转换为QHP代码涉及的相关模板规则如附表2所示,主模板规则见下表。主模板规则调用IBS2QHPCode、DTS2QHPCode和CTS2QHPCode分别实现QHP媒介模型初始化块、离散变迁集合、连续变迁集合的格式化输出,并调用模板规则Cycle2Star输出QHP代码是否可以循环执行标志符*。
步骤5).根据步骤3和步骤4,将实例HybridUML Mode模型转换为QHP代码。本发明以验证智能交通***的碰撞避免属性为例说明本发明的应用。智能交通***ITS(Intelligent Transportation System)以Platoon为单位组织汽车,每个Platoon内部有一定数量的汽车,而且Platoon中的汽车数目是动态化的,导致***网络结构和维数发生动态变化。图9所示为智能交通***自适应碰撞避免协议的Mode模型图形化表示。图10所示为Mode转换之后得到的QHP代码。
顶层Mode即FlatMode的EntryStep为<init,driveBeforeNew>,按照附表1中的转换规则ES2QHPI将其转换为QHPInitialization,然后按照附表2中的模板规则IBS2QHPCode生成QHP代码:q:=driveBeforeNew;FlatMode包含InternalStep: 按照附表1所示的转换规则IS2QHPDT将其转换为QHPDTransition,然后按照附表2中转换规则DTS2QHPCode生成QHP代码: FlatMode包含两个ContinuousStep: 按照附表1中转换规则CS2QHPCT转换为QHPCTransition,然后按照附表2中板规则CTS2QHPCode生成相应代码: 顶层Mode具有helper CycleSymbol,其类型为原始类型,可以将其直接映射为QHP媒介模型的Cycle属性,然后根据附表2所示模板规则Cycle2Star输出程序可循环的标示星号“*”。整合之后的QHP代码如图10所示。F(i,j)是以下公式的缩写:其中x是位移,v是速度,a是加速度。
步骤6).最后结合生成的QHP代码以QdL公式的形式规约属性,并利用KeYmaera进行自动验证,得出验证结果,并结合验证结果对验证方法进行有效性评估。KeYmaera内部按照变迁语意对QHP代码进行了优化,图10代码优化后为: 简化后的代码用M*代替。
本发明主要验证智能交通***的自适应属性,本例验证ITS出现新的汽车成员时仍然避撞,属性的规约以QdL逻辑公式的形式表达,公式的前提和结论可以是普通或者量化的布尔表达式,公式中以“[]”包围的部分为QHP代码,[QHP代码]称为模态(modality),模态用于对***进行建模,表示***所有可能的可达状态。令 本例中验证的属性规约为:
推理验证过程
QdL属性公式的推理验证过程采用相继式演算(Sequent Calculus)作为基本证明***。验证过程将属性公式作为结论,并将其置于整个演算过程的最底层,自下而上根据QdL演算规则进行演算,如果属性满足,则推理过程以*结束,否则给出属性公式满足时应该满足的前置条件。上表所示为KeYmaera内部的验证过程,主推理步骤分为三个分支,通过对***组成部分的属性验证实现对整体***的属性验证,体现了组合验证的思想。各分支均顺利结束表明:ITS在新汽车加入时仍满足碰撞避免属性即自适应碰撞避免属性满足。
Claims (2)
1.一种基于HybridUML和定理证明的CPS自适应性验证方法,其特征在于包括如下步骤:
步骤1)根据所选CPS属性的特点,导出应该描述的CPS特征,并选择能够充分描述***特征的Hybrid UML建模视图对***进行建模;
对HybridUML进行了语法和语义扩展,使其表现量化特性;
步骤2)给出所选Hybrid UML建模视图和QHP的元模型形式化描述;元模型是对建模语言准确和显式的描述,定义了模型语言的语法和语义;
步骤3)FlatMode模型到QHP媒介模型的转换时首先消除顶层Mode具有的层次性,转换后得到的模型称为FlatMode,然后根据FlatMode和QHP之间宏观语义以及元语义的一致性确定转换规则,然后利用ATL语言描述转换规则,实现FlatMode模型到QHP媒介模型的转换;
为了弥补Mode模型与QHP代码之间的抽象鸿沟,在转换时产生一个媒介模型,它包含了生成QHP代码的所有信息;
步骤4)使用自定义模板语言描述QHP媒介模型到QHP代码的转换;主模板规则调用模板规则IBS2QHPCode、DTS2QHPCode和CTS2QHPCode分别实现QHP媒介模型初始化块、离散变迁集合、连续变迁集合的格式化输出,并调用模板规则Cycle2Star输出QHP代码是否可以循环执行标志符*;
步骤5)根据步骤3和步骤4,将HybridUML模型转换为QHP代码。
步骤6)然后结合生成的QHP代码以QdL公式的形式规约属性,并利用KeYmaera进行自动验证,得出验证结果,并结合验证结果对验证方法进行有效性评估;QdL属性公式的推理验证过程采用相继式演算Sequent Calculus作为基本证明***,验证过程将属性公式作为结论,并将其置于整个演算过程的最底层,自下而上根据QdL演算规则进行演算,如果属性满足,则推理过程以*结束,否则给出属性公式满足时应该满足的前置条件;
所述:
CPS是信息物理融合***;
QHP是定理证明器KeYmaera的输入;
Qdl是基于量化微分动态逻辑;
KeYmaera是定理证明器;
Mode表示层次混合状态机,也代表状态,内部包含各种约束,用于刻画连续变迁;
IBS2QHPCode是将QHP媒介模型初始化块以指定代码格式输出;
DTS2QHPCode是将QHP媒介模型离散变迁集合以指定代码格式输出;
CTS2QHPCode是将QHP媒介模型连续变迁集合以指定代码格式输出;
Cycle2Star输出程序是否可多次执行标识。
2.根据权利要求1所述的基于HybridUML和定理证明的CPS自适应性验证方法,其特征是步骤1)中,对HybridUML进行了语法和语义扩展如下:
a、对Constraint进行了量化扩展,用于表达CPS网络结点数的动态变化特性,量化约束QuantifiedConstraint包括:量化微分约束和量化不变量约束;
b、对表达式进行了量化扩展,量化表达式类别包括:量化微分表达式QDifferentialExpression、量化代数表达式QAlgebraicExpression、量化布尔表达式QBooleanExpression及量化New表达式NewObjectExpression;New表达式用于表现CPS网络中出现新结点事件,New表达式内部有一个表达该事件的NewObjectExpression;
c、扩展NewObjectEvent用于表现CPS网络中新结点的出现事件,内部有一个表达该事件的NewObjectExpression,如n:=New C,n为新CPS结点的标识符,New为结点生成操作符,C为结点类别;
d、对ChangeEvent进行量化扩展,扩展后的元类QChangeEvent内部有一个QBooleanExpression,来表示事件触发的条件;
e、QUpdateActivity用于对所有活动CPS结点的离散变量进行更新,内部有一个QAlgebraicExpression,用于表达具体的赋值行为。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110338039.0A CN102426521B (zh) | 2011-10-28 | 2011-10-28 | 基于HybridUML和定理证明的CPS自适应性验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110338039.0A CN102426521B (zh) | 2011-10-28 | 2011-10-28 | 基于HybridUML和定理证明的CPS自适应性验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102426521A CN102426521A (zh) | 2012-04-25 |
CN102426521B true CN102426521B (zh) | 2014-04-16 |
Family
ID=45960511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110338039.0A Expired - Fee Related CN102426521B (zh) | 2011-10-28 | 2011-10-28 | 基于HybridUML和定理证明的CPS自适应性验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102426521B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699743B (zh) * | 2013-12-25 | 2017-01-25 | 西北工业大学 | 一种基于cps‑adl模型向混合程序转换的cps建模与验证方法 |
CN103699762B (zh) * | 2014-01-15 | 2016-09-28 | 苏州大学 | 一种基于统计模型检测的cps属性验证方法 |
CN104932421B (zh) * | 2015-06-19 | 2017-06-27 | 华中科技大学 | 一种基于指令域分析的数控机床工作过程cps建模方法 |
CN105426176B (zh) * | 2015-11-03 | 2018-05-18 | 南京航空航天大学 | 一种基于信息隐藏的图转换***模型检测方法 |
CN107766943A (zh) * | 2016-08-15 | 2018-03-06 | 中国科学院软件研究所 | 一种cps环境下的知识构件自动化交互方法 |
CN106708525A (zh) * | 2016-12-27 | 2017-05-24 | 西安电子科技大学 | 一种基于Coq的MSVL程序验证方法 |
CN107561932B (zh) * | 2017-07-25 | 2019-12-10 | 东南大学 | 基于微分动态逻辑的cps防碰撞控制方法 |
CN116450992A (zh) * | 2018-10-09 | 2023-07-18 | 创新先进技术有限公司 | 非线性规划问题的处理方法及装置 |
CN109961172B (zh) * | 2018-12-28 | 2023-11-03 | 东南大学 | 一种基于统计模型检验的cps稀有事件概率预测方法 |
CN112214401B (zh) * | 2020-09-23 | 2023-05-09 | 华东师范大学 | 一种基于模型检测的标准模型分析方法 |
CN113934142B (zh) * | 2021-10-21 | 2024-03-19 | 江南大学 | 非线性离散***无模型自适应滑模约束事件触发控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006235899A (ja) * | 2005-02-24 | 2006-09-07 | Nippon Telegr & Teleph Corp <Ntt> | Umlモデル作成支援方法及びその装置 |
US7509629B2 (en) * | 2004-05-14 | 2009-03-24 | International Business Machines Corporation | Method for system and architecture design using unified modeling language (UML) |
-
2011
- 2011-10-28 CN CN201110338039.0A patent/CN102426521B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509629B2 (en) * | 2004-05-14 | 2009-03-24 | International Business Machines Corporation | Method for system and architecture design using unified modeling language (UML) |
JP2006235899A (ja) * | 2005-02-24 | 2006-09-07 | Nippon Telegr & Teleph Corp <Ntt> | Umlモデル作成支援方法及びその装置 |
Non-Patent Citations (6)
Title |
---|
André Platzer.Differential Dynamic Logic for Hybrid Systems.《Differential Dynamic Logic for Hybrid Systems》.2008,第41卷(第2期),第143-189页. |
André Platzer等.KeYmaera: A Hybrid Theorem Prover for Hybrid Systems (System Description).《Lecture Notes in Computer Science》.2008,第5195卷第171-178页. |
Differential Dynamic Logic for Hybrid Systems;André Platzer;《Differential Dynamic Logic for Hybrid Systems》;20080801;第41卷(第2期);第143-189页 * |
KeYmaera: A Hybrid Theorem Prover for Hybrid Systems (System Description);André Platzer等;《Lecture Notes in Computer Science》;20080815;第5195卷;第171-178页 * |
Kirsten Berkenkoetter等.The HybridUML profile for UML 2.0.《International Journal on Software Tools for Technology Transfer》.2006,第8卷(第2期),第167-176页. |
The HybridUML profile for UML 2.0;Kirsten Berkenkoetter等;《International Journal on Software Tools for Technology Transfer》;20060401;第8卷(第2期);第167-176页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102426521A (zh) | 2012-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102426521B (zh) | 基于HybridUML和定理证明的CPS自适应性验证方法 | |
Petnga et al. | An ontological framework for knowledge modeling and decision support in cyber-physical systems | |
Guo et al. | Consistency maintenance for evolving feature models | |
Dragomir et al. | Compositional semantics and analysis of hierarchical block diagrams | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN102270130A (zh) | 一种运行时自适应软件体系结构的形式化描述方法 | |
Pawletta et al. | Ontology-Assisted System Modeling and Simulation within MATLAB/Simulink. | |
Lu et al. | Zen-CC: An automated and incremental conformance checking solution to support interactive product configuration | |
Foulis et al. | The empirical logic approach to the physical sciences | |
González-Huerta et al. | A multimodel for integrating quality assessment in model-driven engineering | |
Bae et al. | Verifying ptolemy ii discrete-event models using real-time maude | |
Rupanov et al. | Employing early model-based safety evaluation to iteratively derive E/E architecture design | |
Manolios et al. | A model-based framework for analyzing the safety of system architectures | |
Todorov | Automotive embedded software design using formal methods | |
Salay et al. | Managing related models in vehicle control software development | |
Yeoh et al. | Construction method models using context aware construction requirements for automated schedule generation | |
Duprez et al. | Towards a semantic approach of MBSE frameworks specification | |
Pawletta et al. | A framework for the metamodeling of multi-variant systems and reactive simulation model generation and execution | |
Schwarz et al. | Towards an integrated sustainability evaluation of energy scenarios with automated information exchange | |
Heinzl | Methods for hybrid modeling and simulation-based optimization in energy-aware production planning | |
Zschaler et al. | Towards using constructive type theory for verifiable modular transformations | |
Santos et al. | Probabilistic ontologies incremental modeling using UnBBayes | |
Semeráth | Formal Validation and Model Generation for Domain-Specific Languages by Logic Solvers | |
Campanile et al. | Merging Model-Based and Data-Driven Approaches for Resilient Systems Digital Twins Design | |
Evora et al. | Tafat: A framework for developing simulators based on Model Driven Engineering |
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: 20140416 Termination date: 20161028 |
|
CF01 | Termination of patent right due to non-payment of annual fee |