【技术实现步骤摘要】
一种可视化模型检测方法、系统、介质、设备及处理终端
[0001]本专利技术属于系统形式化建模与验证
,尤其涉及一种可视化模型检测方法、系统、介质、设备及处理终端。
技术介绍
[0002]在高度信息化的今天,计算机已经进入到军事国防、工业控制、网络通信、医疗卫生、电子商务等国计民生的各个领域中。然而随着社会对计算机系统依赖的日益增强,尤其是一些关键系统,如飞行器控制系统、银行业务管理系统、火车售票系统、股市交易系统和交通控制调度系统等,一旦出现故障会造成巨额的财产损失甚至是人员伤亡。如何保证现代软件系统的安全性和可靠性是学术界和工程界面临的严重问题。
[0003]软件测试作为传统的软件系统验证手段,其只能证明系统中有错误而无法证明没有错误,存在先天不足。形式化验证则采用数学的方法对待验证系统进行建模和性质描述,在严密的数学理论支撑下证明系统满足期望的性质,提供了一条确保软件系统正确性、安全性和可靠性的有效验证途径。
[0004]模型检测(Model Checking)是一种重要的形式化验证技术,验证时首先需要建立待验证系统的有穷状态迁移模型,并通过时序逻辑公式描述待验证性质,然后在模型检测工具支持下自动通过算法穷尽遍历系统的执行路径以检测性质是否成立,性质不成立时能给出反例路径以帮助工程技术人员进行错误定位和排错。
[0005]软件设计方案验证主要使用SPIN或NuSMV等传统模型检测工具,验证时需要将UML(UnifiedModeling Language)等建模语言描述的软件设计方案转 ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:舒新峰,李彦霖,王曙燕,孙家泽,杨泽伟,贾怡阳,
申请(专利权)人:西安邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。