[发明专利]一种软件控制危险分析方法有效
申请号: | 201711481426.3 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108228455B | 公开(公告)日: | 2020-06-23 |
发明(设计)人: | 钟德明;孙睿;丁玉新;王灏 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/448 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 控制 危险 分析 方法 | ||
1.一种软件控制危险分析方法,其特征在于,包括:
S1,基于目标有限状态软件系统状态机模型转换而成的C语言程序状态机模型,确定中间变量,生成中间语言状态机模型,其中,所述中间语言状态机模型通过所述中间变量的初始值、转移条件、转移前取值和转移后取值进行表征;
S2,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,处理所述中间语言状态机模型,获取中间语言状态机转移和所述中间变量的取值集合;
S3,基于所述中间变量的变量类型、所述中间变量的取值集合、所述中间变量的初始值和所述中间语言状态机转移,获取SMV程序状态机模型;
S4,基于所述SMV程序状态机模型,在NuSMV模型检测工具中执行SMV程序状态机模型检测程序,输出对所述目标有限状态软件系统状态机模型的检测结果;
其中,所述S1的步骤进一步包括:
S11,基于语句的语法、语义,分析所述C语言程序状态机模型中的赋值语句、IF-ELSE语句和SWITCH-CASE语句,确定所述中间变量,以及所述中间变量的变量类型、初始值、转移条件、转移前取值和转移后取值;
S12,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,将所述C语言程序状态机模型的状态机语义转化为所述中间语言状态机模型。
2.根据权利要求1所述的方法,其特征在于,所述S2的步骤进一步包括:
遍历所有所述转移前取值和转移后取值,去除死节点,构造所述中间变量的取值集合;
基于所述转移条件,构造中间语言状态机转移。
3.根据权利要求2所述的方法,其特征在于,所述S3的步骤进一步包括:
S31,基于所述中间变量的变量类型和所述中间变量的取值集合,定义SMV程序状态机模型变量;
S32,基于所述中间变量的初始值,确定所述SMV程序状态机模型变量的初始值,定义SMV程序状态机模型起始条件;
S33,基于所述中间语言状态机转移,定义SMV程序状态机转移;
S34,基于所述SMV程序状态机模型变量、所述SMV程序状态机模型起始条件和所述SMV程序状态机转移,确定所述SMV程序状态机模型。
4.根据权利要求1所述的方法,其特征在于,步骤S11中所述中间变量的初始值的确定步骤进一步包括:
若在所述赋值语句中有对所述中间变量的赋值,则以对所述中间变量的初次赋值作为所述中间变量的初始值;
若在所述赋值语句中没有对所述中间变量的赋值,则取随机值作为所述中间变量的初始值。
5.根据权利要求1-4中任一所述的方法,其特征在于,在所述S1的步骤之前,还包括:
基于对应有限状态软件系统的属性信息,利用Stateflow工具,建立所述目标有限状态软件系统状态机模型。
6.根据权利要求5所述的方法,其特征在于,所述基于对应有限状态软件系统的属性信息,利用Stateflow工具,建立所述目标有限状态软件系统状态机模型的步骤进一步包括:
基于所述有限状态软件系统的所有状态属性,在Stateflow中创建对应状态,并基于系统状态的信息,确定状态标签;
基于所述有限状态软件系统的所有状态之间的迁移属性,在Stateflow中创建迁移,并基于系统的迁移信息,确定迁移标签;
基于所述有限状态软件系统的所有数据与事件属性,在Stateflow中创建数据与事件,并根据系统的数据与事件信息,添加数据与事件。
7.根据权利要求5所述的方法,其特征在于,所述目标有限状态软件系统状态机模型为利用Stateflow绘制的逻辑框图;
相应的,步骤S1中具体利用Simulink工具把所述逻辑框图编译转换成所述C语言程序状态机模型。
8.根据权利要求5所述的方法,其特征在于,所述中间变量的变量类型进一步为整型、枚举型和布尔型中任一。
9.根据权利要求3所述的方法,其特征在于,在所述S1的步骤之前,还包括:
基于对应有限状态软件系统的属性信息,利用Stateflow工具,建立所述目标有限状态软件系统状态机模型;
其中,所述中间变量的变量类型进一步为整型、枚举型和布尔型中任一;
其中,若所述中间变量的变量类型为整型,则步骤S31中所述定义SMV程序状态机模型变量的步骤进一步包括:
根据对应整型变量的整型类型,定义所述SMV程序状态机模型变量的变量类型,并根据所述整型变量的连续取值范围,定义对应SMV程序状态机模型变量的取值集合;
若所述中间变量的变量类型为枚举型或布尔型,则步骤S31中所述定义SMV程序状态机模型变量的步骤进一步包括:
根据对应枚举型或布尔型变量的枚举型或布尔型类型,相应定义所述SMV程序状态机模型变量的变量类型,并根据所述枚举型或布尔型变量的离散取值序列,相应定义对应SMV程序状态机模型变量的取值集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711481426.3/1.html,转载请声明来源钻瓜专利网。