一种软件控制危险分析方法技术

技术编号:18350127 阅读:56 留言:0更新日期:2018-07-01 23:08
本发明专利技术提供一种软件控制危险分析方法,包括:基于目标有限状态软件系统状态机模型转换而成的C语言程序状态机模型,生成中间语言状态机模型,所述中间语言状态机模型通过中间变量的初始值、转移条件、转移前取值和转移后取值表征;基于所述中间语言状态机模型,获取中间语言状态机转移和所述中间变量的取值集合;基于所述中间变量的变量类型、取值集合、初始值和所述中间语言状态机转移,获取SMV程序状态机模型;基于所述SMV程序状态机模型,在NuSMV模型检测工具中执行状态机模型检测程序,输出检测结果。本发明专利技术能够实现目标有限状态软件系统状态机模型的准确且有效检测,从而使得对软件安全性分析的过程和结果更为简洁、直观。

【技术实现步骤摘要】
一种软件控制危险分析方法
本专利技术涉及软件安全
,更具体地,涉及一种软件控制危险分析方法。
技术介绍
Stateflow是一个基于有限状态机和流程图,构建组合和时序逻辑决策模型并进行仿真的环境。它可以结合图形表示(包括状态转移图、流程图)和表格表示(状态转换表和真值表),针对系统对事件、基于时间的条件以及外部输入信号的反应方式进行建模。Stateflow的仿真原理是有限状态机(FiniteStateMachine)理论,有限状态机是指系统含有可数的状态,在相应的状态事件发生时,系统会从当前状态转移到与之对应的状态。在有限状态机中实现状态的转移需要一定的条件,同时相互转换的状态需要建立相应的状态转移事件,从而构成状态转移图。在Simulink的仿真窗口中,允许用户建立有限个状态以及状态转移的条件与事件,从而绘制出有限状态机系统,实现对系统的仿真。实现状态转移的条件或事件,既可以取自Stateflow仿真框图,也可以来自Simulink仿真模型。Stateflow可以直接嵌入到Simulink仿真模型中,并且在仿真的初始化阶段,Simulink会把Stateflow绘制的逻辑框图通过编译程序转换成C语言。Stateflow可以用来建立系统的有限状态机模型,采用自然语言以及可读和易于理解的形式,能使得复杂的逻辑问题变得清晰与简单,但是Stateflow不能建立系统的约束,无法对系统模型进行验证,从而无法预测系统的安全性。NuSMV是一个开放的架构验证工具的模型检查工具,可以验证设计的可靠性,也可以作为验证设计可靠性检测工具的核心,还可以作为验证平台验证技术。通过编写SMV程序文件描述有限状态系统状态转移模型,SMV程序文件经NuSMV解析编译后,得出系统模型检测的结果。NuSMV可以对建立的SMV程序进行模型检测,直观的给出系统状态的危险发生的路径。对于简单的有限状态机系统,可以直接通过编写SMV程序来进行模型检测,但是对于复杂的有限状态系统,,SMV程序较为复杂,编写难度较大,同时SMV程序的可读性也比较差。
技术实现思路
为了克服上述问题或者至少部分地解决上述问题,并将其应用于具有有限个状态的软件系统的安全性分析中,本专利技术提供一种软件控制危险分析方法,用以更便利的对有限状态软件系统进行安全性检测,从而使得对软件系统安全性分析的过程和结果更为简洁、直观。本专利技术提供一种软件控制危险分析方法,包括:S1,基于目标有限状态软件系统状态机模型转换而成的C语言程序状态机模型,确定中间变量,生成中间语言状态机模型,其中,所述中间语言状态机模型通过所述中间变量的初始值、转移条件、转移前取值和转移后取值进行表征;S2,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,处理所述中间语言状态机模型,获取中间语言状态机转移和所述中间变量的取值集合;S3,基于所述中间变量的变量类型、所述中间变量的取值集合、所述中间变量的初始值和所述中间语言状态机转移,获取SMV程序状态机模型;S4,基于所述SMV程序状态机模型,在NuSMV模型检测工具中执行SMV程序状态机模型检测程序,输出对所述目标有限状态软件系统状态机模型的检测结果。其中,所述S1的步骤进一步包括:S11,基于语句的语法、语义,分析所述C语言程序状态机模型中的赋值语句、IF-ELSE语句和SWITCH-CASE语句,确定所述中间变量,以及所述中间变量的变量类型、初始值、转移条件、转移前取值和转移后取值;S12,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,将所述C语言程序状态机模型的状态机语义转化为所述中间语言状态机模型。其中,所述S2的步骤进一步包括:遍历所有所述转移前取值和转移后取值,去除死节点,构造所述中间变量的取值集合;基于所述转移条件,构造中间语言状态机转移。其中,所述S3的步骤进一步包括:S31,基于所述中间变量的变量类型和所述中间变量的取值集合,定义SMV程序状态机模型变量;S32,基于所述中间变量的初始值,确定所述SMV程序状态机模型变量的初始值,定义SMV程序状态机模型起始条件;S33,基于所述中间语言状态机转移,定义SMV程序状态机转移;S34,基于所述SMV程序状态机模型变量、所述SMV程序状态机模型起始条件和所述SMV程序状态机转移,确定所述SMV程序状态机模型;相应的,所述S4的步骤进一步包括:在所述NuSMV模型检测工具中调取所述SMV程序状态机模型,执行预装的模型检测程序,输出对所述目标有限状态软件系统状态机模型的检测结果。其中,步骤S11中所述中间变量的初始值的确定步骤进一步包括:若在所述赋值语句中有对所述中间变量的赋值,则以对所述中间变量的初次赋值作为所述中间变量的初始值;若在所述赋值语句中没有对所述中间变量的赋值,则取随机值作为所述中间变量的初始值。进一步的,在所述S1的步骤之前,所述方法还包括:基于对应有限状态软件系统的属性信息,利用Stateflow工具,建立所述目标有限状态软件系统状态机模型。其中,所述基于对应有限状态软件系统的属性信息,利用Stateflow工具,建立所述目标有限状态软件系统状态机模型的步骤进一步包括:基于所述有限状态软件系统的所有状态属性,在Stateflow中创建对应状态,并基于系统状态的信息,确定状态标签;基于所述有限状态软件系统的所有状态之间的迁移属性,在Stateflow中创建迁移,并基于系统的迁移信息,确定迁移标签;基于所述有限状态软件系统的所有数据与事件属性,在Stateflow中创建数据与事件,并根据系统的数据与事件信息,添加数据与事件。其中,所述目标有限状态软件系统状态机模型为利用Stateflow绘制的逻辑框图;相应的,步骤S1中具体利用Simulink工具把所述逻辑框图编译转换成所述C语言程序状态机模型。其中,所述中间变量的变量类型进一步为整型、枚举型和布尔型中任一。其中,若所述中间变量的变量类型为整型,则步骤S31中所述定义SMV程序状态机模型变量的步骤进一步包括:根据对应整型变量的整型类型,定义所述SMV程序状态机模型变量的变量类型,并根据所述整型变量的连续取值范围,定义对应SMV程序状态机模型变量的取值集合;若所述中间变量的变量类型为枚举型或布尔型,则步骤S31中所述定义SMV程序状态机模型变量的步骤进一步包括:根据对应枚举型或布尔型变量的枚举型或布尔型类型,相应定义所述SMV程序状态机模型变量的变量类型,并根据所述枚举型或布尔型变量的离散取值序列,相应定义对应SMV程序状态机模型变量的取值集合。本专利技术提供的一种软件控制危险分析方法,通过对C语言程序状态机模型的分析、处理和转换,最终将目标有限状态软件系统状态机模型转换为SMV程序状态机模型,并在NuSMV工具中调用该SMV程序状态机模型文件,实现目标有限状态软件系统状态机模型的准确且有效检测,从而使得对软件安全性分析的过程和结果更为简洁、直观。附图说明图1为本专利技术实施例一种软件控制危险分析方法的流程图;图2为本专利技术实施例一种建立目标有限状态软件系统状态机模型的流程图;图3为本专利技术实施例一种生成中间语言状态机模型的流程图;图4为本专利技术实施例一种获取SMV程序状态机模型的流程图;图5为本专利技术实施例另一种本文档来自技高网
...
一种软件控制危险分析方法

