一种可视化模型检测方法、系统、介质、设备及处理终端技术方案

技术编号:35126541 阅读:23 留言:0更新日期:2022-10-05 09:57
本发明专利技术属于系统形式化建模与验证技术领域,公开了一种可视化模型检测方法、系统、介质、设备及处理终端,使用可视化建模语言xUML4MC建立系统设计模型,使用OPSL以注释方式在设计模型中标注类、方法、语句段及语句具备的性质特征;对设计模型进行词法语法分析,构造附加OPSL性质的抽象语法树;将每个OPSL语句转换为PPTL性质公式并取非后构造出性质非自动机CFA;执行抽象语法树动态生成系统状态,按OPSL语句约束位置和对应CFA进行与运算,构造出结果自动机,如果存在可接受路径则为性质不成立的反例路径,否则性质成立。本发明专利技术弥补了对UML设计模型的直接模型检测,促进模型检测技术在工业界的推广使用。测技术在工业界的推广使用。测技术在工业界的推广使用。

【技术实现步骤摘要】
一种可视化模型检测方法、系统、介质、设备及处理终端


[0001]本专利技术属于系统形式化建模与验证
,尤其涉及一种可视化模型检测方法、系统、介质、设备及处理终端。

技术介绍

[0002]在高度信息化的今天,计算机已经进入到军事国防、工业控制、网络通信、医疗卫生、电子商务等国计民生的各个领域中。然而随着社会对计算机系统依赖的日益增强,尤其是一些关键系统,如飞行器控制系统、银行业务管理系统、火车售票系统、股市交易系统和交通控制调度系统等,一旦出现故障会造成巨额的财产损失甚至是人员伤亡。如何保证现代软件系统的安全性和可靠性是学术界和工程界面临的严重问题。
[0003]软件测试作为传统的软件系统验证手段,其只能证明系统中有错误而无法证明没有错误,存在先天不足。形式化验证则采用数学的方法对待验证系统进行建模和性质描述,在严密的数学理论支撑下证明系统满足期望的性质,提供了一条确保软件系统正确性、安全性和可靠性的有效验证途径。
[0004]模型检测(Model Checking)是一种重要的形式化验证技术,验证时首先需要建立待验证系统的有穷状态迁移模型,并通过时序逻辑公式描述待验证性质,然后在模型检测工具支持下自动通过算法穷尽遍历系统的执行路径以检测性质是否成立,性质不成立时能给出反例路径以帮助工程技术人员进行错误定位和排错。
[0005]软件设计方案验证主要使用SPIN或NuSMV等传统模型检测工具,验证时需要将UML(UnifiedModeling Language)等建模语言描述的软件设计方案转换为SPIN的Promela模型或NuSMV的SMV模型,并将待验证性质描述为线性时序逻辑(Liner

time Temporal Logic,LTL)或计算树逻辑(Computation Tree Logic,CTL)等逻辑公式再进行验证。由于Promela及SMV的模型描述策略和UML等建模语言完全不同,因此模型转换过程往往需要人工完成。由于软件系统越来越复杂且Promela及SMV等建模语言表达能力所限,很难保证模型检测系统抽象模型与原始软件设计方案的一致性。
[0006]同时,由于SPIN、NuMSV等模型检测工具的系统建模语言为Promela、MSV等专用脚本语言,工程技术人员需要额外熟练掌握该语言才能进行系统建模,并且所建模型不具有直观可见性,复杂系统建模难度很高,很难保证模型本身的正确性。另外,待验证性质描述主要使用LTL、CTL等逻辑公式,仍需要工程技术人员熟练掌握相应逻辑系统的语法和语义,并结合建立的待验证系统抽象模型与原始软件设计方案系统性质的对应关系才能够正确定义出待验证性质,更缺乏一种适合工程技术人员使用、直接描述面向对象软件系统设计方案专用性质描述方式。因此,亟需设计一种新的可视化模型检测方法。
[0007]通过上述分析,现有技术存在的问题及缺陷为:
[0008](1)Promela及SMV等为专用脚本式建模语言且表达能力有限,工程技术人员需要额外熟练掌握建模语言才能进行待验证系统建模,并且所建模型不具有直观可见性,复杂系统建模难度很高,很难保证系统抽象模型的正确性及与原始软件设计方案的一致性。
[0009](2)待验证性质需要直接使用LTL、CTL等逻辑公式进行描述,仍需要工程技术人员熟练掌握对应逻辑系统的语法和语义,但由于工程技术人员的数理逻辑专业知识往往比较薄弱,很难使用时序逻辑公式进行准确定义,更缺乏适合工程技术人员使用、直接描述软件系统设计方案专用性质描述方式。
[0010](3)模型检测需要使用SPIN、NuMSV等第三方验证工具,验证时需要使用验证工具的专用建模语言和性质定义方式对待验证软件系统的设计方案和系统性质进行抽象建模和性质描述,验证效率低下且容易出错。
[0011]解决以上问题及缺陷的难度为:(1)需要引入满足软件系统设计建模和模型检测建模的可视化建模语言,让工程技术人员在软件系统设计时一并完成;(2)需要设计合理的可视化系统性质描述方法,能让工程技术人员将软件系统具备的性质特征方便、快捷的直接标注在软件系统的设计模型中;(3)需要自动从中设计模型中提取性质语句自动转换为语义等价的时序逻辑公式,并构造性质非自动机;(4)需要设计高效的模型检测方法,自动构造待验证系统的有穷状态迁移系统,并按照约束位置和性质非自动机进行模型检测验证。
[0012]解决以上问题及缺陷的意义为:本专利技术使用工程技术人员熟悉的可视化系统建模与性质描述方式,将软件系统设计建模、模型检测系统建模融为一体,并将系统具备的性质特征以注释方式标注在设计模型中,由工程技术人员在系统设计时一并完成;同时,实现了待验证性质的提取以及到时序逻辑性质公式的自动转换,并提供了高效模型检测算法实现了对软件设计模型的直接模型检测验证。本专利技术弥补了现有软件设计方案模型检测验证的不足,降低了模型检测中待验证系统建模和性质描述的难度,提升了系统模型检测验证的效率。基于本专利技术可以开发集软件设计与模型检测验证为一体的计算机辅助软件工程工具,让一般工程技术人员在不需要熟练掌握专门建模语言和数理逻辑知识的情况下就可以对软件设计方案进行模型检测验证,为在工程界推广应用模型检测技术奠定基础。

