CN116090183B - 一种面向scr需求模型的数字化模拟方法和系统 - Google Patents

一种面向scr需求模型的数字化模拟方法和系统 Download PDF

Info

Publication number
CN116090183B
CN116090183B CN202211596559.6A CN202211596559A CN116090183B CN 116090183 B CN116090183 B CN 116090183B CN 202211596559 A CN202211596559 A CN 202211596559A CN 116090183 B CN116090183 B CN 116090183B
Authority
CN
China
Prior art keywords
simulation
model
dsl
behavior
current
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
CN202211596559.6A
Other languages
English (en)
Other versions
CN116090183A (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 CN202211596559.6A priority Critical patent/CN116090183B/zh
Publication of CN116090183A publication Critical patent/CN116090183A/zh
Application granted granted Critical
Publication of CN116090183B publication Critical patent/CN116090183B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/02Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]

Abstract

本发明提供一种面向SCR需求模型的数字化模拟方法和系统。其中方法包括根据待模拟的系统行为和结构,构建DSL模型和SCR模型;根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系;根据DSL模型的用户行为场景模型获取模拟事件集合;根据DSL模型的执行流程模型获取模拟事件的模拟行为;选择模拟事件,从初始状态开始,依次执行模拟行为;遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态。本发明有利于数字化模拟中关键信息的提取以及在模拟中提供模拟功能和模拟行为等动态特征。

Description