【技术保护点】
1.一种软件控制危险分析方法,其特征在于,包括:S1,基于目标有限状态软件系统状态机模型转换而成的C语言程序状态机模型,确定中间变量,生成中间语言状态机模型,其中,所述中间语言状态机模型通过所述中间变量的初始值、转移条件、转移前取值和转移后取值进行表征;S2,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,处理所述中间语言状态机模型,获取中间语言状态机转移和所述中间变量的取值集合;S3,基于所述中间变量的变量类型、所述中间变量的取值集合、所述中间变量的初始值和所述中间语言状态机转移,获取SMV程序状态机模型;S4,基于所述SMV程序状态机模型,在NuSMV模型检测工具中执行SMV程序状态机模型检测程序,输出对所述目标有限状态软件系统状态机模型的检测结果。

【技术特征摘要】
1.一种软件控制危险分析方法,其特征在于,包括:S1,基于目标有限状态软件系统状态机模型转换而成的C语言程序状态机模型,确定中间变量,生成中间语言状态机模型,其中,所述中间语言状态机模型通过所述中间变量的初始值、转移条件、转移前取值和转移后取值进行表征;S2,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,处理所述中间语言状态机模型,获取中间语言状态机转移和所述中间变量的取值集合;S3,基于所述中间变量的变量类型、所述中间变量的取值集合、所述中间变量的初始值和所述中间语言状态机转移,获取SMV程序状态机模型;S4,基于所述SMV程序状态机模型,在NuSMV模型检测工具中执行SMV程序状态机模型检测程序,输出对所述目标有限状态软件系统状态机模型的检测结果。2.根据权利要求1所述的方法,其特征在于,所述S1的步骤进一步包括:S11,基于语句的语法、语义,分析所述C语言程序状态机模型中的赋值语句、IF-ELSE语句和SWITCH-CASE语句,确定所述中间变量,以及所述中间变量的变量类型、初始值、转移条件、转移前取值和转移后取值;S12,基于所述中间变量的初始值、转移条件、转移前取值和转移后取值,将所述C语言程序状态机模型的状态机语义转化为所述中间语言状态机模型。3.根据权利要求2所述的方法,其特征在于,所述S2的步骤进一步包括:遍历所有所述转移前取值和转移后取值,去除死节点,构造所述中间变量的取值集合;基于所述转移条件,构造中间语言状态机转移。4.根据权利要求3所述的方法,其特征在于,所述S3的步骤进一步包括:S31,基于所述中间变量的变量类型和所述中间变量的取值集合,定义SMV程序状态机模型变量;S32,基于所述中间变量的初始值,确定所述SMV程序状态机模型变量的初始值,定义SMV程序状态机模型起始条件;S33,基于所述中间语言状态机转移,定义SMV程序状态机转移;S34,基于所述SMV程序状态机模型变量、所述SMV程序状态机模型起始条件和所述SMV程序状态机转移,确定所述SMV程序状态机模型;相应的,所述S4的步骤进一步包括:在所述NuSMV模型检测工具中调取所述SMV程序状态机模型,执行预装的模型检测程序,输出对所述目标有限状态软件系统状态机模...

【专利技术属性】
技术研发人员:钟德明孙睿丁玉新王灏
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1