CN109739740A - 一种aadl模型组合形式化验证方法 - Google Patents
一种aadl模型组合形式化验证方法 Download PDFInfo
- Publication number
- CN109739740A CN109739740A CN201811396551.9A CN201811396551A CN109739740A CN 109739740 A CN109739740 A CN 109739740A CN 201811396551 A CN201811396551 A CN 201811396551A CN 109739740 A CN109739740 A CN 109739740A
- Authority
- CN
- China
- Prior art keywords
- model
- tasm
- node
- uppaal
- aadl
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种AADL模型组合形式化验证方法,该方法通过将UPPAAL与AGREE相结合的方式完成对AADL模型的验证,通过Eclipse插件开发技术实现了AADL模型到UPPAAL模型的自动转换,并实现了了AADL组合验证窗口,提供一个验证需求的界面,一个黑盒的验证性质输入、验证结果自动输出界面,和一个AGREE附件自动生成界面,以此方便工程师的使用。
Description
技术领域
本发明涉及到一种AADL模型组合形式化验证方法,尤其涉及一种基于AADL模型转换到UPPAAL模型的方法和基于UPPAAL和AGREE的AADL模型组合形式化验证方法。
背景技术
随着嵌入式软件在航空电子、汽车工业、通信、核工业等安全关键领域的广泛应用,这类嵌入式系统必须保证系统的可靠性、安全性等相关性质,这类系统被称为安全关键系统(Safety Critical System)。保障这类系统的安全性、可靠性已经成为当前软件工程研究领域一个非常重要的课题。
安全关键实时系统的设计与开发涉及软件系统和硬件系统。传统的安全关键系统开发过程中,基本是采用手工编写的方式或者是由文档驱动的方式进行开发,这样会导致人力和时间成本较高。而且,早期开发阶段缺少验证工作,这会导致后期开发阶段或者使用阶段出现一些需要大量时间才能发现的错误。此外,采用手工编码的开发方式会在软件开发过程中增大产生错误的风险。所以模型驱动开发方法成为了安全关键系统软件设计和开发的一种重要手段。
美国汽车工程师协会SAE(Society of Automotive Engineers)在MetaH、HOOD、UML、ADL的基础上,提出嵌入式系统体系结构分析与设计语言AADL(ArchitectureAnalysis and Design Language),并发布为SAE AS5506标准。AADL语言与之对应地提供了软件体系结构、运行时环境以及硬件体系结构的建模概念。
TASM(Timed Abstract State Machine)基于抽象状态机ASM,广泛应用于软、硬件系统设计和其形式化描述。相比较其它转换的目标语言,TASM能很好地描述功能、时间和资源等行为,其可读性比其它语言更好;TASM支持功能正确性、时间正确性的验证;提供仿真分析工具TASM Toolset进行时间行为和资源行为的分析,并集成了SAT求解机,支持TASM模型的完整性、一致性检查。
UPPAAL是由瑞典Uppsala大学和丹麦Aazborg大学联合开发的模型检测工具。它以R.Alur和Dill提出的时间自动机(Timed Automata)作为形式化理论基础,使用计算树逻辑(CTL,Computation Tree Logic),对以时间自动机网络为模型的实时系统进行模拟和模型检测。UPPAAL模型检测工具中采用的形式化方法是时间自动机形式化方法,也被称作Alur-Dill自动机。时间自动机是在有限状态机上添加了一组时钟值以表示时间的流逝。在时间自动机中,状态变迁是瞬时的,而在状态变迁之间(时间自动机稳定处于某个状态),时间是在不断向前流动的。UPPAAL支持功能正确性、时间正确性、活性、安全性等形式化验证。
系统复杂度的快速和持续增加成为了设计安全关键系统中的一个主要挑战。在近二十年内航空电子领域功能需求呈指数增长,尤其是大规模生产领域。许多标准,例如用于汽车的开放系统架(AUTOSAR)和用于工业自动化的IEC 61131/61499,都是使用基于组件的系统建模方法。基于组件的系统建模方法建立的系统可以通过组合验证进行验证,组合验证提供了一种策略:基于契约(Contract)设计。每个组件表示它可以保证(Guarantee)正确行为的假设(Assume)。
假设保证推理环境AGREE(Assume Guarantee REsoning Environment),它作为一个模型检测工具可以对AADL的模型进行检测。它是一种组合型的、假设——保证风格的模型检测工具。因为它在证明某一层的主属性的时候还考虑使用其它的分给子组件的属性。它在执行组合验证的时候所依据的是每个组件的假设与保证。假设为组件提供了对环境的期望,保证的作用是为组件的行为提供边界。k步归纳(k-induction)是AGREE工具作为模型检查的基础算法。
综上所述,针对AADL模型进行形式化验证的时候,使用UPPAAL进行单构件的验证来确保系统中的构件的功能正确性、时间正确性、活性、安全性等性质,然后使用agree工具在针对整个系统级性质进行模型检查来确保整个系统的系统性质得以满足,完成对整个AADL模型的验证。
发明内容
发明目的:为解决现有技术中存在的问题,本发明的一种AADL模型组合形式化验证方法,通过AADL模型可以转换到UPPAAL模型和使用AGREE验证界面进行AADL模型验证,从而完成AADL模型的功能正确性、时间正确性、活性、安全性等性质的验证。
本发明提供了一种AADL模型组合形式化验证方法,包括以下步骤:
S1:将AADL模型转换到UPPAAL模型;
S2:基于Eclipse插件开发技术和JFace技术实现AADL模型组合形式化验证界面;
S3:将UPPAAL模型与验证界面结合完成对AADL模型的验证,在验证界面生成符合UPPAAL模型应用程序接口要求的xml文件,通过调用UPPAAL模型应用程序接口进行性质验证并返回验证结果到验证界面。
S4:在组合验证界面生成agree annex,然后使用Osate完成AGREE验证。
进一步的,所述S1中将AADL模型转换到UPPAAL模型,包括将AADL模型使用ATL模型转换语言转换为TASM模型和将TASM模型使用ATL模型转换语言转换为UPPAAL模型。
进一步的,所述将AADL模型使用ATL模型转换语言转换为TASM模型,具体为:ATL转换读入一个或几个标准的AADL模型,进行预处理,转换成合适ATL进行转换的xml格式的AADL模型,ATL转换引擎参照AADL元模型和TASM元模型,根据ATL编写的模型转换规则,生成对应ATL格式的TASM模型,然后进行后处理,转换成标准的TASM模型。
进一步的,将TASM模型使用ATL模型转换语言转换为UPPAAL模型,具体为:将标准的TASM模型作为输入,经过预处理后进行ATL模型转换得到UPPAAL模型,在经过后处理得到标准的UPPAAL模型;
其中,所述预处理为:将text类型节点修改为text_a节点,并赋值为text类型节点的值;然后添加xml头格式满足ATL转换的要求;
所述后处理为:将text_a类型节点修改为text节点,删除多余的1abel节点,使模型成为标准的UPPAAL模型。
进一步的,ATL模型转换包括对TASM环境的转换、对TASM抽象机的转换、对TASM规则的转换和对TASM和UPPAAL模型中实例化模板的转换;
所述对TASM环境的转换:env节点存储TASM环境信息节点,包括用户自定义类型及全局变量声明,定义及初始化,对应于UPPAAL模型中的nta节点下辖的用户声明全局变量及通信信道的节点declaration;
所述对TASM抽象机的转换:对于TASM的每个主抽象机,对应生成UPPAAL模型的一个时间自动机模板;
所述对TASM规则的转换:使用ATL调用规则中实现,对于抽象机中的每一个rl节点,对应生成UPPAAL中的模型元素;
所述对TASM实例的转换:conf节点存储了TASM模型中抽象机参数实例化的信息,对应于UPPAAL模型中的nta节点下辖的system节点;入口规则将根据conf节点中对TASM抽象机模板的实例化生成对应的时间自动机模板的声明及实例化。
进一步的,所述对TASM抽象机的转换:对于TASM的每个主抽象机,对应生成UPPAAL模型的一个时间自动机模板,具体的:抽象机中的内部变量声明ivars节点对应生成时间自动机模板中的declaration节点,在该declaration节点添加一个本地时钟clock声明,对于抽象机的构造函数节点“cons”,其下辖节点“cparams”对应生成时间自动机模板的下辖节点“parameters”,其下辖节点“cbody”中的初始化语句对应放置到UPPAAL模型的template的declaration节点中。
进一步的,所述验证界面包括验证需求界面、单构件验证界面和AGREE验证界面;
所述验证需求界面:用于书写验证需求;
所述单构件验证界面:用于进行单构件验证,包括验证性质添加、验证工具选择和验证结果返回;该单构件验证界面实现UPPAAL模型应用程序接口的调用:
所述AGREE验证界面:选择约束针对的构件,定义验证所需要的变量、Contract理论中的假设和保证和定义高级性质,针对选定的构件生成agree annex进行AGREE验证;其中,验证所需要的变量包括等式、常量和性质,所述高级性质包括辅助定理语句、断言语句和提升语句。
进一步的,所述验证性质添加包括:性质名称、性质种类、性质模式;所述性质种类包括:安全性、活性、可达性、死锁;所述性质模式包括存在路径和所有路径、存在状态和所有状态。
有益效果:本发明具有以下优点:
1、将AADL2.0模型的进程、线程、子程序、行为附件转换为TASM模型后可以使用TASMtoolset进行仿真分析,然后把TASM模型转换为UPPAAL模型可以黑盒的进行安全性、活性、可达性等进行分析,完成单独模块的性质分析。
2、使用基于Contract的AGREE验证,针对整个系统级性质进行模型检查确保整个系统的系统性质得以满足,同时避免了状态空间爆炸问题,有效的约减了状态空间,使形式化验证能够应用到实际工程中去。
附图说明
图1:ATL的数据类型组织结构;
图2:AADL模型转换到TASM模型架构;
图3:TASM模型转换到UPPAAL模型架构;
图4:工具流程示意图。
具体实施方式
下面结合附图进一步阐述该发明方法。
本发明涉及到一种AADL模型组合形式化验证方法及相应的工具实现,该工具是基于AADL开源工具OSATE的集成环境并使用Eclipse插件开发技术实现的。用户可以通过使用本工具实现对AADL模型的安全性、活性、死锁性、可达性、和功能性等性质的验证,也可以完成对系统级性质的验证,如可靠性和端到端延时等进行验证。为了方便工程师的对CTL验证性质的书写,增加了验证需求书写界面,添加性质界面,为了方便Agree annex的书写增加了Contract书写界面。自动化的模型转换、黑盒的模型检查器和界面化的性质书写使模型验证成本大大减少。
1)工具总体概述
该AADL模型组合验证工具,基于ATL模型转换语言进行模型转换,ATL的数据类型组织关系详见图1。工具定义了AADL模型到TASM模型的转换规则,定义了TASM模型到UPPAAL模型的转换规则,完成了AADL部分构件到UPPAAL模型的自动转换,详见图2、图3。采用Eclipse插件开发技术和JFace技术实现该工具,整个工具的流程示意图如图4。
2)基于ATL实现AADL模型的自动转换
ATL是一种描述性和命令式的混合语言。理想的方式是只写描述性语句就可以清晰的表达源模型元素与目标模型元素之间的转换关系。与传统的手工转换、硬编码方式相比,可重用性高,能够实现自动转换,ATL数据类型详见图1。
ATL主要包括六种数据类型:
基本数据类型:Boolean类型、Integer类型、Real类型、String类型。支持比较运算符、二元运算符合一元运算符来满足数据操作。
容器数据类型:ATL提供一系列的容器Set、OrderSet、Bag和Sequence,具体而言:
Set:不存在重复元素、无序
OrderedSet:不存在重复元素、元素按顺序排列
Bag:存在重复元素、无序
Sequence:存在重复元素、元素按顺序排列
元组类型:元组数据类型主要是将数据归档化,然后映射到容器中去。
Map类型:Map数据类型是ATL提供的附加类型,它将数值和关键字一一映射,通过关键字可以访问数值。
枚举类型:和其它数据类型不同的是,枚举类型定义在转换规则的源元模型或目标元模型中,枚举类型没有特定操作,目前枚举常量是通过#符号被访问,例如#female。
模型元素类型:模型元素数据类型定义在ATL转换规则的源元模型和目标元模型中,元模型通常定义一系列模型元素(也称为类)。ATL中模型元素通过metamodel!class的形式来表达,其中metamodel表示转换规则中处理的某个元模型,class表示元模型中的模型元素(即,类)。ATL中支持同时处理多个元模型。模型元素有一些特征:属性或者引用,可以通过self.feature的形式访问这些特征。模型元素只能通过ATL规则生成,通过rule中目标模式元素的绑定来对模型元素的特征进行初始化。
3)实现AADL模型到UPPAAL模型的转换
在AADL模型中,主要层次构成分为系统、进程、线程、子程序、BA行为附件、数据构件模块。AADL中构件的表达分为两个部分:类型和实现。一个构件拥有一个类型以及对应的0个、1个或多个实现。构件类型描述对外的功能接口,例如输入输出端口,在我们的工具中这些端口都将会映射为不同作用域下的变量。每个构件都或多或少的会被属于自己的构件特征、连接、流、构件属性、模式、扩展附件所描述。
基于ATL模型转换语言AADL模型转换到TASM模型,整体框架图如图2所示,ATL转换读入一个或几个标准的AADL模型(.aaxl文件),进行预处理,转换成合适ATL进行转换的xml格式的AADL模型,该AADL模型必须符合AADL元模型,ATL转换引擎参照AADL元模型和TASM元模型,根据ATL编写的模型转换规则,生成对应ATL格式的TASM模型(.xml格式),然后进行后处理,转换成标准的TASM模型:
据AADL转换子集,分别设计如下规则AadlPackage规则、SystemImplementation规则、SystemSubcomponent规则、ProcessSubcomponent规则、Mode_ProcessImpl规则、PeriodDispatcher_mode规则、PeriodDispatcher_withoutmode规则、Scheduler规则、ThreadSubcomponent_BA规则、ThreadSubcomponent规则、Subprogram_BA规则、Scheduler规则定义了转换规则,其中除了AadlPackage元素以外,其它元素的转换规则都是lazy类型的,即这些转换规则是通过一般的规则调用执行的,而不是ATL转换引擎自动读取执行的,下面分别论述这些转换规则。
AadlPackage转换规则:由于AadlPackage是AADL元模型的根节点,在该转换规则中,主要转换到的也是TASM模型的框架,主要包括生成TASM的根结点tasm,并配置生成其下的一些子属性,包括工程属性Project,环境属性Environment。值得注意的是在环境子属性,生成了用户自定义类型,线程的执行状态。在AadlPackage规则中,调用了最顶层的SystemImplementation,最顶层是指这些系统构件是最顶层的,不会成为其它系统实现的子构件。
SystemImplementation转换规则:这里的SystemImplementation是AADL模型中最顶层的系统实现构件。在SystemImplementation规则中,生成了端口通信主抽象机,并针对Connections元素,生成了端口通信抽象机里的TASM规则。注意到端口主抽象机的TASM规则要分别在SystemImplementation规则,SystemSubcomponent规则,ProcessSubcomponent规则,由相应的Connections元素分别生成。在SystemImpl规则中,需要针对它里面包含的每个系统子构建调用SystemSubcomponent规则,针对每个进程子构建调用ProcessSubcomponent规则,针对每个处理器,调用scheduler生成一个调度器。
SystemSubcomponent规则:首先要通过SystemSubcomponent找到其相应的系统实现,但是这里的系统实现和SystemImplementation规则里不同的是,它不是最顶层的系统实现,它的功能与SystemImplementation规则相似。
ProcessSubcomponent规则:在ProcessSubcomponent规则中,首先需要找到它的类型和实现。接着根据该Process构件里所包含的线程子构件,生成相应的环境变量,包括表示线程当前执行状态的thState变量,线程所处模式的thActive变量,线程是否能被分发的thDispatch变量,等。然后根据进程里的Connections元素,为端口通信主抽象机添加相应的rule。最后,如果该进程里声明了模式变换,则要调用Mode_ProcessImpl规则生成模式变换主抽象机,对于每个线程,调用PeriodDispatcher_withoutmode生成线程执行抽象机;如果线程是周期的,则调用PeriodDispatcher_mode生成周期性分发器,之后需要判断每个线程里是否有行为附件,如果有行为附件则调用ThreadSubcomponent_BA规则生成有行为附件线程构件自动机,否则则调用ThreadSubcomponent规则生成无行为附件的线程构建自动机。同时对每一个线程子构件调用deadline_observer规则生成观察者自动机判断线程执行是否超时。
Mode_ProcessImpl规则:在Mode_ProcessImpl规则里,根据相应模式变换信息,以及相应的线程信息(线程处于何种模式、线程的周期和超周期是多少),生成相应的模式变换主抽象机。
PeriodDispatcher_mode规则:该规则主要针对处于模式变换中的线程,生成的是超周期的分发器主抽象机。
PeriodDispatcher_withoutmode规则:该规则主要针对线程的分发属性,生成周期性线程的分发器主抽象机。
Scheduler规则:在Scheduler规则里,根据前面已经排序好的线程(在前处理中已排好序),生成调度器主抽象机。在Scheduler规则里,必须要收集所有需要调度的信息,因为这样才能决定线程可被调度的条件。
ThreadSubcomponent_BA规则:该规则主要是生成线程执行主抽象机,该线程执行主抽象机包含了线程的执行状态变换,行为附件状态转换。
ThreadSubcomponent规则:该规则主要是生成线程执行主抽象机,该线程执行主抽象机包含了线程的执行状态变换。
SubprogramType_BA规则:该规则主要是生成子程序执行主抽象机,该子程序执行主抽象机包含了子程序的执行状态变换,行为附件状态转换。
TASM模型用ATL模型转换语言转换成TASM模型,ATL技术中不能处理xml中“<A>Text</A>”类型的元素,而xml格式的标准TASM模型以及UPPAAL模型中有这种元素。并且,对于从TASM模型到UPPAAL模型的部分转换需求,ATL模型转换语言在语法上无法实现,所以工具的转换部分是由ATL技术实现的。整体框架如图3所示,有标准的TASM模型作为输入,经过预处理后进行模型转换得到UPPAAL模型,在经过后处理得到标准的UPPAAL模型,所述预处理为:将text类型节点修改为text_a节点,并赋值为text类型节点的值;然后添加xml头格式满足ATL转换的要求;所述后处理为:将text_a类型节点修改为text节点,删除多余的label节点,使模型成为标准的UPPAAL模型。
由于ATL转换又分为三部分,对TASM环境的转换,对TASM抽象机的转换以及对TASM规则的转换,还有对TASM和UPPAAL模型中实例化模板的转换。
对TASM环境(Environment)的转换:env节点存储TASM环境信息节点,包括用户自定义类型及全局变量声明,定义及初始化。对应于UPPAAL模型中的nta节点下辖的用户声明全局变量及通信信道的节点declaration。
对TASM实例的转换:conf节点存储了TASM模型中抽象机参数实例化的信息,对应于UPPAAL模型中的nta节点下辖的system节点。入口规则将根据conf中对TASM抽象机模板的实例化生成对应的时间自动机的声明及实例化。
对TASM抽象机(即抽象机模板,masm)的转换:对于TASM的每个主抽象机(即抽象机模板,masm),对应生成UPPAAL模型的一个时间自动机模板(template)。masm中的内部变量声明ivars节点对应生成template中的declaration节点,同时在此declaration节点添加一个本地时钟clock声明“clock c”。对于masm的构造函数节点“cons”,其下辖节点“cparams”对应生成template的下辖节点“parameters”,其下辖节点“cbody”中的初始化语句对应放置到UPPAAL模型的template的declaration中。
对TASM规则(rule)的转换:TASM规则(rule)的转换使用ATL调用规则(calledrule)中实现。对于masm中的每一个规则(rl节点),对应生成UPPAAL中的模型元素。对于每一个rl,对应template生成一个location s。首先生成从pivot到s的transition,将此rl的guard对应生成transiton的一个label,label的“kind”属性值为“guard”,值为rl的guard值。再生成一个“kind”属性值为“assignment”的label,用于重置时钟变量c。根据rl的执行时间(在节点rtime中定义),在此location上建立一个label节点,此label节点的“kind”属性值为“invariant”,值为“c<=rtmax”,c为前面在declaration中声明的template本地时钟,rtmax为rtime的属性“rtmax”的值。之后生成从s到pivot的transition,transition上设置迁移约束(guard)的label节点“c>=rtmin”,以及迁移动作的label节点,放置rl的effect中的赋值语句值。这里所做的映射操作是将TASM规则(rl)的guard,effect值简单地赋给UPPAAL相应的模型元素。
4)基于Eclipse插件开发技术和JFace技术实现验证界面
基于Eclipse插件开发技术和JFace技术实现了验证界面,包括:
验证需求界面:验证需求界面主要是用来书写验证需求,以便于以后书写验证所使用的CTL公式或者构造agree annex。
单构件验证界面:单构件验证界面主要是为了进行单构件验证,包括验证性质添加、验证工具选择、验证结果返回。验证性质添加包括:性质名称、性质种类、性质模式。性质种类可以为:安全性、活性、可达性、死锁;性质模式可以为存在路径(E)和所有路径(A),存在状态([])和所有状态(<>);然后输入性质命题,书写完成后即可添加性质,在单构件验证界面显示刚刚添加的验证性质。针对已经生成在单构件验证界面中的验证性质,在验证时生成后缀为_properties.xml的性质文件,此性质文件为符合UPPAAL应用程序接口(API)要求的xml文件,然后调用UPPAAL API进行性质验证并返回验证结果到验证界面。
实现AGREE验证界面包括:选择约束针对的构件,定义验证所需要的变量可以为等式(eq)、常量(const)、性质(property),定义Contract理论中的假设(Assum)和保证(Guarantee),之后定义高级性质,如辅助定理语句、断言语句和提升语句,最后可针对选定的构件生成agree annex进行AGREE验证。
整个工具实现包为:OSATE插件行为配置文件位于plugin.xml中;把OSATE中的AADL文件解析成aaxl2文件的接卸工具包位于org.osate.aadl2.*处;把AADL模型转换为TASM模型,在由TASM模型转换为UPPAAL模型的控制类在AADL2UPPAAL.src.test.popup.actions.*处;界面实现在AADL2UPPAAL.src.Gui*处;UPPAAL黑盒调用处理的类在AADL2UPPAAL.src.UppaalApi.*处;AGREE验证界面实现在AADL2UPPAAL.src.zjd.agree.*处;
图4为工具流程示意图,在获得AADL模型后,基于OSATE平台对该模型进行实例化,得到该模型的aaxl2文件,然后经过预处理得到后缀为_preprocessing_finished.aaxl2文件,然后进化转换得到.tasm和_tasm.xml文件,针对_tasm.xml文件进行预处理生成_preprocessing_tasm.xml文件,然后进行转换生成_tasm_UPPAAL.xml文件,之后调用UPPAAL应用程序接口,传入性质文件_tasm_UPPAAL_properties.xml文件到UPPAAL引擎中进行验证,返回结果保存在_properties.txt文件中最后显示在验证界面中。AGREE验证先书写必要的agree annex然后调用OSATE平台中的agree验证工具,如果想对子组件的单个性质进行验证,那么就用Verify Single Layers,如果想对整个系统的所有性质进行组合验证,就需要点击Verify all Layers。验证结果会返回一个diagrams文件夹中,同时会弹出AGREE Reaults验证结果窗口显示验证结果。
Claims (8)
1.一种AADL模型组合形式化验证方法,其特征在于:包括以下步骤:
S1:将AADL模型转换到UPPAAL模型;
S2:基于Eclipse插件开发技术和JFace技术实现AADL模型组合验证界面;
S3:将UPPAAL模型与验证界面结合完成对AADL模型的验证,在验证界面生成符合UPPAAL模型应用程序接口要求的xml文件,通过调用UPPAAL模型应用程序接口进行性质验证并返回验证结果到验证界面;
S4:在验证界面生成agree annex,使用Osate完成AGREE验证。
2.根据权利要求1所述的一种AADL模型组合形式化验证方法,其特征在于:所述S1中将AADL模型转换到UPPAAL模型,包括将AADL模型使用ATL模型转换语言转换为TASM模型和将TASM模型使用ATL模型转换语言转换为UPPAAL模型。
3.根据权利要求2所述的一种AADL模型组合形式化验证方法,其特征在于:所述将AADL模型使用ATL模型转换语言转换为TASM模型,具体为:ATL转换读入一个或几个标准的AADL模型,进行预处理,转换成合适ATL进行转换的xml格式的AADL模型,ATL转换引擎参照AADL元模型和TASM元模型,根据ATL编写的模型转换规则,生成对应ATL格式的TASM模型,然后进行后处理,转换成标准的TASM模型。
4.根据权利要求2或3所述的一种AADL模型组合形式化验证方法,其特征在于:将TASM模型使用ATL模型转换语言转换为UPPAAL模型,具体为:将标准的TASM模型作为输入,经过预处理后进行ATL模型转换得到UPPAAL模型,在经过后处理得到标准的UPPAAL模型;
其中,所述预处理为:将text类型节点修改为text_a节点,并赋值为text类型节点的值;然后添加xml头格式满足ATL转换的要求;
所述后处理为:将text_a类型节点修改为text节点,删除多余的label节点,使模型成为标准的UPPAAL模型。
5.根据权利要求4所述的一种AADL模型组合形式化验证方法,其特征在于:ATL模型转换包括对TASM环境的转换、对TASM抽象机的转换、对TASM规则的转换和对TASM和UPPAAL模型中实例化模板的转换;
所述对TASM环境的转换:env节点存储TASM环境信息节点,包括用户自定义类型及全局变量声明,定义及初始化,对应于UPPAAL模型中的nta节点下辖的用户声明全局变量及通信信道的节点declaration;
所述对TASM抽象机的转换:对于TASM的每个主抽象机,对应生成UPPAAL模型的一个时间自动机模板;
所述对TASM规则的转换:使用ATL调用规则中实现,对于抽象机中的每一个rl节点,对应生成UPPAAL中的模型元素;
所述对TASM实例的转换:conf节点存储了TASM模型中抽象机参数实例化的信息,对应于UPPAAL模型中的nta节点下辖的system节点;入口规则将根据conf节点中对TASM抽象机模板的实例化生成对应的时间自动机模板的声明及实例化。
6.根据权利要求4所述的一种AADL模型组合形式化验证方法,其特征在于:所述对TASM抽象机的转换:对于TASM的每个主抽象机,对应生成UPPAAL模型的一个时间自动机模板,具体的:抽象机中的内部变量声明ivars节点对应生成时间自动机模板中的declaration节点,在该declaration节点添加一个本地时钟clock声明,对于抽象机的构造函数节点“cons”,其下辖节点“cparams”对应生成时间自动机模板的下辖节点“parameters”,其下辖节点“cbody”中的初始化语句对应放置到UPPAAL模型的template的declaration节点中。
7.根据权利要求4所述的一种AADL模型组合形式化验证方法,其特征在于:所述验证界面包括验证需求界面、单构件验证界面和AGREE验证界面;
所述验证需求界面:用于书写验证需求;
所述单构件验证界面:用于进行单构件验证,包括验证性质添加、验证工具选择和验证结果返回;该单构件验证界面实现UPPAAL模型应用程序接口的调用:
所述AGREE验证界面:选择约束针对的构件,定义验证所需要的变量、Contract理论中的假设和保证和定义高级性质,针对选定的构件生成agree annex进行AGREE验证;其中,验证所需要的变量包括等式、常量和性质,所述高级性质包括辅助定理语句、断言语句和提升语句。
8.根据权利7所述的一种AADL模型组合形式化验证方法,其特征在于:所述验证性质添加包括:性质名称、性质种类、性质模式;所述性质种类包括:安全性、活性、可达性、死锁;所述性质模式包括存在路径和所有路径、存在状态和所有状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811396551.9A CN109739740A (zh) | 2018-11-22 | 2018-11-22 | 一种aadl模型组合形式化验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811396551.9A CN109739740A (zh) | 2018-11-22 | 2018-11-22 | 一种aadl模型组合形式化验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109739740A true CN109739740A (zh) | 2019-05-10 |
Family
ID=66357019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811396551.9A Pending CN109739740A (zh) | 2018-11-22 | 2018-11-22 | 一种aadl模型组合形式化验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739740A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209177A (zh) * | 2020-01-06 | 2020-05-29 | 华东师范大学 | 硬件系统可靠性验证系统 |
CN111209203A (zh) * | 2020-01-06 | 2020-05-29 | 华东师范大学 | 一种基于源代码的模型验证方法 |
CN111240972A (zh) * | 2020-01-06 | 2020-06-05 | 华东师范大学 | 一种基于源代码的模型验证装置 |
CN111597390A (zh) * | 2020-03-17 | 2020-08-28 | 用友网络科技股份有限公司 | 一种数据格式转换框架 |
CN112269737A (zh) * | 2020-10-26 | 2021-01-26 | 清华大学 | 一种应用软件形式化模型验证方法及装置 |
CN113031934A (zh) * | 2021-04-06 | 2021-06-25 | 卡斯柯信号有限公司 | 一种用于形式化验证的联锁数据安全转换方法及翻译器 |
CN117056896A (zh) * | 2023-10-13 | 2023-11-14 | 中国人民解放军军事科学院系统工程研究院 | 一种智能控制系统形式化验证方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520925A (zh) * | 2011-11-18 | 2012-06-27 | 北京航空航天大学 | Aadl2tasm模型转换方法 |
CN102609260A (zh) * | 2012-02-08 | 2012-07-25 | 北京航空航天大学 | Tasm2uppaal模型转换方法 |
CN108376221A (zh) * | 2018-02-27 | 2018-08-07 | 哈尔滨工业大学 | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 |
-
2018
- 2018-11-22 CN CN201811396551.9A patent/CN109739740A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520925A (zh) * | 2011-11-18 | 2012-06-27 | 北京航空航天大学 | Aadl2tasm模型转换方法 |
CN102609260A (zh) * | 2012-02-08 | 2012-07-25 | 北京航空航天大学 | Tasm2uppaal模型转换方法 |
CN108376221A (zh) * | 2018-02-27 | 2018-08-07 | 哈尔滨工业大学 | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 |
Non-Patent Citations (2)
Title |
---|
JINMIAO XU等: "Hierarchical Behavior Annex: Towards an AADL Functional Specification Extension", 《MEMOCODE "18: PROCEEDINGS OF THE 16TH ACM-IEEE INTERNATIONAL CONFERENCE ON FORMAL METHODS AND MODELS FOR SYSTEM DESIGN》 * |
杨志斌等: "基于时间抽象状态机的AADL模型验证", 《软件学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209177A (zh) * | 2020-01-06 | 2020-05-29 | 华东师范大学 | 硬件系统可靠性验证系统 |
CN111209203A (zh) * | 2020-01-06 | 2020-05-29 | 华东师范大学 | 一种基于源代码的模型验证方法 |
CN111240972A (zh) * | 2020-01-06 | 2020-06-05 | 华东师范大学 | 一种基于源代码的模型验证装置 |
CN111597390A (zh) * | 2020-03-17 | 2020-08-28 | 用友网络科技股份有限公司 | 一种数据格式转换框架 |
CN112269737A (zh) * | 2020-10-26 | 2021-01-26 | 清华大学 | 一种应用软件形式化模型验证方法及装置 |
CN112269737B (zh) * | 2020-10-26 | 2021-11-30 | 清华大学 | 一种应用软件形式化模型验证方法及装置 |
CN113031934A (zh) * | 2021-04-06 | 2021-06-25 | 卡斯柯信号有限公司 | 一种用于形式化验证的联锁数据安全转换方法及翻译器 |
CN113031934B (zh) * | 2021-04-06 | 2022-07-26 | 卡斯柯信号有限公司 | 一种用于形式化验证的联锁数据安全转换方法及翻译器 |
CN117056896A (zh) * | 2023-10-13 | 2023-11-14 | 中国人民解放军军事科学院系统工程研究院 | 一种智能控制系统形式化验证方法及装置 |
CN117056896B (zh) * | 2023-10-13 | 2023-12-22 | 中国人民解放军军事科学院系统工程研究院 | 一种智能控制系统形式化验证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739740A (zh) | 一种aadl模型组合形式化验证方法 | |
Liu et al. | Pat 3: An extensible architecture for building multi-domain model checkers | |
Wan et al. | Functional model-based design methodology for automotive cyber-physical systems | |
Semeráth et al. | Formal validation of domain-specific languages with derived features and well-formedness constraints | |
Drave et al. | SMArDT modeling for automotive software testing | |
Lewerentz et al. | Case study “production cell”: A comparative study in formal specification and verification | |
Nuzzo | Compositional design of cyber-physical systems using contracts | |
Amendola et al. | A model-based approach to the design, verification and deployment of railway interlocking system | |
Jackson et al. | Semantics of Domain-SpecificModeling Languages | |
Campetelli et al. | User-friendly model checking integration in model-based development | |
Vangheluwe | Computer automated multi-paradigm modelling: Meta-modelling and graph transformation | |
Han et al. | Towards a python-based one language ecosystem for embedded systems automation | |
Winter | Model checking abstract state machines | |
Mross et al. | Transformation of GRAFCET into GAL for verification purposes based on a detailed meta-model | |
Mian et al. | Model transformation for analyzing dependability of AADL model by using HiP-HOPS | |
Dillon et al. | Inference graphs: A computational structure supporting generation of customizable and correct analysis components | |
Selim et al. | Automated verification of model transformations in the automotive industry | |
Tsai et al. | Iterative design and testing within the software development life cycle | |
Ball et al. | Checking Temporal Properties of Ыoftware with Boolean Programs | |
Jiang et al. | Formal design of multi-function vehicle bus controller | |
Babic | Model-based approach to real-time embedded control systems development with legacy components integration | |
Mjeda | Standard-compliant testing for safety-related automotive software | |
Bahig | Formal verification of automotive embedded UML designs | |
Westermann et al. | A Performant Low-Code System for the Timely Implementation of Road Safety Regulations | |
Haberl et al. | Seamless model-driven development put into practice |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190510 |
|
RJ01 | Rejection of invention patent application after publication |