一种面向SCR需求模型的数字化模拟方法和系统
技术领域
本发明属于机载安全关键软件的建模与数字化模拟技术领域,尤其涉及一种面向SCR需求模型的数字化模拟方法和系统。
背景技术
现代机载安全关键领域,系统所需实现的功能越来越多,系统的复杂性程度也大幅提升。随之这类系统的安全性也日渐重要,并成为系统开发需要考虑的核心问题。但是,机载软件无法像飞机的蒙皮、电缆、面板等硬件一样进行检查和试验。这类软件系统的安全性需要依托严格、规范的软件研制流程来保障。因此,使用语义严谨、规范的数学模型来模拟系统在不同环境下的工作情况,是保证系统安全性的最优方法之一,而在需求阶段就能够建立的需求模型又能够大大降低发现安全性隐患后的修复成本。
国际系统工程协会提出了基于模型的系统工程(MBSE)这一概念,强调在复杂关键系统领域中使用多层级的抽象模型来描述系统的工作,同时认为基于离散逻辑的数理模型会在系统设计、数字化模拟等阶段带来巨大的好处。目前常见的用于安全关键系统建模的数学模型有架构分析和设计语言AADL(ArchitectureAnalysis andDesign Language)、SCR(Software CostReduction)模型和需求状态机语言RSML(Requirement State MachineLanguage)。AADL在系统的架构设计阶段对系统架构进行数学建模,对系统构件及其特征、构件间的数据传输和运行模式进行模拟;SCR和RSML则是在需求制定阶段,将需求的语义表示为数学模型,SCR着眼于系统中的变量以及它们取值的映射关系,而RSML将需求中的系统部件进行划分,每个部件用状态机表示,其状态转换由部件中的信号量决定。
但是AADL是系统架构层面的数学模型,虽然能够从静态结构和动态过程两个方面对系统进行安全性分析,但在系统的架构设计阶段才能进行,因此发现安全性问题时的修复成本较高;而SCR和RSML虽然都是需求层面的数学模型,但只着重于系统的静态性质,包括系统中的数据以及数据之间的映射关系,却没有对系统动态工作过程的模拟,不能完全有效地确保动态运行过程的安全性。
发明内容
本发明针对现有技术中的不足,提供一种面向SCR需求模型的数字化模拟方法和系统。
第一方面,本发明提供一种面向SCR需求模型的数字化模拟方法,包括:
根据待模拟的系统行为和结构,构建DSL模型和SCR模型;
根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系;
根据DSL模型的用户行为场景模型获取模拟事件集合;
根据DSL模型的执行流程模型获取模拟事件的模拟行为;
选择模拟事件,从初始状态开始,依次执行模拟行为;
遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态。
进一步地,所述根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系,包括:
获取所有输入变量,存入InputSet集合;
获取所有中间变量和输出变量,存入VarSet集合;
获取所有模式集,存入ModeClassSet集合;
建立ModeClassSet每个元素ModeClass到一个List列表的映射关系,List列表中存储的元素是<source,activation,destiny>的三元组;
从SCR模型的表格函数中找到当前ModeClass对应的模式转换表,遍历每个表格行,建立新的三元组<source,activation,destiny>,将源模式填入source;将转换激励填入activation;将目标模式填入destiny;将新的三元组<source,activation,destiny>加入到ModeClass映射的三元组List列表中;
建立VarSet中每个元素Var到一个List列表的映射关系,List列表中存储的元素是<mode,condition/activation,assignment>的三元组;
从SCR模型的表格函数中找到当前Var所关联的表格,遍历每个表格行,建立新的三元组<mode,condition/activation,assignment>;如果当前表格存在依赖模式集,则将表格行的模式填入mode,否则就填null;如果当前表格为条件表,则将条件填入condition/activation,如果是激励表,则将激励填入condition/activation;最后还要将输出值填入assignment;将新的三元组<mode,condition/activation,assignment>加入到Var映射的三元组List列表中。
进一步地,所述根据DSL模型的用户行为场景模型获取模拟事件集合,包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为用户行为场景模型的情况下,获取Diagram标签下所有的<DSL:User>;
对每个User,建立User名称到一个模拟功能集合的映射关系;遍历<DSL:Association>节点,如果source为当前User节点,则通过Association的Target获取到对应的<DSL:Occasion>用户场景,并将Occasion作为当前User触发的模拟功能加入到User所映射的模拟功能集合中。
进一步地,所述根据DSL模型的执行流程模型获取模拟事件的模拟行为,包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为功能执行流程模型的情况下,遍历此前从用户行为场景模型中提取的模拟功能集合;
对每个模拟功能,建立模拟功能名称到一个模拟行为列表的映射关系;功能执行流程模型中模拟行为存在的执行顺序,使用List列表进行存储;遍历<DSL:PseudoState>节点,找到起始节点Start;
从起始节点开始,从<DSL:Transition>中找到Source为当前节点的转换;根据Transition的Target从<DSL:Behavior>中找到下一节点;将根据Transition的Target找到的Behavior节点作为模拟行为加入当前遍历到的模拟功能对应的模拟行为列表,并继续重复本操作,直至下一节点为End结束节点。
进一步地,所述选择模拟事件,从初始状态开始,依次执行模拟行为,包括:
获取到当前所有变量的初始状态;
对所有InputSet中的输入变量赋予初值,并对所有的Var和ModeClass进行一轮赋值传播;
获取User到模拟功能集合的映射关系;
选择其中一个角色User开始数字化模拟;
根据所选择的User,从映射关系中获取所选择的User对应的模拟功能集合,选择其中一个功能开始模拟;
从模拟功能到模拟行为列表的映射关系中,找到所选的模拟功能对应的模拟行为列表,并顺序执行其中的所有模拟行为;
对每个待执行的模拟行为,遍历获取的InputSet集合;如果当前模拟行为赋值的是当前遍历到的变量,则对该变量进行值的修改;
依次执行完所有模拟行为,将所有需要进行赋值的输入变量进行赋值。
进一步地,所述遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态,包括:
在模拟行为对所有输入变量的赋值完成后,保存当前变量取值的状态State;
遍历VarSet,判断当前Var的关联表格是条件表还是激励表;
如果是条件表,判断是否具有依赖模式集;
如果没有依赖模式集,则将Var对应的List中所有三元组取出并遍历;
如果当前三元组中的条件被当前状态State满足,则将三元组的assignment赋值给Var;
如果有依赖模式集,则将Var对应的List中所有mode等于当前依赖模式集所处的模式的三元组取出并遍历;
如果当前三元组中的条件被当前状态State满足,则将三元组的assignment赋值给Var;
如果是激励表,判断是否具有依赖模式集;
如果没有依赖模式集,则将Var对应的List中所有三元组取出并遍历;
如果当前三元组中的激励被当前状态State和上一状态_State的转换满足,则将三元组的assignment赋值给Var;
如果有依赖模式集,将Var对应的List中所有mode等于当前依赖模式集所处的模式的三元组取出并遍历;
如果当前三元组中的条件被当前状态State和上一状态_State的转换满足,则将三元组的assignment赋值给Var;
遍历ModeClassSet,将ModeClass对应的List中source等于当前ModeClass所属模式的三元组取出并遍历;
如果当前三元组中的激励被当前状态State和上一状态_State的转换满足,则让ModeClass处于三元组的destiny模式上;
判断本次传播完成后的状态State’对比当前状态State是否产生了变化;
如果产生了变化,则令State=State’,_State=State,重新遍历VarSet,判断当前Var的关联表格是条件表还是激励表;
如果不再产生变化,则达到稳定状态。
第二方面,本发明提供一种面向SCR需求模型的数字化模拟系统,包括:
构建模块,用于根据待模拟的系统行为和结构,构建DSL模型和SCR模型;
第一获取模块,用于根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系;
第二获取模块,用于根据DSL模型的用户行为场景模型获取模拟事件集合;
第三获取模块,用于根据DSL模型的执行流程模型获取模拟事件的模拟行为;
选择模块,用于选择模拟事件,从初始状态开始,依次执行模拟行为;
映射约束遍历模块,用于遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态。
第三方面,本发明提供一种计算机设备,包括处理器和存储器;其中,处理器执行存储器中保存的计算机程序时实现第一方面所述的面向SCR需求模型的数字化模拟方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现第一方面所述的面向SCR需求模型的数字化模拟方法的步骤。
本发明提供一种面向SCR需求模型的数字化模拟方法和系统。其中方法包括根据待模拟的系统行为和结构,构建DSL模型和SCR模型;根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系;根据DSL模型的用户行为场景模型获取模拟事件集合;根据DSL模型的执行流程模型获取模拟事件的模拟行为;选择模拟事件,从初始状态开始,依次执行模拟行为;遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态。
本发明的模拟中使用了SCR模型作为模拟的主体,SCR模型是基于变量的精确定义以及其间的取值映射关系的系统模型,且模型具有扁平化特征,相比于DSL模型,更加侧重于模拟中确定各个状态所需的变量取值,有利于数字化模拟中关键信息的提取。在该数字化模拟方法中加入了DSL模型的用户行为场景模型、功能执行流程模型等系统动态模型作为辅助,有利于在模拟中提供模拟功能和模拟行为等动态特征。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种面向SCR需求模型的数字化模拟方法的流程图;
图2为本发明实施例提供的DSL中不同种类图的从属结构图;
图3为本发明实施例提供的提取SCR变量关系得到的数据结构示意图;
图4为本发明实施例提供的提取DSL模拟功能信息得到的数据结构示意图;
图5为本发明实施例提供的单次遍历SCR变量关系进行赋值传播的过程活动图;
图6为本发明实施例提供的完整的数字化模拟流程的示意活动图;
图7为本发明实施例提供的一种面向SCR需求模型的数字化模拟系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一实施例中,如图1所示,本发明实施例提供一种面向SCR需求模型的数字化模拟方法,包括:
步骤101,根据待模拟的系统行为和结构,构建DSL模型和SCR模型。
领域规约语言(DSL)是一种系统开发中使用到的建模语言,同时也是一种通用的图形化建模语言,用于描述、分析、设计和验证那些包含硬件、软件、设备、人员和信息的复杂系统。它具备领域通用特性,在系统工程方向对其进行了扩展和延续,消除了不同方法在表达式和术语上的差异,避免了符号表示和理解上不必要的混乱。DSL建模语言中各类图的从属结构如图2所示。DSL可以分为系统动态模型、需求和系统静态模型三类。而其又具体化为共计八种子模型。
在本实施例中,在面向SCR需求模型的数字化模拟方法中,选取其中两种图:用户行为场景模型(UBS)和功能执行流程模型(FBS)。基于DSL模型中系统动态模型所具有的动态特性,在需求数字化模拟方法中,必须具备以上两种图,才能够从系统的不同角度对动作和行为进行描述。
UBS中主要包含的要素是User用户,以及Occasion用户场景。单角色系统可以只有一个User,将图中的用户场景与User连接,能够表示该User可以执行的模拟功能。同时,User也可以在多角色系统的模拟中,通过连接不同的用户场景,表示多角色之间的权限问题。
FBS主要包含的要素有:Start起始节点、Behavior行为以及End结束节点。每一张FBS都从起始节点开始,并于结束节点结束。中间的每一个行为表示的是一个模拟功能中发生了哪些动作。FBS中的每个行为必须是原子行为,每个行为按序连接。
一个模拟功能的FBS也可以嵌套另一个模拟功能,使用到的元素为Sequence。对于每个FBS,它的名称必须对应UBS的一个Occasion,表示该FBS属于的模拟功能。
在表示某些带有分支的模拟操作时,还可以用到Decision元素,表示一个模拟断言,判断条件成立与否。它内部使用到的判断关键字为“Assert”。
在行为Behavior中,可以使用“Set”关键字,赋值变量。
步骤102,根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系。
基于四变量模型的SCR用于描述系统需求中变量之间取值的映射关系。基于四变量模型的SCR是一种专门面向机载软件系统领域设计的,自然语言需求的规范化和形式化模型。本发明中使用的SCR模型将SCR方法与RSML建模语言中条件的表达方式相结合,得到了一种形式化表格变量关系模型。本发明中使用的SCR模型主要分为两大部分,分别是变量字典与表格函数。
变量字典中保存所有系统需求所涉及到的变量,其中部分变量可能并没有被需求指明,而是人为提取其中的实体化信息总结而成。根据其在系统中的职能,可以将变量字典中的变量分为输入变量、输出变量、中间变量和模式集。
输入变量是由系统以外的要素,如外部环境决定,由系统的传感器获取,作为系统给其他变量赋值的依据的变量;输出变量是系统通过判断其他变量的取值,决定其不同取值的变量,作为系统的输出发送给系统以外的要素,如系统的使用者等;中间变量也是由系统根据其他变量取值的不同,决定其不同赋值,但它的值只用于在系统中进行其他判断,而不输出到外部环境的变量;模式集则是用于描述当前系统的工作模式,模式集之间互不影响,表示多个互相正交的模式维度。而同模式集内部,仅同时处于一个工作模式下。
表格函数描述变量字典中各变量之间的赋值关系。表格函数一共分为三类,分别是条件表、激励表和模式转换表。
模式转换表描述各个模式集在其所处模式上是如何互相切换的。表格中整理了若干条模式转换,每条模式转换都是{源模式source,激励activation,目标模式destiny}的形式,表示在activation发生时,若此时处于source模式下,则应当立即转换到destiny模式。模式转换表中的内容提取自原始需求对各个工作模式的定义。其中activation表示的是变量字典中其他的若干个变量发生的一次变量取值的变化,是表述两个状态之间变化的谓词。
条件表描述与其关联的输出变量或中间变量在各种不同条件情况下的不同赋值。条件表可以对某个模式集产生依赖,这表示当该模式集处于不同的模式下时,本条件表在不同条件情况下对变量的赋值可能会不同。条件表中的每一行都是{模式mode,条件condition,赋值assignment}的形式,表示依赖的模式集处于mode模式下时,若条件condition得到满足,则将assignment值赋给该变量。条件表的内容提取自原始需求中对工作部件在单个状态上的响应情况的定义。
激励表描述与其关联的输出变量或中间变量在各种不同激励发生时的不同赋值。激励表也可以对模式集有依赖。其表格行的形式为{模式mode,激励activation,赋值assignment},表示处于mode时,activation若发生,则将assignment赋值给变量。激励表的内容提取自原始需求中对工作部件在两个状态之间的转换上变化情况的定义。
示例性地,根据SCR模型的定义,本步骤包括:
获取所有输入变量,存入InputSet集合。
获取所有中间变量和输出变量,存入VarSet集合。
获取所有模式集,存入ModeClassSet集合。
建立ModeClassSet每个元素ModeClass到一个List列表的映射关系,List列表中存储的元素是<source,activation,destiny>的三元组。
从SCR模型的表格函数中找到当前ModeClass对应的模式转换表,遍历每个表格行,建立新的三元组<source,activation,destiny>,将源模式填入source;将转换激励填入activation;将目标模式填入destiny;将新的三元组<source,activation,destiny>加入到ModeClass映射的三元组List列表中。
建立VarSet中每个元素Var到一个List列表的映射关系,List列表中存储的元素是<mode,condition/activation,assignment>的三元组。
从SCR模型的表格函数中找到当前Var所关联的表格,遍历每个表格行,建立新的三元组<mode,condition/activation,assignment>;如果当前表格存在依赖模式集,则将表格行的模式填入mode,否则就填null;如果当前表格为条件表,则将条件填入condition/activation,如果是激励表,则将激励填入condition/activation;最后还要将输出值填入assignment;将新的三元组<mode,condition/activation,assignment>加入到Var映射的三元组List列表中。
如图3所示,图3为本步骤提取得到的SCR信息数据结构示意图。
步骤103,根据DSL模型的用户行为场景模型获取模拟事件集合。
表1为DSL中UBS的模型文件的各种标签名,以及它们对于数字化模拟方法来说所包含的内容的对应关系。
表1DSL模型文件UBS相关标签包含的内容
模型文件以XML类型的文件存储,顶层节点是<XML:content>,它包裹了整个XML的全部内容。在顶层节点下的<DSL:Model>节点就存储了DSL的完整模型,包括其中模型元素之间的从属结构。<DSL:Package>节点保存了模型的组织层次,模型中所用到的组件及其关联。在<DSL:Diagram>节点中存储了模型中任何一张图的信息,比如模型图的类型、图形中组件的分类。
除了上述四种节点外,对于UBS的提取步骤最重要的就是剩下三个节点:<DSL:User>存储UBS的User信息;<DSL:Occation>存储UBS中的每个用户场景,<DSL:Association>存储UBS中用户场景和User的关联关系。
示例性地,根据上述描述,本步骤包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>。
在Diagram标签类型为用户行为场景模型的情况下,获取Diagram标签下所有的<DSL:User>。
对每个User,建立User名称到一个模拟功能集合的映射关系;遍历<DSL:Association>节点,如果source为当前User节点,则通过Association的Target获取到对应的<DSL:Occasion>用户场景,并将Occasion作为当前User触发的模拟功能加入到User所映射的模拟功能集合中。
步骤104,根据DSL模型的执行流程模型获取模拟事件的模拟行为。
表2为DSL中和FBS的模型文件的各种标签名,与它从数字化模拟层面所包含的内容的对应关系。
表2DSL模型文件FBS相关标签包含的内容
在FBS提取步骤中,最重要的节点是最后三个:<DSL:Transition>中包含了FBS中各个行为之间的先后关系;<DSL:Behavior>存储了FBS所对应的活动下的每个Behavior行为;<DSL:PseudoState>存储了FBS中的各个伪状态,主要是FBS的Start起始节点和End结束节点。
示例性地,根据上述描述,本步骤包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为功能执行流程模型的情况下,遍历此前从用户行为场景模型中提取的模拟功能集合;
对每个模拟功能,建立模拟功能名称到一个模拟行为列表的映射关系;功能执行流程模型中模拟行为存在的执行顺序,使用List列表进行存储;遍历<DSL:PseudoState>节点,找到起始节点Start;
从起始节点开始,从<DSL:Transition>中找到Source为当前节点的转换;根据Transition的Target从<DSL:Behavior>中找到下一节点;将根据Transition的Target找到的Behavior节点作为模拟行为加入当前遍历到的模拟功能对应的模拟行为列表,并继续重复本操作,直至下一节点为End结束节点。
如图4所示,图4为步骤103-104提取得到的DSL信息数据结构示意图。
步骤105,选择模拟事件,从初始状态开始,依次执行模拟行为。
示例性地,本步骤包括:
获取到当前所有变量的初始状态。
对所有InputSet中的输入变量赋予初值,并对所有的Var和ModeClass进行一轮赋值传播。
获取User到模拟功能集合的映射关系。
选择其中一个角色User开始数字化模拟。
根据所选择的User,从映射关系中获取所选择的User对应的模拟功能集合,选择其中一个功能开始模拟。
从模拟功能到模拟行为列表的映射关系中,找到所选的模拟功能对应的模拟行为列表,并顺序执行其中的所有模拟行为。
对每个待执行的模拟行为,遍历获取的InputSet集合;如果当前模拟行为赋值的是当前遍历到的变量,则对该变量进行值的修改。
依次执行完所有模拟行为,将所有需要进行赋值的输入变量进行赋值。
步骤106,遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态。
示例性地,本步骤包括:
在模拟行为对所有输入变量的赋值完成后,保存当前变量取值的状态State。
遍历VarSet,判断当前Var的关联表格是条件表还是激励表。
如果是条件表,判断是否具有依赖模式集。
如果没有依赖模式集,则将Var对应的List中所有三元组取出并遍历。
如果当前三元组中的条件被当前状态State满足,则将三元组的assignment赋值给Var。
如果有依赖模式集,则将Var对应的List中所有mode等于当前依赖模式集所处的模式的三元组取出并遍历。
如果当前三元组中的条件被当前状态State满足,则将三元组的assignment赋值给Var;
如果是激励表,判断是否具有依赖模式集。
如果没有依赖模式集,则将Var对应的List中所有三元组取出并遍历。
如果当前三元组中的激励被当前状态State和上一状态_State的转换满足,则将三元组的assignment赋值给Var。
如果有依赖模式集,将Var对应的List中所有mode等于当前依赖模式集所处的模式的三元组取出并遍历。
如果当前三元组中的条件被当前状态State和上一状态_State的转换满足,则将三元组的assignment赋值给Var。
遍历ModeClassSet,将ModeClass对应的List中source等于当前ModeClass所属模式的三元组取出并遍历。
如果当前三元组中的激励被当前状态State和上一状态_State的转换满足,则让ModeClass处于三元组的destiny模式上。
判断本次传播完成后的状态State’对比当前状态State是否产生了变化。
如果产生了变化,则令State=State’,_State=State,重新遍历VarSet,判断当前Var的关联表格是条件表还是激励表。
如果不再产生变化,则达到稳定状态。
如图5和图6所示,图5展示了单次遍历表格函数进行赋值传播过程的FBS。图6展示了完整的数字化模拟过程FBS。
本发明的模拟中使用了SCR模型作为模拟的主体,SCR模型是基于变量的精确定义以及其间的取值映射关系的系统模型,且模型具有扁平化特征,相比于DSL模型,更加侧重于模拟中确定各个状态所需的变量取值,有利于数字化模拟中关键信息的提取。在该数字化模拟方法中加入了DSL模型的用户行为场景模型、功能执行流程模型等系统动态模型作为辅助,有利于在模拟中提供模拟功能和模拟行为等动态特征。
基于同一发明构思,本发明实施例还提供了一种面向SCR需求模型的数字化模拟系统,由于该系统解决问题的原理与前述面向SCR需求模型的数字化模拟方法相似,因此该系统的实施可以参见面向SCR需求模型的数字化模拟方法的实施,重复之处不再赘述。
在另一实施例中,本发明一个实施例提供的面向SCR需求模型的数字化模拟系统,如图7所示,包括:
构建模块10,用于根据待模拟的系统行为和结构,构建DSL模型和SCR模型。
第一获取模块20,用于根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系。
第二获取模块30,用于根据DSL模型的用户行为场景模型获取模拟事件集合。
第三获取模块40,用于根据DSL模型的执行流程模型获取模拟事件的模拟行为。
选择模块50,用于选择模拟事件,从初始状态开始,依次执行模拟行为。
映射约束遍历模块60,用于遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态。
关于上述各个模块更加具体的工作过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
在另一实施例中,本发明提供一种计算机设备,包括处理器和存储器;其中,处理器执行存储器中保存的计算机程序时实现上述面向SCR需求模型的数字化模拟方法的步骤。
关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
在另一实施例中,本发明提供一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现上述面向SCR需求模型的数字化模拟方法的步骤。
关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的系统、设备和存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上结合具体实施方式和范例性实例对本发明进行了详细说明,不过这些说明并不能理解为对本发明的限制。本领域技术人员理解,在不偏离本发明精神和范围的情况下,可以对本发明技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本发明的范围内。本发明的保护范围以所附权利要求为准。

