CN114036041A - 一种基于机器学习的scade模型组合验证环境假设自动生成方法 - Google Patents
一种基于机器学习的scade模型组合验证环境假设自动生成方法 Download PDFInfo
- Publication number
- CN114036041A CN114036041A CN202111228147.2A CN202111228147A CN114036041A CN 114036041 A CN114036041 A CN 114036041A CN 202111228147 A CN202111228147 A CN 202111228147A CN 114036041 A CN114036041 A CN 114036041A
- Authority
- CN
- China
- Prior art keywords
- scade
- test
- model
- machine learning
- simulation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012795 verification Methods 0.000 title claims abstract description 31
- 238000010801 machine learning Methods 0.000 title claims abstract description 29
- 238000012360 testing method Methods 0.000 claims abstract description 77
- 238000004088 simulation Methods 0.000 claims abstract description 47
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 230000014509 gene expression Effects 0.000 claims description 23
- 238000003066 decision tree Methods 0.000 claims description 21
- 230000002068 genetic effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 2
- 230000001172 regenerating effect Effects 0.000 claims description 2
- 238000011161 development Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 230000007613 environmental effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004880 explosion Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 241001455445 Alfaro Species 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 235000020289 caffè mocha Nutrition 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,包括:基于SCADE支持的API,获取目标SCADE模型的I/O信息;对I/O信息进行映射处理,生成指定数量的测试用例;将测试用例转换为SCADE仿真的场景文件;采用SCADE仿真器对SCADE仿真的场景文件进行仿真,得到仿真结果文件;基于仿真结果文件,生成环境假设Assume所需的数据集;基于数据集,借助机器学习算法生成组件环境假设Assume;采用本发明的方法能减少人工编写环境假设的错误并提高组合验证过程中形式化契约的编写效率。
Description
技术领域
本发明属于安全关键软件技术领域,具体涉及一种基于机器学习的SCADE模型组合验证环境假设自动生成方法。
背景技术
安全关键软件是指应用于航空、航天、核能等领域的安全关键系统中,且其运行失效会引起系统处于危险状态,从而导致人员伤害、重大财产损失或者环境破坏等灾难性后果的一类软件,它对功能正确性、实时性、安全性等性质有极高的要求。
近年来,基于形式化模型的安全关键软件设计与开发方法逐渐广泛应用。例如机载系统适航审定的软件开发国际标准DO-178C就将基于模型的开发方法(DO-331)和形式化方法(DO-333)作为其核心标准的重要技术补充。相比通用软件,安全关键软件设计与开发往往需要两个互补的过程:一方面,通过层次化设计将系统逐步分解,形成系统、子系统、原子构件所构成的软件架构及构件行为,即模型驱动开发过程 MBSD(Model-Based SoftwareDevelopment),MBSD一般考虑软件系统的正常行为模型 (Nominal Behavior Models);另一方面,在正常行为模型的基础上,通过构造故障模型 (Fault Models)来分析软件在失效条件下的行为,即模型驱动安全分析过程 MBSA(Model-Based Safety Assessment)。MBSD和MBSA并行交互使用,成为提高安全关键软件质量并同时降低开发时间与成本的重要手段。MBSD中常用的建模语言包括 Simulink、AADL、SCADE等,相较于其它语言,SCADE具备严谨的数学基础,结合 SCADE工具的使用可以从根本上保证设计的算法和控制软件模型具备精确性、无二义性和确定性。其模型到代码的生成器是市场上唯一的、无序额外定制的、作为开发工具通过多个安全关键行业工具鉴定的产品,SCADE产品也因为其全系统级的、基于模型的、涵盖仿真与软件实现的研制平台成为了安全关键领域中软件建模、分析测试、仿真、代码生成的主流解决方案。
然而,随着功能和非功能要求的不断提高,安全关键软件越来越复杂。安全关键软件模型的形式化验证面临着巨大的状态空间爆炸问题,并已成为基于形式化模型的安全关键软件设计与开发方法的重大挑战之一。相比通用软件,安全关键软件模型验证不仅考虑功能性、正确性,还需要考虑安全性、实时性、资源等非功能性质,这些非功能性质又往往受到硬件甚至物理环境的影响。近年来,基于契约的组合验证方法成为安全关键软件领域解决验证状态空间爆炸问题的国际前沿热点。基于契约的组合验证方法的核心思想是利用软件系统的组合结构对验证问题进行分解,先验证各子构件的性质,然后综合推导出整个系统的性质,通过分而治之解决状态空间爆炸问题,这些性质即用契约来形式化规约。契约是对构件输入、内部行为及输出的抽象规约,一般用二元组<Assume, Guarantee>来表示。Assume规约了该构件的环境约束,因为系统中每个构件的行为往往会受到与它关联的构件的影响。所谓环境即为与该构件交互的其它构件和连接,环境中的构件可以是软件、硬件或物理设备等。目前在基于契约的组合验证方法领域已有较多的研究,例如Alfaro等人在基于组件的设计研究中提出了A/G接口的概念以及应用, Patricia Derler等人研究了契约针对Simulink建模的CPS的应用场景。然而传统的组合验证框架依赖于手动得出契约,不同于可以从需求文本中直接获取的Guarantee,环境假设Assume需要工程师们根据自然语言需求文本并结合具体系统模型和上下文环境得出,这既困难又耗时。因此,如何自动分析并生成模型组件的环境假设将对复杂安全关键系统的组合验证起到很大帮助。
目前工业界已经有一些方法可以在组合验证推理的上下文中使用基于常规语言和有限状态自动机的机器学习算法来自动生成环境假设,例如作为此领域开拓者的Calvin等人所研发的工具背后的线程模块化推理方法,他们在时态逻辑框架下提出了用于规范和验证开放系统等交替时态逻辑ATL的工作,并通过符号模型检查程序提供自动化支持;Mocha toolkit等人提出了支持基于ATL的需求规范的组件模块化验证;Jamieson 等人采用学习算法,不断迭代搜索反例以逼近理论上最精确的假设。然而,这些方法假设被分析的组件及其环境可以被指定为抽象的有限状态机,但状态机的表现力不足以捕捉定量和数值组件以及与物理环境交互的系统的连续行为,并且软件组件可能不容易在 (抽象)状态机符号中指定,将它们转换为这种符号可能会导致大量额外的建模工作或可能导致假设学习所需的重要信息的丢失。此外,上述方法针对的系统模型大多为主流的Simulink、SysML等建模工具语言,尚未有针对SCADE的方法。
发明内容
发明目的:为减少人工编写环境假设的错误,以及提高组合验证过程中形式化契约的编写效率,本发明提出了一种基于机器学习的SCADE模型组合验证环境假设自动生成方法。
技术方案:一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,包括以下步骤:
S100:基于SCADE支持的API,获取目标SCADE模型的I/O信息;
S200:对I/O信息进行映射处理,生成指定数量的测试用例;
S300:将测试用例转换为SCADE仿真的场景文件;
S400:采用SCADE仿真器对SCADE仿真的场景文件进行仿真,得到仿真结果文件;
S500:基于仿真结果文件,生成环境假设Assume所需的数据集;
S600:基于数据集,借助机器学习算法生成组件环境假设Assume。
有益效果:本发明选择SCADE作为安全关键软件的建模设计语言,通过读取指定SCADE模型组件信息和目标需求,为组件自动生成一套仿真场景测试用例文件,并基于测试结果借助机器学习方法自动生成SCADE模型组件的环境假设,以此来减少人工编写环境假设的错误并提高组合验证过程中形式化契约的编写效率。
附图说明
图1为基于机器学习的SCADE模型组合验证环境假设自动生成方法模块化体系结构图;
图2为数据类型转换规则示意图;
图3为决策树构建流程图;
图4为遗传算法流程图;
图5为遗传算法个体示例图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
本发明提出了一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,通过SCADE工具提供的Java API接口,读取指定的SCADE模型的信息,采用自动测试方法为SCADE模型自动生成测试用例,并以此建立决策树为指定的模型组件自动生成环境假设Assume以满足目标需求。现对上述过程步骤做进一步说明。
步骤1:采用Java调用SCADE工具提供的Java API接口,借助EMF,获取目标地址中SCADE模型的信息,包括输入信息、输出信息、假设保证等信息。
步骤2:采用测试用例自动生成方法,为SCADE模型生成测试用例,并将该测试用例转换至SCADE仿真场景文件;具体包括以下过程:
根据读入的SCADE模型输入信息,作SCADE变量类型到Java数据类型的映射,映射规则如下:
typeConvertMap.put("uint8","short");
typeConvertMap.put("uint16","short");
typeConvertMap.put("uint32","int");
typeConvertMap.put("uint64","long");
typeConvertMap.put("int8","short");
typeConvertMap.put("int16","short");
typeConvertMap.put("int32","int");
typeConvertMap.put("int64","long");
typeConvertMap.put("float32","float");
typeConvertMap.put("float64","double");
typeConvertMap.put("bool","bool");
typeConvertMap.put("char","char");
映射完成后可以得到完整的模型输入列表;
采用随机自适应测试用例自动生成方法为每个输入参数随机生成一个数值并存入测试用例列表中。具体为:
若输入参数取自于连续区间,则采用插值随机测试法:
根据读取的模型预设I/O定义域信息,在定义域上插入若干个控制点将定义域分成若干个小区间;
在每个小区间上随机取值添加到数据集中;
若输入参数取自于离散区间,则采用随机自适应测试方法:
在定义域上随机生成n个候选测试点;
对每个测试点,取其与该输入参数测试数据集中每个测试数据的距离的最小值,该最小值作为一个测试数据,若该输入参数的测试数据集为空则随机选一个候选测试点加入;而对每个测试点,取其与测试数据集中每个测试数据的距离的最大值,该最大值作为测试数据加入该输入参数的测试数据集;重复上述过程,直至达到最大循环次数或该参数测试数据集数据量达到上限。
对每个输入参数执行该操作,则最终得到n个测试用例。
每组测试用例需要将其填写到SCADE仿真场景格式模板中,对应生成SCADE仿真场景文件中的一个仿真用例,具体格式如下:
SSM::set Operator1/Input1 1.0;
SSM::set Operator1/Input2 2.0;
SSM::cycle 1;
其中,Input1和Input 2指模型输入参数名,cycle指该仿真用例被执行的次数。需要填写完整地址,其中一个示例如下:
SSM::set fun/x 1.4425144;
SSM::cycle 1;
生成后缀为.sss的仿真场景文件后,在SCADE Suit编辑器中选中模型进行Rebuild 后进入仿真模式,加载场景文件并执行,可以得到.csv后缀的仿真结果文件,其文件包含一个表头,自左向右是step(数据序号)、模型输入参数列表、模型输出参数列表;其格式如下:
STEP;Operator1/Input1;Operator1/Input2;Operator1/Output1;Operator1/Output2;
1;1.0;2.0;3.0;2.0;
2;1.0;2.0;3.0;2.0;
第一行视为表头,记载了步骤序号、所有输入和所有输出,第二行开始以分号隔开所有数据和序号。
使用Java代码读取仿真结果文件,将仿真结果联合预输入的逻辑语言描述的需求R 解析为一个布尔变量,为每个测试用例打上符合或不符合需求R的标签“pass”和“notpass”,得到测试数据文件TC,具体实现方法如下:
调用String.replaceAll()将逻辑语言替换为逻辑符号;
使用ScriptEngine提供的put函数将表达式中的变量替换为仿真结果文件中的实际值;
调用ScriptEngine提供的eval函数,计算String类型的逻辑表达式。
将仿真结果文件中的每一条数据都进行上述操作,操作结果为true时,给数据添加一个“pass”标签,否则添加“not pass”标签,这样就得到了可以用于机器学习方法的标记好的测试数据文件TC。
步骤3:生成组件环境假设Assume;具体包括:
本发明主要考虑了两种方法,分别是决策树和遗传算法。决策树常用于二分类问题,本发明采用最大信息增益作为结点划分依据构建决策树,具体步骤如下:
读入测试数据迭代建立决策树;决策树的创建需要属性集、数据集和分支划分依据。将SCADE模型的输入属性和“是否符合需求R”的标签属性合并为属性集,将测试数据文件TC作为数据集,选取最大信息增益为划分依据,实现决策树ID3算法;
Algorithm1决策树生成算法
Input:数据集D,属性集A,标签
Output:决策树根节点
过程:函数TreeGenerate(D,A)
现结合上述伪代码对该算法进行说明。
创建一个结点对象node;
若数据集D中样本数据全属于“pass”或“not pass”,则将node标记为“pass”或“not pass”类叶子结点,返回;否则继续;
若变量集A(即模型输入输出变量)不为空集或数据集D中样本在A上取相同值,则将node标记为数据集D中“pass”和“not pass”占多数的那个标签,返回;否则继续;
从变量集A中计算出信息增益最大的变量作为最优划分属性a*;
For a*的每个取值ak,DO:
为node生成一个分支,令Dv表示数据集D中所有在A变量上取值为ak的一条数据的集合;
若Dv是空集,将分支结点标记为叶结点,其标签值取数据集D中“pass”和“notpass”占多数的那个标签,返回;
否则,Dv替换数据集D,从变量集A中删除a*,返回1进入迭代生成一颗子树。
总流程图见图3。
决策树构建完毕并进行剪枝处理后,可以通过先序遍历得到它代表的环境假设Assume,具体做法是:
读取决策树并生成Assume;对于任意一个非叶子结点,设它的取值是x,对应的属性是A;若属性A是连续性属性,则取该结点通向其左孩子的分支对应的逻辑表达式 ck=‘A<=x’,取该结点通向其右孩子的分支对应的逻辑表达式ck=‘A>x’ (k=1,2,...);若属性A是离散属性,则取该结点通向其左孩子的分支对应的逻辑表达式 ck=’A=x’,取该结点通向其右孩子的分支对应的逻辑表达式ck=’A≠x’(k=1,2,...);
按上述规则,每当遍历到一个标签属性值为“pass”的叶子结点时,都可以找到一条从决策树根结点到该叶子结点的路径,从而得到n个逻辑表达式c1...cn,对这n个表达式取合取式A1=c1^c2^...cn,A1即为一条从根节点到叶子结点路径所对应的Assume;由于一颗决策树可能包含多个标签属性值为“pass”的叶子结点,那么可以得到 A1,...,As共s个Assume;取A1...As的析取式,最终得到组件环境假设Assume=A1VA2V... VAs。
验证Assume是否符合要求;在Assume的限制下为模型生成大量测试用例后转换成场景文件进行仿真,若仿真结果都为真,可以认为Assume符合要求,否则进入下一轮循环,重新生成测试用例集并与上一轮测试用例合并;当Assume符合要求或迭代达到次数上限时停止循环,输出最后一个Assume。具体算法图见图3。
决策树适用于数据集中的数据能较好地覆盖模型输入定义域且数据量足够的情况,否则采用遗传算法的机器学习方法,实现组件环境假设Assume的自动生成;包括:
初始化Assume个体种群、随机选择双亲生成下一代个体、生成足够数量种群后,选择历代种群中最符合需求的个体作为Assume输出。参见图4,具体算法如下:
Algorithm2遗传算法生成Assume
Output:预设的需求R,需要的种群数量Max_Num,每个种群中个体数量N
Output:Assume
现结合上述伪代码对本发明的遗传算法做进一步说明。
首先定义遗传算法中的个体为一颗最大深度不超过Max_Depth的树,树的根结点打上一个逻辑符号表示的标签(如<,≤,>,≥,∨,∧,=),随机选择如下表所示的语法表达式1或2右侧的任一个选项进行递归生成子树;叶子结点要求标签是const常量或控制点cp。生成的一个个体示例见图5。
表一:语法表达式
or-exp | ::=or-exp∨or-exp|and-exp |
And-exp | ::=and-exp∧and-exp|rel |
rel | ::exp(<|≦|≧|>|=)0 |
exp | ::exp(+|-|*|/)exp|const|cp |
初始化种群:随机生成一个拥有N个个体数量的种群Pn;
对种群中每个个体X,计算适应度:获取测试用例TS,令TP={TS中满足Assume 的测试用例数量},TN是不满足的,则定义个体A的v-sound=TP/(TP+TN);
informative=(TP+TN)/TS;
采用轮盘选择法,令每个个体被选择的概率与其适应度成正比,每次在种群中选择两个个体作为双亲产生下一代的个体加入到下一代种群中,直到下一代种群数目达到N时结束,产生下一代的方法是随机选择以下三种方法中的一个产生:
(a)从双亲中各任选一支子树,交换选中的子树,得到两个新个体;
(b)从当前种群中随机选择一个个体保留;
(c)随机选中双亲中的一个,对选中的个体,随机选中它的一个子树,将其替换为随机生成的一颗子树,替换后得到的个体为下一代新个体;
其中,a方法必须满足:
两个子树的根节点类型一致;
新生成个体的最大深度不超过Max_Depth;
新生成个体所含合取、析取符数量不超过预设值;
若所选子树的根节点类型是表达式,则该子树的所有控制点类型的结点中的控制点都要在同一位置。
c方法必须满足上述条件的后三个。
若新生成Pn+1种群后,n+1达到预设的种群数量上限,则结束算法,否则返回1 继续生成。
至此,遗传算法利用测试用例集生成了(n+1)*N个Assume,流程图见图4。挑选其中最符合预设需求R的作为生成的组件环境假设,工具运行流程结束。
基于上述方法,本发明还提出了一种实现SCADE模型组合验证环境假设自动生成的工具,该工具是基于SCADE提供的API接口和机器学习技术实现的,通过加载用户指定目标软件组件获取I/O信息,对I/O信息进行映射处理,采用随机自动测试技术生成指定数量的测试用例并转换为SCADE仿真的场景文件,并读取使用SCADE仿真器仿真后得到的仿真结果文件,生成数据集,而后根据数据集,借助机器学习算法实现 Assume自动生成。为了在使用过程中尽量减少工程师手动操作,工具尽可能使用最终结果文件的形式参与到必要手动操作如使用SCADE进行仿真,保障了工具的使用效率。该SCADE模型组件环境假设自动生成工具,基于SCADE支持的API实现模型加载,基于自动测试技术实现SCADE仿真场景文件自动生成,并采用机器学习方法实现假设的自动生成。综上,该面向SCADE的SCADE模型组件自动生成方法分为模型加载、数据集生成和组件假设生成三个步骤,详见图1。采用基于精度的SCADE数据类型到Java数据类型转换映射规则,详见图2,并采用自适应随机测试方法自动生成测试用例,以最大信息增益为划分准则构建决策树。
SCADE模型加载主要通过EMF和SCADE提供的API实现。EMF是基于Eclipse 的模型框架,它是基于Java进行MDA模型驱动开发的重要技术支持。EMF项目是一个建模框架和代码生成工具,根据XML(SCADE模型代码可以使用XML表达)中描述的模型规范,EMF可以提供运行时支持,将模型转换成高效的、语义准确的的Java 类以及一组允许查看和基于命令的模型编辑的适配器类。EMF在org.eclipse.emf.common.util工具包中支持读入模型本地路径后创建一个模型专属URL 用于模型加载。
而SCADE提供的Java API支持获取:全部操作符(SCADE的模型是由n个操作符组成,操作符中又可以嵌套,因此可以将操作符视为软件模型的组件)、对应的常量、输入变量、输出变量、预设的输入输出定义域等信息。
使用机器学习方法生成环境假设Assume需要数据集的支撑,采用随机生成测试用例并将测试数据映射到仿真场景文件,最后读取仿真结果生成机器学习方法所需的数据集。
Claims (9)
1.一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:包括以下步骤:
S100:基于SCADE支持的API,获取目标SCADE模型的I/O信息;
S200:对I/O信息进行映射处理,生成指定数量的测试用例;
S300:将测试用例转换为SCADE仿真的场景文件;
S400:采用SCADE仿真器对SCADE仿真的场景文件进行仿真,得到仿真结果文件;
S500:基于仿真结果文件,生成环境假设Assume所需的数据集;
S600:基于数据集,借助机器学习算法生成组件环境假设Assume。
2.根据权利要求1所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:S200包括以下步骤:
基于SCADE数据类型到Java数据类型的映射规则,将I/O信息进行映射处理,得到完整的SCADE模型输入列表;
采用随机自适应测试用例自动生成方法,为SCADE模型输入列表中的每个输入参数随机生成一个数值,最终得到n个测试用例,所有的测试用例构成测试用例列表。
3.根据权利要求2所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:所述的SCADE数据类型到Java数据类型的映射规则,包括:
typeConvertMap.put("uint8","short");
typeConvertMap.put("uint16","short");
typeConvertMap.put("uint32","int");
typeConvertMap.put("uint64","long");
typeConvertMap.put("int8","short");
typeConvertMap.put("int16","short");
typeConvertMap.put("int32","int");
typeConvertMap.put("int64","long");
typeConvertMap.put("float32","float");
typeConvertMap.put("float64","double");
typeConvertMap.put("bool","bool");
typeConvertMap.put("char","char")。
4.根据权利要求2所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:所述的采用随机自适应测试用例自动生成方法,为SCADE模型输入列表中的每个输入参数随机生成一个数值,最终得到n个测试用例,具体为:对每个输入参数执行以下操作,最终得到n个测试用例:
若输入参数取自于连续区间,则在其定义域上插入若干个控制点,控制点将定义域分成若干个小区间,在每个小区间上随机取值,得到的数值作为该输入参数的一个测试取值;
若输入参数取自于离散区间,则在其定义域上随机生成n个候选测试点,对每个测试点,取其与该输入参数测试数据集中每个测试数据的距离的最小值,该最小值作为一个测试数据,若该输入参数的测试数据集为空则随机选一个候选测试点加入;而对每个测试点,取其与测试数据集中每个测试数据的距离的最大值,该最大值作为测试数据加入该输入参数的测试数据集;重复上述过程,直至达到最大循环次数或该参数测试数据集数据量达到上限。
5.根据权利要求2所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:S300中,基于以下SCADE仿真场景格式模板,将每组测试用例转换为SCADE仿真的场景文件中的一个仿真用例;
SSM::set Operator1/Input1 1.0;
SSM::set Operator1/Input2 2.0;
SSM::cycle 1;
其中,Input1和Input 2指模型输入参数名,cycle指该仿真用例被执行的次数。
6.根据权利要求1所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:S400中,采用SCADE仿真器对SCADE仿真的场景文件进行仿真,得到.csv后缀的仿真结果文件,其格式表示为:
第一行视为表头,自左向右记载了步骤序号STEP、模型输入参数列表和所有输出;
第二行以分号隔开所有数据和序号。
7.根据权利要求1所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:S500具体包括:
联合预输入的逻辑语言描述的需求R,对每一个仿真结果文件进行解析,得到操作结果;
若操作结果为true,则给该仿真结果添加“pass”标签,否则添加“not pass”标签;
得到标记好的生成环境假设Assume所需的数据集;
所述的对每一个仿真结果文件进行解析,具体实现方法如下:
将逻辑语言替换为逻辑符号;
将表达式中的变量替换为仿真结果文件中的实际值;
计算String类型的逻辑表达式。
8.根据权利要求7所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:S600中,基于数据集,采用决策树生成组件环境假设Assume,具体实施方法为:
将SCADE模型的输入属性、“pass”标签属性、“not pass”标签属性合并为属性集;选取最大信息增益为分支划分依据;根据属性集、数据集和分支划分依据,建立决策树:
先序遍历决策树,对于任意一个非叶子结点,设它的取值是x,对应的属性是A;若属性A是连续性属性,则取该结点通向其左孩子的分支对应的逻辑表达式ck=‘A<=x’,取该结点通向其右孩子的分支对应的逻辑表达式ck=‘A>x’,其中k=1,2,...;若属性A是离散属性,则取该结点通向其左孩子的分支对应的逻辑表达式ck=‘A=x,取该结点通向其右孩子的分支对应的逻辑表达式ck=‘A≠x’,其中,k=1,2,...;
按上述规则,每当遍历到一个标签属性值为“pass”的叶子结点时,都可以找到一条从决策树根结点到该叶子结点的路径,从而得到n个逻辑表达式c1...ck…cn,对这n个表达式取合取式A1=c1^c2^...cn,A1即为一条从根节点到叶子结点路径所对应的Assume;
对于一颗决策树,可以得到A1,...,As共s个Assume;取A1...As的析取式,最终得到组件环境假设Assume=A1VA2V...VAs;
在组件环境假设Assume=A1\/A2\/...\/As的限制下,对S300得到的SCADE仿真的场景文件进行仿真,若仿真结果均为真,则认为该组件环境假设Assume=A1\/A2\/...\/As符合要求;否则重新生成指定数量的测试用例,并将重新生成的测试用例与上一轮测试用例合并,并执行S300;
当组件环境假设Assume符合要求或迭代达到次数上限时停止循环,输出最后一个组件环境假设Assume。
9.根据权利要求1所述的一种基于机器学习的SCADE模型组合验证环境假设自动生成方法,其特征在于:S600中,基于数据集,采用遗传算法生成组件环境假设Assume,具体实施方法为:
初始化组件环境假设Assume个体种群;
随机选择双亲生成下一代个体;
生成足够数量种群后,选择历代种群中最符合需求的个体作为最终输出的组件环境假设Assume。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111228147.2A CN114036041A (zh) | 2021-10-21 | 2021-10-21 | 一种基于机器学习的scade模型组合验证环境假设自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111228147.2A CN114036041A (zh) | 2021-10-21 | 2021-10-21 | 一种基于机器学习的scade模型组合验证环境假设自动生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036041A true CN114036041A (zh) | 2022-02-11 |
Family
ID=80141689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111228147.2A Pending CN114036041A (zh) | 2021-10-21 | 2021-10-21 | 一种基于机器学习的scade模型组合验证环境假设自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036041A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560340A (zh) * | 2023-05-15 | 2023-08-08 | 三峡科技有限责任公司 | 故障远程会话指导诊断系统 |
-
2021
- 2021-10-21 CN CN202111228147.2A patent/CN114036041A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560340A (zh) * | 2023-05-15 | 2023-08-08 | 三峡科技有限责任公司 | 故障远程会话指导诊断系统 |
CN116560340B (zh) * | 2023-05-15 | 2023-12-01 | 三峡科技有限责任公司 | 故障远程会话指导诊断系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9020872B2 (en) | Detecting missing rules with most general conditions | |
Durán et al. | FLAME: a formal framework for the automated analysis of software product lines validated by automated specification testing | |
CN108279885B (zh) | 一种对多个模型代码进行软件集成的方法及装置 | |
CN113238932B (zh) | 测试用例自动生成方法 | |
Wille et al. | Custom-tailored variability mining for block-based languages | |
Berzins et al. | Using transformations in specification-based prototyping | |
CN114036041A (zh) | 一种基于机器学习的scade模型组合验证环境假设自动生成方法 | |
Azzouzi et al. | A survey on systems engineering methodologies for large multi-energy cyber-physical systems | |
Krupalija et al. | New graphical software tool for creating cause-effect graph specifications | |
CN117369521A (zh) | 用于无人机决策的行为树模型路径生成方法、装置及设备 | |
Minor et al. | Acquiring adaptation cases for scientific workflows | |
CN115408289A (zh) | 一种面向scade模型的测试用例自动生成方法 | |
Lai et al. | Defining and verifying behaviour of domain specific language with fUML | |
Garro et al. | Cyber-physical systems engineering: model-based solutions. | |
CN115033280A (zh) | 一种基于知识图谱的需求规格文档自动化生成方法及存储介质 | |
Babkin et al. | Analysis of the consistency of enterprise architecture models using formal verification methods | |
Otto et al. | A flow graph based approach for controlled generation of aas digital twin instances for the verification of compliance check tools | |
Busch et al. | A cross-disciplinary language for change propagation rules | |
Tatale et al. | A Survey on Test Case Generation using UML Diagrams and Feasibility Study to Generate Combinatorial Logic Oriented Test Cases. | |
Leppänen | Methodology for spatial homogenization in Serpent 2 | |
Burgueno et al. | Tractstool: Testing model transformations based on contracts | |
Strasser et al. | Engineering and validating cyber-physical energy systems: Needs, status quo, and research trends | |
Amalia et al. | Application of The Equivalent Partitioning Method in Testing for Automatic Test Case Generation on The Digi-OTA System | |
Haspl et al. | Software toolchain for modeling and transforming robotic workflows into formally verifiable model representations | |
Ellsel et al. | Using MBSE With SysML to Analyze Change Impacts, Including Efforts, in Technical Systems |
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 |