技术实现思路

[0013]针对现有技术存在的问题,本专利技术提供了一种可视化模型检测方法、系统、介质、设备及处理终端,尤其涉及一种以xUML4MC作为待验证系统建模语言、以OPSL作为系统性质描述语言的可视化模型检测方法、系统、介质、设备及处理终端。
[0014]本专利技术是这样实现的,一种可视化模型检测方法,所述可视化模型检测方法包括:使用xUML4MC建立系统设计模型,使用OPSL以注释方式在系统设计模型图中标注类、方法、语句段及语句具备的性质特征;对xUML4MC模型进行词法、语法分析,构造附加了OPSL性质的抽象语法树;将抽象语法树中每个OPSL语句转换为PPTL性质公式,对PPTL公式取非后构造出对应性质非自动机CFA;执行抽象语法树动态生成系统状态,并按OPSL语句约束位置和对应CFA进行与运算,构造出结果自动机,如果存在可接受路径则为性质不成立的反例路径,否则性质成立。
[0015]进一步,所述可视化模型检测方法包括以下步骤:
[0016]步骤一,使用xUML4MC的类图和活动图建立系统模型,使用OPSL以注释方式在系统模型图中标注类、方法、语句段及语句具备的性质特征。
[0017]本步骤可以实现:为工程技术人员提供熟悉的可视化系统建模与性质描述方式,
通过扩展UML定义、具有精确语义的精确语义的xUML4MC建模语言将软件系统设计建模、模型检测系统建模融为一体,并将系统具备的性质特征描述OPSL语句以注释方式标注在设计模型中,由工程技术人员在系统设计时一并完成,降低了模型检测的建模与性质难度,提升了模型检测验证效率。
[0018]步骤二,对xUML4MC模型进行词法、语法分析,构造附加OPSL性质的抽象语法树,进行完整性和一致性本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可视化模型检测方法,其特征在于,所述可视化模型检测方法使用xUML4MC建立系统模型,使用OPSL以注释方式在系统模型图中标注类、方法、语句段及语句具备的性质特征;对设计模型进行词法和语法分析,构造附加OPSL性质的抽象语法树,并进行完整性、一致性校验;将抽象语法树中每个OPSL语句转换为PPTL性质公式并取非后构造出对应性质非自动机CFA;执行抽象语法树动态生成系统状态,并按OPSL语句约束位置和对应CFA进行与运算,构造出结果自动机,如果存在可接受路径则为性质不成立的反例路径,否则性质成立。2.如权利要求1所述可视化模型检测方法,其特征在于,所述可视化模型检测方法包括以下步骤:步骤一,使用xUML4MC建立系统设计模型,使用OPSL以注释方式在系统模型图中标注类、方法、语句段及语句具备的性质特征;步骤二,对设计模型进行词法和语法分析,构造附加OPSL性质的抽象语法树,并进行完整性、一致性校验;步骤三,将抽象语法树中每个OPSL语句转换为PPTL性质公式,并对PPTL公式取非后构造出对应性质非自动机CFA;步骤四,执行抽象语法树动态生成系统状态,并按OPSL语句约束位置和对应性质非自动机CFA进行与运算,构造出结果自动机,如果结果自动机中存在可接受路径则为性质不成立的反例路径,否则性质成立。3.如权利要求1所述可视化模型检测方法,其特征在于,所述在xUML4MC设计模型中使用OPSL以注释方式标注系统性质的规则包括:规则1:将一个类所有对象从创建完成到销毁前为止所应具备的性质,使用OPSL语句进行描述后,并在类图中通过xUML4MC的注释符号标注在对应的类节点上,简称“类性质”;规则2:将一个函数在执行期间具备的性质,使用OPSL语句进行描述后,并在该函数对应活动图中通过xUML4MC的注释符号标注在起始节点上,简称“函数性质”;规则3:将一个函数中的语句片段在执行期间具备的性质,使用OPSL语句进行描述,并在该函数对应活动图中通过xUML4MC的注释符号标注在对应语句片段的开始节点和结束节点上,简称“语句片段性质”;规则4:将函数中一条语句在执行期前具备的性质,使用OPSL语句进行描述,并在该函数活动图中通过xUML4MC的注释符号标注在对应语句节点上,简称“断言性质”。4.如权利要求1所述可视化模型检测方法,其特征在于,所述附加OPSL性质的抽象语法树构造方法包括:(1)从xUML4MC可视化设计模型的类图、活动图中提取模型元素及关系;(2)对模型元素进行词法分析、语法分析,创建对应抽象语法树节点;(3)依据可视化模型元素的继承、关联、组合、聚合、注释等关系,将语法树节点构成语法树;(4)从xUML4MC可视化设计模型的类图和互动图的注释中提取OPSL语句,并进行词法语法、分析,构造OPSL语句的语法树,并按照OPSL的约束位置附加到抽象语法树的对应节点上。所述抽象语法树的完整性和一致性校验规则包括:
规则1:方法活动图与类图的一致性,包括方法名称、参数类型及个数;方法内部变量名的有效性,或者为类含继承属性,或为方法形式参数,或为定义的局部变量;规则2:OPSL语句的校验,包括语法符合OPSL语法定义和引用变量名是否正确,其中类性质只能引用类自定义的属性或继承的属性,其他三种只能引用类的属性,方法的形参及定义的局部变量。5.如权利要求1所述可视化模型检测方法,其特征在于,所述讲PPTL性质公式取非后构造出对应的性质非自动机CFA包括:(1)对于PPTL性质公式进行预处理,将其中所有包含的子公式

