CN114035785A - 一种基于自然语言需求的aadl模型组合验证性质自动生成方法 - Google Patents
一种基于自然语言需求的aadl模型组合验证性质自动生成方法 Download PDFInfo
- Publication number
- CN114035785A CN114035785A CN202111226642.XA CN202111226642A CN114035785A CN 114035785 A CN114035785 A CN 114035785A CN 202111226642 A CN202111226642 A CN 202111226642A CN 114035785 A CN114035785 A CN 114035785A
- Authority
- CN
- China
- Prior art keywords
- sentence
- pattern
- mode
- statement
- sentence pattern
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000013461 design Methods 0.000 title claims description 8
- 238000004891 communication Methods 0.000 claims description 82
- 238000012545 processing Methods 0.000 claims description 35
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 230000001360 synchronised effect Effects 0.000 claims description 19
- 230000006399 behavior Effects 0.000 claims description 17
- 230000014509 gene expression Effects 0.000 claims description 16
- 238000013468 resource allocation Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 11
- VQLYBLABXAHUDN-UHFFFAOYSA-N bis(4-fluorophenyl)-methyl-(1,2,4-triazol-1-ylmethyl)silane;methyl n-(1h-benzimidazol-2-yl)carbamate Chemical compound C1=CC=C2NC(NC(=O)OC)=NC2=C1.C=1C=C(F)C=CC=1[Si](C=1C=CC(F)=CC=1)(C)CN1C=NC=N1 VQLYBLABXAHUDN-UHFFFAOYSA-N 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 101100221835 Arabidopsis thaliana CPL2 gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004880 explosion Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 108010077055 methylated bovine serum albumin Proteins 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于自然语言需求的AADL模型组合验证性质自动生成方法,在以AADL为建模语言建立的软件模型验证阶段,通过该方法将输入的自然语言需求文本自动生成为形式化契约,该形式化契约插入原模型中,从而方便基于验证工具AGREE对AADL模型进行组合验证。
Description
技术领域
本发明属于安全关键软件技术领域,具体涉及一种基于自然语言需求的AADL模型组合验证性质自动生成方法。
背景技术
安全关键软件(safety-critical software)是应用于航空、航天、交通、能源等领域的安全关键系统中,若其运行情况不佳会导致安全关键系统处于危险状态,从而导致财产损失、环境破坏或者人员伤害的一类软件,因此,对安全关键软件的功能正确性、实时性、安全性等性质有极高的要求。
安全关键软件的日益复杂使得软件开发的难度增加,开发成本和不安全系数也随之上升。近年来,模型驱动(model-driven)尤其是采用形式化模型驱动的安全关键软件设计与开发方法逐渐受到重视,并被工业界认为是切实可行的重要手段。模型驱动开发方法将模型作为整个软件开发过程的核心元素,在设计阶段就建立软件模型,并尽早进行验证和分析。同时,模型的重用以及基于模型的自动代码生成,都有助于降低软件开发时间和成本。
传统的系统模型验证方法一般是将扁平化的整个模型转换,直接进行验证,由于安全关键系统软件组件多、状态复杂,这类验证方法会导致系统状态空间爆炸的问题。近年来,基于契约的组合验证方法(Contract-Based Compositional Verification)成为安全关键软件领域解决验证状态空间爆炸问题的国际前沿热点。
基于契约的组合验证方法的核心思想是利用软件系统的组合结构对验证问题进行分解,先验证各子构件的性质,然后综合推导出整个系统的性质,通过分而治之解决状态空间爆炸问题,这些性质即用契约来形式化规约。契约是对构件输入、内部行为及输出的抽象规约,一般用二元组<Assume,Guarantee>来表示。Assume规约了该构件的环境约束,因为系统中每个构件的行为往往会受到与它关联的构件的影响。所谓环境即为与该构件交互的其它构件和连接,环境中的构件可以是软件、硬件或物理设备等;Guarantee规约了在Assume得到满足的情况下该构件应该保证的行为。
在安全关键系统领域,常用的建模语言主要包括Modelica、SysML、UML Marte、AADL、EAST-ADL、SCADE、Simulink、Ptolemy II等。其中,AADL以层次化件的方式表达系统的软硬件架构,基于行为附件(Behavior Annex)表达构件正常功能行为,基于故障模型(Error Model Annex)表达构件在失效条件下的故障行为,以一体化的方式完整支持MBSD和MBSA,丰富的可表达方式使得AADL成为安全关键软件设计与验证方法的一种重要选择。
假设保证推理环境(AGREE)是一个用于AADL模型的组合的、假设保证模式的模型检查器。AGREE annex子组件可以嵌入到AADL的系统、进程和线程中,支持将形式化契约插入已有的AADL模型中,使用k-归纳法作为模型检验的底层算法,实现AADL模型需求验证、架构设计和架构验证。
契约定义是组合验证方法使用的前提,如何实现自然语言需求到形式化契约的自动生成,成为组合验证方法在安全关键系统领域有效使用的关键。当前获得形式化契约的方法是人工转换自然语言到契约,这样做存在一些弊端:
一是人工转化增加了系统引入错误的可能;
二是对于多数复杂的安全关键系统,人工转化需求的工作量和复杂度都难以承受。
此外,已有的组合验证工具研究主要基于同步数据流,即它仅支持同步子集,不支持异步子集、事件数据端口、延时通信等AADL模型子集,而在实际应用中,安全关键系统有分布式、异构性等特征,因此所采取的通信方式大部分是异构通信模式,所以AGREE支持的模型子集应得到扩充,以满足模型验证需求。
发明内容
发明目的:为减少手工输入契约带来的错误和工作量、扩充AGREE验证工具支持的AADL模型子集,本发明提出一种基于自然语言需求的AADL模型组合验证性质自动生成方法和工具,通过给出契约模式(Contract Patterns),将限定自然语言需求转换到构件契约,并完成CPL契约生成工具的开发。
技术方案:一种基于自然语言需求的AADL模型组合验证性质自动生成方法,包括以下步骤:
S100:扩展AADL模型验证工具AGREE支持的构件子集,使其能够完成异步通信的组合验证,扩展的构件包括异步通信构件;
S200:根据需要添加AGREE语句的AADL模型,通过如式(1)所示的契约模式定义语言CPL将其在安全关键软件系统中相应的自然语言需求文档进行规约,实现将自然语言需求转化为基于契约模式定义语言表达的需求文档;
CPL::=<Component,Pattern,Type,Structure> (1)
式中,Component为AADL构件集合,表示需要添加AGREE语句的AADL模型的构件;Pattern为需求模式集合;Type表示AGREE ANNEX中的语句类型;Structure表示各需求模式Pattern中的常用句型;
S300:将基于契约模式定义语言表达的需求文档转换为AGREE ANNEX契约;
S400:将AGREE ANNEX契约插入到已有AADL模型中;
S500:通过插入有AGREE ANNEX契约的AADL模型,完成该AADL模型的需求验证、架构设计和架构验证。
本发明还公开了一种基于自然语言需求的AADL模型组合验证性质自动生成工具,用于将输入的需求转化为AGREE支持的LUSTRE语言,便于之后的组合验证流程,包括:
文件处理模块,用于执行文件IO处理;
语句生成模块,用于生成AGREE ANNEX语句;
表达式转化模块,用于转化实时模式语句;
异步通信处理模块,用于建立异步通信线程;
在所述文件处理模块中,根据用户需要添加契约的AADL模型,获取该AADL模型内的System类型组件和其通信端口;以及获取用户的同步或异步通信处理选择,若为同步通信处理,则调用语句生成模块,若为异步通信处理,则调用异步通信处理模块;当用户选择的需求模式是实时模式时,则调用表达式转化模块;
在所述语句生成模块中,若为同步通信处理,则根据用户选择的需求模式、语句类型和常用句型,生成AGREE ANNEX语句,将生成的AGREE ANNEX语句插入到相关组件描述下;若为异步通信处理,则根据用户选择的需求模式、语句类型和常用句型,生成AGREE ANNEX语句,将该生成的AGREE ANNEX语句插入文件末;
在所述表达式转化模块中,若为when-occurs句型,则在AGREE ANNEX语句中新建时钟变量,表示当前时刻,并判断是否存在假设Assume条件,若存在则添加,否则任务假设Assume条件为真;若为when-hold句型、when-imply句型、condition句型中的一个,则获取语句结构包含的E1、E2和时间范围,生成对应的特性Property语句;若为condition句型,则生成结点,根据语句结构输入的周期,生成对应的语句;
在所述异步通信处理模块中,根据用户选择的发送构件、发送端口、接收构件、接收端口及输入的队列大小生成异步通信线程,而后调用语句生成模块。
有益效果:本发明与现有技术相比,具有以下优点:
(1)本发明以复杂系统的组合验证问题为背景,探讨从需求中提取形式化契约的解决方案,本发明以模板的方式对自然语言需求的输入加以限定,给出模板语言到AGREEANNEX的转换规则,并完成了相关工具的开发,实现限定自然语言需求到形式化契约的自动转换,减少了因手工输入而产生的故障和工作量;
(2)本发明在AADL异步通信模型的组合验证方法领域进行探究,扩充了AGREE支持的模型子集,使AGREE验证工具可以支持异步通信模型的组合验证,满足模型验证需求。
附图说明
图1为工具框架;
图2为工具实现限定自然语言到形式化契约转换的流程图;
图3为CPL的BNF语法;
图4为实时模式的BNF语法;
图5为模式Pattern和句型Structure的UML类图;
图6为CPL2AGREEANNEX实例;
图7为实时模式语句转化示意图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
本发明针对安全关键软件组合验证的契约获取问题,着重解决如何从自然语言需求文本中获取可用于组合验证工具的形式化契约。由于AADL具有富的可表达方式等优点,本发明考虑以AADL为建模语言,以AADL验证工具支持的AGREE ANNEX来表达形式化契约。
目前,大多数需求规范都是用自然语言编写的文档。然而,自然语言需求存在不完整、不精确、非形式化和二义性等问题,因此,根据这样的需求规范难以对系统模型进行验证。形式化语言用精确的数学符号来表达设计需求,可以解决这个难题,但是形式化语言学习难度较大,使用门槛较高,因此通过定义中间语言,并实现自然语言需求到形式化语言自动转换的方式,降低工程师使用形式化验证的门槛。
为了解决自然语言需求到形式化语言转化的问题,提出基于自然语言需求的契约模式定义语言(Contract Pattern Language,CPL)。契约模式定义语言CPL在半形式化自然语言需求和精确形式化定义之间架起了桥梁,通过契约模式定义语言CPL能够创建可移植到不同领域的通用体系结构,并将语义合并到形式化模型生成中。契约模式定义语言CPL的基本工作可概括为:建立一个需求框架,将半形式化自然语言和精确形式化符号的优点相结合,提供一种从一种从模式化自然语言需求中提取相关信息、并用这些信息创建形式化模型的方法,即将自然语言需求转化为基于契约模式定义语言表达的需求。其中,模式化自然语言在表达方式上有一定程度的精确型及一致性。从基于模式定义语言的需求文本到形式化契约一般可以半自动化处理完成。
因此,本发明的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,在以AADL为建模语言建立的软件模型验证阶段,通过该方法将输入的需求文本自动生成为形式化契约,该形式化契约可用于AADL验证工具AGREE,并将该形式化契约插入原模型中,具体步骤说明如下:
步骤1:定义契约模式定义语言CPL,该契约模式定义语言CPL可以表示为一个四元组,即CPL::=<Component,Pattern,Type,Structure>,其中,Component为AADL构件集合,表示需要添加AGREE语句的AADL模型的构件;Pattern为需求模式集合,表示具有某些特征的系统需求模式;Type表示AGREE ANNEX中的语句类型;Structure表示各需求模式Pattern中的常用句型;CPL的具体语法BNF描述参见图3。
其中,构件是AADL模型中的所有构件的构件类型声明(Type)和构件实现(Implementation),包含软硬件构件和系统构件。每次选择一个构件,即是选择需要添加AGREE ANNEX的构件,一个构件可以选择多种模式实现。
其中,AADL构件集合Component包括:
软件架构,包含线程、线程组、子程序、数据、进程;
硬件架构,包含处理器、内存、总线、外设;
系统级架构,表示软件和执行平台的组合集。
其中,根据安全关键系统的需求,需求模式Pattern分为功能模式、实时性模式、安全性模式、资源模式、模式变换模式。每一种模式对应多种的语句类型,常用的语句类型有结点、假设、保证、断言、引理、结构体、常量、特性、等式。每一种模式包含多种语句结构。语句结构是根据每一种模式的特点总结的常见的语句表达方式。语句结构的主体框架是限定自然语言模板,内容通过手工添加实现的。因此模式可以表示为一个三元组Pattern::=<Pattern_name,Type,Structure>,下面分别对五种模式,以及每种模式包含的语句类型和语句结构做详细描述。
功能模式,用于表达系统的具体的功能行为,该模式类别下常用语句类型有假设、保证、断言、结点等,常用结构类型包括触发条件、不等式关系等,也可以拓展到多个事件序列和多个条件序列等复杂情况。
实时模式,用于描述系统的实时行为,在某个时间段内指定系统完成某些具体的操作,该模式类别下有when-occur句型、when-hold句型、when-imply句型和condition句型;使用实时模式,首先要在AGREE中定义一个表示系统时间的变量,在AADL模型顶层系统的AGREE ANNEX中定义了一个表示时间的变量eq T:int=0->pre(v)+1;我们用T代表系统时钟,其中pre是同步语言特殊操作,即获得前一时刻变量的取值,先初始化T为0表示系统开始时间,然后每个时钟执行一步,T计数加1。实时模式的具体语法BNF描述参见图4。其中,whenever E1 occurs E2 occurs during[a,b]意为无论E1何时发生,E2将在闭区间[a,b]内某一时刻发生;whenever E1 occurs E2 holds during[a,b]意为无论E1何时发生,E2将在闭区间[a,b]内一直发生;whenever E occurs E1 implies E2during[a,b]意为无论E何时发生,E1=>E2将在闭区间[a,b]内一直发生;condition C1,E1occurs each T意为在条件C1成立的前提下,E1在每个T周期内发生一次。
安全性模式,用于表达系统可能出现的故障行为,通常是系统级别的需求,因此,需要预定义一些安全关键系统领域常用的故障或失效概念。例如,设备故障、断电故障、通信故障等。其中,设备故障主要指系统控制故障、指令控制故障等;通信故障主要是线程的通信超时、线程的周期性时间性质不满足等。安全性需求与AGREE的假设Assume、保证Guarantee密切相关,表示系统必须满足的性质,该模式类别下有设备故障句型和通信故障句型;
资源模式,用于表达系统对功耗、存储、总线、CPU、网络带宽等资源消耗的约束,在安全关键系统中通常是固定的常量值。转换为AGREE中为Const。该模式类别下有资源分配句型;
模式变换模式,模式变换是航空航天领域一种常见的功能组织方式,该模式用于表达模式之间的切换对应着复杂的转换条件与相关操作,将与模式切换的语句抽取出来构成模式变换模式,即在某些条件下,进行模式切换,进行改变系统的功能配置的操作;该模式类别下有模式转换句型;
其中,各需求模式Pattern中的常用句型Structure,包括:
触发条件句型,用于在系统准备执行某些操作前,判断真假;触发类似于C语言中的IF-ELSE语句的判断条件,因此触发条件也经常与IF-ELSE结构同时使用;
不等式关系句型,指系统中存在较为复杂的变量之间的不等关系,用于触发条件的判断或者变量的赋值;
when-occur句型,用于描述whenever E1 occurs E2 occurs during[a,b]的情形;
when-hold句型,用于描述whenever E1 occurs E2 holds during[a,b]的情形;
when-imply句型,用于描述whenever E occurs E1 implies E2 during[a,b]的情形;
condition句型,用于描述condition C1,E1 occurs each T的情形;
故障设备句型,用于表达系统控制故障、指令控制故障;
通信故障句型,用于表达通信超时等故障;
资源分配句型,用于表达对系统资源的定义;它们是固定的常量值,它们的验证通常与其他模式结合,验证当前的资源分配的情况下,系统是否能够正常运行;
模式变换句型,用于表达在某些条件下,进行模式切换,进行改变系统的功能配置的操作。
为清楚说明模式和语句结构的关系,参见表1,表1介绍了模式和语句结构的关系,每一种模式中包含几种特定的语句结构,每种语句结构又表达了特定的系统需求。下面将详细介绍每种模式包含的语句结构的模板。模式和句型的具体关系参见图5。
表1 CPL模式及句型表
其中,AGREE ANNEX中的语句类型Type包括:Assume、Guarantee、Equation、Property、Constant、Node、Record、Real-time Patterns。描述如下:
Real-time Patterns的子类型包括:WheneverStatement、WhenStatement、RealTimeStatement、WhenStatement。Real-time Patterns子类型语句描述如下:
步骤2:通过该规则对安全关键软件系统中的自然语言需求文档进行规约,将自然语言需求转化为基于契约模式定义语言表达的需求文档;
步骤3:扩展AADL模型验证工具AGREE支持的模型子集,以支持异步通信子集、事件数据端口等AADL模型子集,使其能够完成异步通信模型的组合验证;其中,扩展异步通信子集步骤包括:
选定发送构件Sender,建立Sender的契约;该Sender的契约包括:二元组<ASender,GSender>,表示在满足ASender的假设下,该构件能够产生符合GSender的输出;msg,用于存储即将发送的数据;send动作,表示Sender将消息(msg)发送给队列。
选定接收构件Receiver,建立Receiver的契约;该Receiver的契约包括:<AReceiver,GReceiver>,表示在满足AReceiver的情况下,Receiver总能收到消息。
建立通信队列Queue,建立Queue的契约;该Queue的契约包括:二元组<AQueue,GQueue>中AQueue表示大小为n的队列允许入队(enqueue)和出队(dequeue)两个操作,GQueue表示该队列可以保证正确的出队和入队操作。
整个模型的契约为(ASystem,GSystem),即在发生通信的两个或多个构件之间建立一个通信队列,将其看做一个新的组件,对其添加相关契约,若该组件能够通过验证,则说明此次通信无故障。
步骤4:基于CPL2AGREE ANNEX转换算法,将基于契约模式定义语言表达的需求文档转换为AGREE ANNEX契约文档。该CPL2AGREE ANNEX转换算法的工作流程为:首先在CPL中选择需要添加契约的构件,然后根据需求选择合适的模式,其次根据选择的模式的类型返回对应的可选择的语句类型和语句结构的集合,接下来选择适当的语句类型和语句结构,并填写语句结构的模板生成对应的AGREE语句。
该CPL2AGREE ANNEX转换算法包括总体转换算法Algorithm1和实时模式语句转换算法Algorithm2;
其中,总体转换算法Algorithm1:
其中,实时模式语句转换算法Algorithm2是以实时模式的1,4两种语句结构为例,其输入是实时模式的语句结构,输出是AGREE ANNEX,首先判断实时语句的语句结构是属于哪一种语句结构,如果是when-occurs语句结构,那么AGREE ANNEX新建时钟变量,表示当前时刻,接着判断是否存在assume条件,如果存在则添加,否则任务assume为真。接下来根据要求获取语句结构包含的E1、E2和时间范围,生成对应的property语句。如果语句结构是condition语句,则生成结点,根据语句结构输入的周期,生成对应的语句。
现基于上述方法,本发明还公开了一种基于自然语言需求的AADL模型组合验证性质自动生成工具,包括平台OSATE的CPL工具,该CPL工具需根据AGREE验证工具需求的四种基本模式(功能模式、实时模式、安全模式、资源模式),抽象出需求模板,可在指定组件下以模式化的语句输入近自然语言需求,工具将输入的需求转化为AGREE支持的LUSTRE语言,便于之后的组合验证流程。工具框图参考图1。
运行环境:
操作系统:Windows 10OS;
开发语言及工具:java/Eclipse;
中间件:OSATE/AGREE。
CPL工具需达到能够覆盖尽可能多的需求类型,减少手动输入语句;以及能够将工具生产的Lustre语句插入到AADL模型的准确位置。输入条件为已有文本化的AADL模型。
如图1所示的工具框架,实现本发明的工具是以OSATE为底层支持软件,利用Eclipse插件技术进行开发得到的,主要包括:文件处理模块、语句生成模块、表达式转化模块、异步通信处理模块,分别执行文件IO处理、AGREE ANNEX语句生成、实时模式语句转化和异步通信建立线程的功能。
系统的工作流程如图2所示。用户右击*.aadl格式的文件,可以看到“契约生成”标签,进入工具之后首先选择模型类别,若用户选择同步模型,获取该AADL模型内的System类型组件和其通信端口,用户可选择相应模式,再选择该模式下的类型之后选择相应句型,进入语句具体生成页面,完成语句建立后点击“生成代码”,可生成AGREE ANNEX语句,之后将用户生成的与此相关的语句插入相关组件描述下;若用户选择异步模型,根据用户选择的发送构件、发送端口和接收构件、接收端口及输入的队列大小生成异步通信线程然后调用同步通信的语句生成功能,生成该线程的约束契约,插入文件末尾结束语句之前。
文件处理模块需完成如下工作:用户右击*.aadl格式的文件,显示“契约生成”标签,进入工具之后首先选择模型类别,若为同步模型,获取该AADL模型内的System类型组件和其通信端口,最后将用户生成的与此相关的语句插入相关组件描述下;若为异步模型,获取该AADL模型内的System类型组件和其通信端口,根据用户选择生成通信线程和该线程的约束契约,插入文件末尾结束语句之前。
语句生成模型需完成如下工作:若用户选择异步模型,根据用户选择的发送构件、发送端口和接收构件、接收端口及输入的队列大小生成异步通信线程然后调用同步通信的语句生成功能。在同步通信方式下,用户可选择相应模式,再选则该模式下的类型之后选择相应句型,进入语句具体生成页面,完成语句建立后点击“生成代码”,可生成AGREE ANNEX语句。
表达式转化模块主要针对实时需求的语句,实时需求中与时钟相关的语句需要转换成为AGREE需要的同步语言Lustre表达。以Lustre node的形式定义时间观察者和不变量体现“计时”,如使用类似T:=(0->pre(T)+1)的操作来表达时间T,pre取前一时刻T的值,初始时T为0,随执行次数增加而递增,从而将复杂实时行为的验证转为对不变量的判断。具体参见图7所示的流程。
表2是一些实时模式语句转化的实例。此外,一些转化的实例参见图6。
表2实时需求语句转化为LUSTRE语句
异步通信处理模块需完成如下工作:用户选择异步通信处理,通过文件处理模块的支持可选择发送、接收组件及端口,由用户确定通信队列最大长度,之后工具可自动生成队列通信线程,原本异步通信的约束可转化为对该队列通信线程的假设和保证,这一步可调用同步模型的契约生成。
Claims (10)
1.一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:包括以下步骤:
S100:扩展AADL模型验证工具AGREE支持的构件子集,使其能够完成异步通信的组合验证,扩展的构件包括异步通信构件;
S200:根据需要添加AGREE语句的AADL模型,通过如式(1)所示的契约模式定义语言CPL将其在安全关键软件系统中相应的自然语言需求文档进行规约,实现将自然语言需求转化为基于契约模式定义语言表达的需求文档;
CPL::=<Component,Pattern,Type,Structure> (1)
式中,Component为AADL构件集合,表示需要添加AGREE语句的AADL模型的构件;Pattern为需求模式集合;Type表示AGREE ANNEX中的语句类型;Structure表示各需求模式Pattern中的常用句型;
S300:将基于契约模式定义语言表达的需求文档转换为AGREE ANNEX契约;
S400:将AGREE ANNEX契约插入到已有AADL模型中;
S500:通过插入有AGREE ANNEX契约的AADL模型,完成该AADL模型的需求验证、架构设计和架构验证。
2.根据权利要求1所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:一个构件可以选择多种需求模式实现,所述的需求模式表示为:Pattern::=<Pattern_name,Type,Structure>,其中,Pattern_name为需求模式名称,包括:功能模式、实时性模式、安全性模式、资源模式和模式变换模式;每一种模式包括多种常用句型,所述常用句型包括:触发条件句型、不等式关系句型、when-occur句型、when-hold句型、when-imply句型、condition句型、故障设备句型、通信故障句型、资源分配句型和模式变换句型。
3.根据权利要求2所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:
所述的功能模式,用于表达系统具体的功能行为,该模式类别下的常用句型包括触发条件句型和不等式关系句型;
所述的实时模式,用于描述系统的实时行为,在某个时间段内指定系统完成某些具体的操作,该模式类别下的常用句型包括when-occur句型、when-hold句型、when-imply句型和condition句型;
所述的安全性模式,用于表达系统可能出现的故障行为,该模式类别下的常用句型包括设备故障句型和通信故障句型;
所述的资源模式,用于表达系统对资源消耗的约束,该模式类别下的常用句型包括资源分配句型;
所述的模式变换模式,用于在某些条件下,改变系统的功能配置的操作;该模式类别下的常用句型包括模式转换句型。
4.根据权利要求3所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:
所述的触发条件句型,用于在系统准备执行某些操作前,判断真假;
所述的不等式关系句型,用于触发条件的判断或者变量的赋值;
所述的when-occur句型,用于描述whenever E1 occurs E2 occurs during[a,b]的情形,该情形意为无论E1何时发生,E2将在闭区间[a,b]内某一时刻发生;
所述的when-hold句型,用于描述whenever E1 occurs E2 holds during[a,b]的情形,该情形意为无论E1何时发生,E2将在闭区间[a,b]内一直发生;
所述的when-imply句型,用于描述whenever E occurs E1 implies E2 during[a,b]的情形,该情形意为无论E何时发生,E1=>E2将在闭区间[a,b]内一直发生;
所述的condition句型,用于描述condition C1,E1 occurs each T的情形,该情形意为在条件C1成立的前提下,E1在每个T周期内发生一次;
所述的故障设备句型,用于表达系统控制故障、指令控制故障;
所述的通信故障句型,用于表达通信故障;
所述的资源分配句型,用于表达对系统资源的定义;
所述的模式变换句型,用于表达在某些条件下,进行模式切换,改变系统的功能配置的操作。
5.根据权利要求1所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:所述的AGREE ANNEX中的语句类型包括:假设Assume、保证Guarantee、等式Equation、特性Property、常量Constant、结点Node、Record、实时模式Real-timePatterns;其中,实时模式Real-time Patterns的子类型包括:WheneverStatement、WhenStatement、RealTimeStatement和WhenStatement。
6.根据权利要求1所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:S100中,异步通信构件扩展包括以下步骤:
在发生通信的两个或多个构件之间建立一个通信队列Queue,将通信队列Queue看做一个新的构件,对各构件添加相关的契约;
若该组件能够通过验证,则说明此次异步通信构件扩展成功,否则失败;
其中,对于发送构件Sender,添加如下形式的Sender的契约;<ASender,GSender>,表示在满足ASender的假设下,该构件能够产生符合GSender的输出;
其中,对于接收构件Receiver,添加如下形式的Receiver的契约:<AReceiver,GReceiver>,表示在满足AReceiver的情况下,Receiver总能收到消息;
对于通信队列Queue,建立如下形式的Queue的契约<AQueue,GQueue>,其中,AQueue表示大小为n的队列允许入队和出队两个操作,GQueue表示该队列可以保证正确的出队和入队操作。
7.根据权利要求1所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:S300包括以下步骤:
根据用户需要添加契约的AADL模型,获取该AADL模型内的System类型组件和其通信端口;
获取用户的同步或异步通信处理选择,若为同步通信处理,则根据用户选择的需求模式、语句类型和常用句型,生成AGREE ANNEX语句,将生成的AGREE ANNEX语句插入到相关组件描述下;若为异步通信处理,则根据用户选择的发送构件、发送端口、接收构件、接收端口及输入的队列大小生成异步通信线程,而后进入同步通信处理,根据用户选择的需求模式、语句类型和常用句型,生成AGREE ANNEX语句,将该生成的AGREE ANNEX语句插入文件末。
8.根据权利要求7所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法,其特征在于:
当用户选择的需求模式是实时模式时,该模式类别下的常用句型包括when-occur句型、when-hold句型、when-imply句型和condition句型;
若为when-occurs句型,则在AGREE ANNEX语句中新建时钟变量,表示当前时刻,并判断是否存在假设Assume条件,若存在则添加,否则任务假设Assume条件为真;
若为when-hold句型、when-imply句型、condition句型中的一个,则获取语句结构包含的E1、E2和时间范围,生成对应的特性Property语句;
若为condition句型,则生成结点,根据语句结构输入的周期,生成对应的语句。
9.基于权利要求1至8任意一项所述的一种基于自然语言需求的AADL模型组合验证性质自动生成方法的工具,用于将输入的需求转化为AGREE支持的LUSTRE语言,便于之后的组合验证流程,其特征在于:包括:
文件处理模块,用于执行文件IO处理;
语句生成模块,用于生成AGREE ANNEX语句;
表达式转化模块,用于转化实时模式语句;
异步通信处理模块,用于建立异步通信线程;
在所述文件处理模块中,根据用户需要添加契约的AADL模型,获取该AADL模型内的System类型组件和其通信端口;以及获取用户的同步或异步通信处理选择,若为同步通信处理,则调用语句生成模块,若为异步通信处理,则调用异步通信处理模块;当用户选择的需求模式是实时模式时,则调用表达式转化模块;
在所述语句生成模块中,若为同步通信处理,则根据用户选择的需求模式、句型,生成AGREE ANNEX语句,将生成的AGREE ANNEX语句插入到相关组件描述下;若为异步通信处理,则根据用户选择的需求模式、语句类型和常用句型,生成AGREE ANNEX语句,将该生成的AGREE ANNEX语句插入文件末;
在所述表达式转化模块中,若为when-occurs句型,则在AGREE ANNEX语句中新建时钟变量,表示当前时刻,并判断是否存在假设Assume条件,若存在则添加,否则任务假设Assume条件为真;若为when-hold句型、when-imply句型、condition句型中的一个,则获取语句结构包含的E1、E2和时间范围,生成对应的特性Property语句;若为condition句型,则生成结点,根据语句结构输入的周期,生成对应的语句;
在所述异步通信处理模块中,根据用户选择的发送构件、发送端口、接收构件、接收端口及输入的队列大小生成异步通信线程,而后调用语句生成模块。
10.根据权利要求9所述的工具,其特征在于:
所述的需求模式包括:功能模式、实时性模式、安全性模式、资源模式和模式变换模式;每一种模式包括多种常用句型,所述常用句型包括:触发条件句型、不等式关系句型、when-occur句型、when-hold句型、when-imply句型、condition句型、故障设备句型、通信故障句型、资源分配句型和模式变换句型;
所述的功能模式,用于表达系统具体的功能行为,该模式类别下的常用句型包括触发条件句型和不等式关系句型;
所述的实时模式,用于描述系统的实时行为,在某个时间段内指定系统完成某些具体的操作,该模式类别下的常用句型包括when-occur句型、when-hold句型、when-imply句型和condition句型;
所述的安全性模式,用于表达系统可能出现的故障行为,该模式类别下的常用句型包括设备故障句型和通信故障句型;
所述的资源模式,用于表达系统对资源消耗的约束,该模式类别下的常用句型包括资源分配句型;
所述的模式变换模式,用于在某些条件下,改变系统的功能配置的操作;该模式类别下的常用句型包括模式转换句型;
所述的触发条件句型,用于在系统准备执行某些操作前,判断真假;
所述的不等式关系句型,用于触发条件的判断或者变量的赋值;
所述的when-occur句型,用于描述whenever E1 occurs E2 occurs during[a,b]的情形,该情形意为无论E1何时发生,E2将在闭区间[a,b]内某一时刻发生;
所述的when-hold句型,用于描述whenever E1 occurs E2 holds during[a,b]的情形,该情形意为无论E1何时发生,E2将在闭区间[a,b]内一直发生;
所述的when-imply句型,用于描述whenever E occurs E1 implies E2 during[a,b]的情形,该情形意为无论E何时发生,E1=>E2将在闭区间[a,b]内一直发生;
所述的condition句型,用于描述condition C1,E1 occurs each T的情形,该情形意为在条件C1成立的前提下,E1在每个T周期内发生一次;
所述的故障设备句型,用于表达系统控制故障、指令控制故障;
所述的通信故障句型,用于表达通信故障;
所述的资源分配句型,用于表达对系统资源的定义;
所述的模式变换句型,用于表达在某些条件下,进行模式切换,改变系统的功能配置的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111226642.XA CN114035785A (zh) | 2021-10-21 | 2021-10-21 | 一种基于自然语言需求的aadl模型组合验证性质自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111226642.XA CN114035785A (zh) | 2021-10-21 | 2021-10-21 | 一种基于自然语言需求的aadl模型组合验证性质自动生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114035785A true CN114035785A (zh) | 2022-02-11 |
Family
ID=80141697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111226642.XA Pending CN114035785A (zh) | 2021-10-21 | 2021-10-21 | 一种基于自然语言需求的aadl模型组合验证性质自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114035785A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964033A (zh) * | 2023-01-16 | 2023-04-14 | 北京计算机技术及应用研究所 | 基于模型的可视化软件开发工具实现方法 |
CN116150005A (zh) * | 2023-01-16 | 2023-05-23 | 北京计算机技术及应用研究所 | 基于扩展Lustre语言的模型形式化验证方法 |
CN117056896A (zh) * | 2023-10-13 | 2023-11-14 | 中国人民解放军军事科学院系统工程研究院 | 一种智能控制系统形式化验证方法及装置 |
-
2021
- 2021-10-21 CN CN202111226642.XA patent/CN114035785A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964033A (zh) * | 2023-01-16 | 2023-04-14 | 北京计算机技术及应用研究所 | 基于模型的可视化软件开发工具实现方法 |
CN116150005A (zh) * | 2023-01-16 | 2023-05-23 | 北京计算机技术及应用研究所 | 基于扩展Lustre语言的模型形式化验证方法 |
CN115964033B (zh) * | 2023-01-16 | 2023-09-26 | 北京计算机技术及应用研究所 | 基于模型的可视化软件开发工具实现方法 |
CN116150005B (zh) * | 2023-01-16 | 2023-11-28 | 北京计算机技术及应用研究所 | 基于扩展Lustre语言的模型形式化验证方法 |
CN117056896A (zh) * | 2023-10-13 | 2023-11-14 | 中国人民解放军军事科学院系统工程研究院 | 一种智能控制系统形式化验证方法及装置 |
CN117056896B (zh) * | 2023-10-13 | 2023-12-22 | 中国人民解放军军事科学院系统工程研究院 | 一种智能控制系统形式化验证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114035785A (zh) | 一种基于自然语言需求的aadl模型组合验证性质自动生成方法 | |
CN112860256B (zh) | 一种Linux内核设备树的可视化配置系统和方法 | |
CN110109658B (zh) | 一种基于形式化模型的ros代码生成器及代码生成方法 | |
CN111176639A (zh) | 一种从SysML到AltaRica的自动化模型转换方法 | |
CN111897580A (zh) | 一种可重构阵列处理器的指令调度系统及方法 | |
CN110597498A (zh) | AADL模型精化方法及其支持的Ada可执行代码自动生成方法 | |
Wille et al. | Custom-tailored variability mining for block-based languages | |
Leung et al. | Scalable semantic annotation using lattice-based ontologies | |
CN114238084B (zh) | 基于SysML的嵌入式软件安全性分析方法及其分析系统 | |
Abdoul et al. | AADL execution semantics transformation for formal verification | |
Oquendo et al. | A formal approach for architecting software-intensive systems-of-systems with guarantees | |
Hansen et al. | HAZOP analysis of UML-based software architecture descriptions of safety-critical systems | |
Andova et al. | Prototyping the Semantics of a DSL using ASF+ SDF: Link to Formal Verification of DSL Models | |
CN109446146B (zh) | 一种应用层通信协议的状态转换序列生成方法 | |
CN114036769B (zh) | 面向航电系统物理架构的功能部署方案生成方法及装置 | |
KR101660028B1 (ko) | Hla-dds간 연결 컴포넌트 생성 방법 및 장치 | |
Horváth et al. | Hardware-software allocation specification of ima systems for early simulation | |
Conquet et al. | Formal model driven engineering for space onboard software | |
CN112559359A (zh) | 一种基于s2ml的安全攸关系统分析与验证方法 | |
CN105975695B (zh) | 不确定性环境下ThingML模型的量化分析方法 | |
Liboni et al. | WIP on a coordination language to automate the generation of co-simulations | |
Yue et al. | A modeling method of algorithm-hardware based on SysML | |
Pingree et al. | The hivy tool set | |
Pampagnin et al. | Model driven hardware design: One step forward to cope with the aerospace industry needs | |
Apvrille et al. | Verifying service continuity in a dynamic reconfiguration procedure: Application to a satellite system |
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 |