Claims (7)

1.一种面向SCR需求模型的数字化模拟方法,其特征在于,包括:
根据待模拟的系统行为和结构,构建DSL模型和SCR模型;
根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系;
根据DSL模型的用户行为场景模型获取模拟事件集合;
根据DSL模型的执行流程模型获取模拟事件的模拟行为;
选择模拟事件,从初始状态开始,依次执行模拟行为;
遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态;
其中,所述根据DSL模型的用户行为场景模型获取模拟事件集合,包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为用户行为场景模型的情况下,获取Diagram标签下所有的<DSL:User>;
对每个User,建立User名称到一个模拟功能集合的映射关系;遍历<DSL:Association>节点,如果source为当前User节点,则通过Association的Target获取到对应的<DSL:Occasion>用户场景,并将Occasion作为当前User触发的模拟功能加入到User所映射的模拟功能集合中;
所述根据DSL模型的执行流程模型获取模拟事件的模拟行为,包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为功能执行流程模型的情况下,遍历此前从用户行为场景模型中提取的模拟功能集合;
对每个模拟功能,建立模拟功能名称到一个模拟行为列表的映射关系;功能执行流程模型中模拟行为存在的执行顺序,使用List列表进行存储;遍历<DSL:PseudoState>节点,找到起始节点Start;
从起始节点开始,从<DSL:Transition>中找到Source为当前节点的转换;根据Transition的Target从<DSL:Behavior>中找到下一节点;将根据Transition的Target找到的Behavior节点作为模拟行为加入当前遍历到的模拟功能对应的模拟行为列表,并继续重复本操作,直至下一节点为End结束节点。
2.根据权利要求1所述的面向SCR需求模型的数字化模拟方法,其特征在于,所述根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系,包括:
获取所有输入变量,存入InputSet集合;
获取所有中间变量和输出变量,存入VarSet集合;
获取所有模式集,存入ModeClassSet集合;
建立ModeClassSet每个元素ModeClass到一个List列表的映射关系,List列表中存储的元素是<source,activation,destiny>的三元组;
从SCR模型的表格函数中找到当前ModeClass对应的模式转换表,遍历每个表格行,建立新的三元组<source,activation,destiny>,将源模式填入source;将转换激励填入activation;将目标模式填入destiny;将新的三元组<source,activation,destiny>加入到ModeClass映射的三元组List列表中;
建立VarSet中每个元素Var到一个List列表的映射关系,List列表中存储的元素是<mode,condition/activation,assignment>的三元组;
从SCR模型的表格函数中找到当前Var所关联的表格,遍历每个表格行,建立新的三元组<mode,condition/activation,assignment>;如果当前表格存在依赖模式集,则将表格行的模式填入mode,否则就填null;如果当前表格为条件表,则将条件填入condition/activation,如果是激励表,则将激励填入condition/activation;最后还要将输出值填入assignment;将新的三元组<mode,condition/activation,assignment>加入到Var映射的三元组List列表中。
3.根据权利要求2所述的面向SCR需求模型的数字化模拟方法,其特征在于,所述选择模拟事件,从初始状态开始,依次执行模拟行为,包括:
获取到当前所有变量的初始状态;
对所有InputSet中的输入变量赋予初值,并对所有的Var和ModeClass进行一轮赋值传播;
获取User到模拟功能集合的映射关系;
选择其中一个角色User开始数字化模拟;
根据所选择的User,从映射关系中获取所选择的User对应的模拟功能集合,选择其中一个功能开始模拟;
从模拟功能到模拟行为列表的映射关系中,找到所选的模拟功能对应的模拟行为列表,并顺序执行其中的所有模拟行为;
对每个待执行的模拟行为,遍历获取的InputSet集合;如果当前模拟行为赋值的是当前遍历到的变量,则对该变量进行值的修改;
依次执行完所有模拟行为,将所有需要进行赋值的输入变量进行赋值。
4.根据权利要求2所述的面向SCR需求模型的数字化模拟方法,其特征在于,所述遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态,包括:
在模拟行为对所有输入变量的赋值完成后,保存当前变量取值的状态State;
遍历VarSet,判断当前Var的关联表格是条件表还是激励表;
如果是条件表,判断是否具有依赖模式集;
如果没有依赖模式集,则将Var对应的List中所有三元组取出并遍历;
如果当前三元组中的条件被当前状态State满足,则将三元组的assignment赋值给Var;
如果有依赖模式集,则将Var对应的List中所有mode等于当前依赖模式集所处的模式的三元组取出并遍历;
如果当前三元组中的条件被当前状态State满足,则将三元组的assignment赋值给Var;
如果是激励表,判断是否具有依赖模式集;
如果没有依赖模式集,则将Var对应的List中所有三元组取出并遍历;
如果当前三元组中的激励被当前状态State和上一状态_State的转换满足,则将三元组的assignment赋值给Var;
如果有依赖模式集,将Var对应的List中所有mode等于当前依赖模式集所处的模式的三元组取出并遍历;
如果当前三元组中的条件被当前状态State和上一状态_State的转换满足,则将三元组的assignment赋值给Var;
遍历ModeClassSet,将ModeClass对应的List中source等于当前ModeClass所属模式的三元组取出并遍历;
如果当前三元组中的激励被当前状态State和上一状态_State的转换满足,则让ModeClass处于三元组的destiny模式上;
判断本次传播完成后的状态State’对比当前状态State是否产生了变化;
如果产生了变化,则令State=State’,_State=State,重新遍历VarSet,判断当前Var的关联表格是条件表还是激励表;
如果不再产生变化,则达到稳定状态。
5.一种面向SCR需求模型的数字化模拟系统,其特征在于,包括:
构建模块,用于根据待模拟的系统行为和结构,构建DSL模型和SCR模型;
第一获取模块,用于根据SCR模型获取系统的变量字典,并获取变量所满足的条件或触发的激励,与另外的变量在下一状态取值的映射关系;
第二获取模块,用于根据DSL模型的用户行为场景模型获取模拟事件集合;
第三获取模块,用于根据DSL模型的执行流程模型获取模拟事件的模拟行为;
选择模块,用于选择模拟事件,从初始状态开始,依次执行模拟行为;
映射约束遍历模块,用于遍历所有条件映射和激励映射的约束,进行赋值传播,直至达到稳定状态,得到模拟结果状态;
其中,所述根据DSL模型的用户行为场景模型获取模拟事件集合,包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为用户行为场景模型的情况下,获取Diagram标签下所有的<DSL:User>;
对每个User,建立User名称到一个模拟功能集合的映射关系;遍历<DSL:Association>节点,如果source为当前User节点,则通过Association的Target获取到对应的<DSL:Occasion>用户场景,并将Occasion作为当前User触发的模拟功能加入到User所映射的模拟功能集合中;
所述根据DSL模型的执行流程模型获取模拟事件的模拟行为,包括:
根据文档的树形结构,从文档根标签<XML:content>开始,逐级获取所有子标签,直到获取到所有的<DSL:Diagram>;
在Diagram标签类型为功能执行流程模型的情况下,遍历此前从用户行为场景模型中提取的模拟功能集合;
对每个模拟功能,建立模拟功能名称到一个模拟行为列表的映射关系;功能执行流程模型中模拟行为存在的执行顺序,使用List列表进行存储;遍历<DSL:PseudoState>节点,找到起始节点Start;
从起始节点开始,从<DSL:Transition>中找到Source为当前节点的转换;根据Transition的Target从<DSL:Behavior>中找到下一节点;将根据Transition的Target找到的Behavior节点作为模拟行为加入当前遍历到的模拟功能对应的模拟行为列表,并继续重复本操作,直至下一节点为End结束节点。
6.一种计算机设备,其特征在于,包括处理器和存储器;其中,处理器执行存储器中保存的计算机程序时实现权利要求1-4任一项所述的面向SCR需求模型的数字化模拟方法的步骤。
7.一种计算机可读存储介质,其特征在于,用于存储计算机程序;计算机程序被处理器执行时实现权利要求1-4任一项所述的面向SCR需求模型的数字化模拟方法的步骤。
CN202211596559.6A 2022-12-12 2022-12-12 一种面向scr需求模型的数字化模拟方法和系统 Active CN116090183B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211596559.6A CN116090183B (zh) 2022-12-12 2022-12-12 一种面向scr需求模型的数字化模拟方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211596559.6A CN116090183B (zh) 2022-12-12 2022-12-12 一种面向scr需求模型的数字化模拟方法和系统