P替换为子公式替换为(true;P),子公式P1→
P2替换为子公式替换为P;(2)计算出PPTL性质公式所包含的原子命题集合Φ,CFA的字母表(3)构造PPTL性质公式P的CFA,规则包括:规则1:若性质公式为原子命题p,p的CFA为A(p)=(∑,Q,δ,I,F,C),其中状态集合Q={q0,q1},迁移集合δ={<q0,p,q1>,<q0,true,q1>},初始状态集合I={q0},有穷可接受集合F={q1},无穷可接受条件集合C={{q1}};规则2:若性质公式为P1∨P2,先分别构造出P1和P2的CFA,令其分别为A(P1)=(∑,Q1,δ1,I1,F1,C1)和A(P2)=(∑,Q2,δ2,I2,F2,C2),最终的CFA为A(P1∨P2)=(∑,Q1∪Q2,δ1∪δ2,I1∪I2,F1∪F2,C1∪C2);规则3:若性质公式为P1∧P2,先分别构造出P1和P2的CFA,令其分别为A(P1)=(∑,Q1,δ1,I1,F1,C1)和A(P2)=(∑,Q2,δ2,I2,F2,C2),最终的CFA为A(P1∧P2)=(Σ,Q,δ,I,F,C),其中Q={[q1,q2]|q1∈Q1,q2∈Q2},I={[q1,q2]|q1∈I1,q2∈I2},F={[q1,q2]|q1∈F1,q2∈F2},C={{[q1,q2]|q1∈Δ1,q2∈Δ2}|Δ1∈C1,Δ2∈C2};规则4:若性质公式为P
1;
P2,先分别构造出P1和P2的CFA,令其分别为A(P1)=(∑,Q1,δ1,I1,F1,C1)和A(P2)=(∑,Q2,δ2,I2,F2,C2),最终的CFA为A(P1;P2)=(∑,Q1∪Q2,δ1∪δ2∪δ
a
,I1,F2,C2),其中规则5:若性质公式为先构造出P1的CFAA(P1)=(∑,Q1,δ1,I1,F1,C1),最终的CFA为其中且规则6:若性质公式为先构造出P1的CFAA(P1)=(∑,Q1,δ1,I1,F1,C1),并使用子集构造法将A(P1)转换为确定最终的CFA为为
6.如权利要求1所述可视化模型检测方法,其特征在于,所述执行抽象语法树动态生成系统状态,并按OPSL语句约束位置和对应的CFA进行与运算,构造出结果自动机,如果结果自动机中不存在可接受路径则性质成立,否则可接受路径为性质不成立的反例路径,具体方法包括:(1)使用抽象语法树指定模型检测验证的入口函数fun初始化结果自动机rstCFA=(Σ,Q,δ,I,F,C),自动机状态为二元组(stmt,stateSet),stmt为抽象语法树中语句,stateSet为对应性质自动机状态集合,Q={(fun,{})},I={(fun,{})},合,Q={(fun,{})},I={(fun,{})},将rstCFA的初始状态(fun,{})压入回溯栈,指定fun作为当前验证函数;(2)根据当前验证函数中标注的OPSL语句计算带约束位置的性质非自动机二元组(cfa,start:end)集合CFASet,其中cfa为性质非自动机,start和end为cfa约束的起始位置和截止位置;(3)若当前函数标注OPSL函数性质语句prop,构造二元组(cfa,start:end)加入到CFASet中,其中cfa为prop对应性质非自动机,start等于该函数的第一条语句位置,end等于该函数的最后一条语句位置;(4)取出回溯栈的栈顶元素(stmt,sta...

【专利技术属性】
技术研发人员:舒新峰李彦霖王曙燕孙家泽杨泽伟贾怡阳
申请(专利权)人:西安邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1