Publications (2)

Publication Number Publication Date
CN116090183A CN116090183A (zh) 2023-05-09
CN116090183B true CN116090183B (zh) 2023-11-17

Family

ID=86203509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211596559.6A Active CN116090183B (zh) 2022-12-12 2022-12-12 一种面向scr需求模型的数字化模拟方法和系统

Country Status (1)

Country Link
CN (1) CN116090183B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011055657A1 (de) * 2011-11-23 2013-05-23 Schneider Electric Automation Gmbh Verfahren, System und Computer-Programm-Produkt zur Simulation eines Produktions-Automatisierungssystems mit service-orientierter Architektur
CN103839155A (zh) * 2013-11-13 2014-06-04 重庆大学 一种基于语义网关的异构信息系统模型集成方法
CN103995781A (zh) * 2014-06-10 2014-08-20 浪潮通用软件有限公司 一种基于模型的构件测试用例生成方法
CN105808366A (zh) * 2016-03-14 2016-07-27 南京航空航天大学 一种基于四变量模型的系统安全分析方法
CN107220539A (zh) * 2017-04-18 2017-09-29 南京航空航天大学 基于需求的ima安全验证分析方法
CN109298857A (zh) * 2018-10-09 2019-02-01 杭州朗和科技有限公司 Dsl语句模型的建立方法、介质、装置和计算设备
CN113138849A (zh) * 2020-01-20 2021-07-20 阿里巴巴集团控股有限公司 一种计算资源调度和迁移方法、相关装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9002694B2 (en) * 2012-05-03 2015-04-07 Freescale Semiconductors, Inc. Verification of design derived from power intent

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011055657A1 (de) * 2011-11-23 2013-05-23 Schneider Electric Automation Gmbh Verfahren, System und Computer-Programm-Produkt zur Simulation eines Produktions-Automatisierungssystems mit service-orientierter Architektur
CN103839155A (zh) * 2013-11-13 2014-06-04 重庆大学 一种基于语义网关的异构信息系统模型集成方法
CN103995781A (zh) * 2014-06-10 2014-08-20 浪潮通用软件有限公司 一种基于模型的构件测试用例生成方法
CN105808366A (zh) * 2016-03-14 2016-07-27 南京航空航天大学 一种基于四变量模型的系统安全分析方法
CN107220539A (zh) * 2017-04-18 2017-09-29 南京航空航天大学 基于需求的ima安全验证分析方法
CN109298857A (zh) * 2018-10-09 2019-02-01 杭州朗和科技有限公司 Dsl语句模型的建立方法、介质、装置和计算设备
CN113138849A (zh) * 2020-01-20 2021-07-20 阿里巴巴集团控股有限公司 一种计算资源调度和迁移方法、相关装置及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Pragmatic reuse for DSML development: Composing a DSL for hybrid CPS modeling;Stefan Klikovits;Didier Buchs;Software and Systems Modeling;第20卷(第3期);第837-866页 *
一种基于四变量模型的系统安全性建模与分析方法;胡军;石娇洁;程桢;陈松;王明明;计算机科学(第11期);第200-206页 *
软件产品线可变性建模技术系统综述;聂坤明;张莉;樊志强;软件学报(第9期);第25-43页 *

Also Published As

Publication number Publication date
CN116090183A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US7809669B2 (en) Rule processing system for determining a result response
US8732107B2 (en) Method and system for capturing business rules for automated decision procession
CN108376221B (zh) 一种基于aadl模型扩展的软件系统安全性验证与评估方法
US8423345B1 (en) Mapping between code coverage and model coverage for a design
US7386521B2 (en) Automatic test program generation using extended conditional constraint satisfaction
US5068812A (en) Event-controlled LCC stimulation
EP0676707B1 (en) Expression promotion for hierarchical netlisting
CN114077534A (zh) 测试用例生成方法、装置和计算机可读存储介质
Gomaa et al. A multiple-view meta-modeling approach for variability management in software product lines
Li et al. Automated functional scenarios-based formal specification animation
Lu et al. Zen-CC: An automated and incremental conformance checking solution to support interactive product configuration
CN116090183B (zh) 一种面向scr需求模型的数字化模拟方法和系统
US20090259454A1 (en) Automatic test program generation using extended conditional constraint satisfaction
Pettit et al. Modeling behavioral patterns of concurrent software architectures using Petri nets
WO2013161057A1 (ja) ソースコード検査方法及び装置
CN110928761B (zh) 需求链及其应用的系统和方法
EP1959382A1 (en) Organisation representational system
RU2682003C1 (ru) Способ верификации формальной автоматной модели поведения программной системы
EP1512085A1 (en) Rule processing system and method
CN117369521B (zh) 用于无人机决策的行为树模型路径生成方法、装置及设备
Dan et al. Combining algebraic and model-based test case generation
Weber et al. PyAPI-RTS: A Python-API for RSCAD Modeling
CN113011484B (zh) 基于分类树和判定树的图形化的需求分析及测试用例生成方法
Nesterov et al. Generation of Petri nets using structural property-preserving transformations
Ruvinskaya et al. Development of information technology for the generation and maintenance of knowledge-oriented control 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
GR01 Patent grant
GR01 Patent grant