一种基于源代码的模型验证方法技术

技术编号:24330935 阅读:44 留言:0更新日期:2020-05-29 19:34
本发明专利技术公开了一种基于源代码的模型验证方法,所述方法包括:获取目标源代码;根据AADL建模技术将所述目标源代码进行建模后生成AADL模型;基于预设转换方式将所述AADL模型转换生成时间自动机模型;利用预设模型检测器对所述时间自动机模型进行检查。因此,采用本申请实施例,可以提高验证效率。

【技术实现步骤摘要】
一种基于源代码的模型验证方法
本专利技术涉及计算机
,特别涉及一种基于源代码的模型验证方法。
技术介绍
随着信息技术的迅猛发展,软件系统的功能日益繁多、复杂,规模越来越大,其面临的安全性挑战也越来越严峻。特别是对于航空航天、汽车电子、工业控制、军事系统这一类安全攸关系统,软件的可信验证显得尤为重要。形式化验证技术是在形式化规约的基础上,通过深入分析与理解系统,验证系统是否满足其给定的性质,或发现系统不能满足该性质的条件。目前主要的形式化验证方法是定理证明。定理证明主要利用逻辑和数学手段,通过演绎推理来验证软件的模型或代码是否满足设定的性质。由于需要富有经验的用户提供大量的公理、前提条件及其他的系统相关信息才能满足验证,从而降低了验证效率。
技术实现思路
本申请实施例提供了一种基于源代码的模型验证方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。本申请实施例提供了一种基于源代码的模型验证方法,所述方法包括:获取目标源代码;根据AADL建模技术将所述目标源代码进行建模后生成AADL模型;基于预设转换方式将所述AADL模型转换生成时间自动机模型;利用预设模型检测器对所述时间自动机模型进行检查。可选的,所述获取目标源代码之前,还包括:采用电子数据表单对系统、设备和软件接口进行处理后生成目标源代码。可选的,所述采用电子数据表单对系统、设备和软件接口进行处理后生成目标源代码,包括:采用电子数据表单对系统、设备和软件接口进行处理后生成处理后的电子数据表单;基于形式化模型转换技术将所述处理后的电子数据表单进行转换生成电子数据表单模型;基于形式化的性质描述语言获取所述电子数据表单模型中的关键结构和属性;根据关键结构和属性获取关键部分源代码,将所述关键部分源代码作为目标源代码。可选的,所述根据AADL建模技术将所述目标源代码进行建模后生成AADL模型,包括:将所述目标源代码转换成AADL所需的构件集合,所述构件集合包括软件构件、执行平台构件及系统构件;获取所述目标源代码对应的包;基于所述包将所述构件集合组织后生成实时系统;将所述实时系统确定为AADL语言子集,生成AADL模型。可选的,所述基于所述包将所述构件集合组织后生成实时系统,包括:获取所述包对应的属性和特征;利用所述构件集合对系统中的软件和硬件进行建模;利用所述属性和特征对系统中的功能性质和非功能性质进行建模;当建模结束后生成AADL模型。可选的,所述基于预设转换方式将所述AADL模型转换生成时间自动机模型,包括:基于预设时间抽象状态机将所述AADL模型映射生成时间抽象状态机模型;根据转换算法将所述时间抽象状态机模型转换成时间自动机模型。可选的,所述基于预设时间抽象状态机将所述AADL模型映射生成时间抽象状态机模型,包括:获取预设抽象状态机的抽象语法;基于所述抽象语法获取所述AADL模型和所述预设抽象状态机的映射关系;根据所述映射关系将所述AADL模型映射生成时间抽象状态机模型。可选的,所述利用预设模型检测器对所述时间自动机模型进行检查,包括:根据预设模型检测器对所述目标源代码对应的逻辑正确性进行验证生成验证结果;当所述验证结果中出现死锁时,通过获取所述死锁产生路径来去除死锁。可选的,所述利用预设模型检测器对所述时间自动机模型进行检查,包括:根据模型检测器对所述目标源代码对应的变量进行检查生成检查结果;当所述检查结果和预设结果不一致时,输出错误信息。本申请实施例提供的技术方案可以包括以下有益效果:在本申请实施例中,首先获取目标源代码,再根据AADL建模技术将所述目标源代码进行建模后生成AADL模型,然后基于预设转换方式将所述AADL模型转换生成时间自动机模型,最后利用预设模型检测器对所述时间自动机模型进行检查。在本申请实施例中,由于模型检验的可操作性好,自动化程度高,可以通过工具提供的详细反例来定位和解决系统中存在的安全隐患,并且在在检验过程中,可以只对部分状态空间进行搜索,无需建立整个系统的状态空间,从而可以提高验证效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。图1是本申请实施例提供的一种基于源代码的模型验证方法的流程示意图;图2是本申请实施例提供的一种以星载软件为例进行基于源代码的模型验证过程的过程示意图;图3是本申请实施例提供的一种将源代码进行转换后的构件集合示意图;图4是本申请实施例提供的一种基于源代码的模型验证装置的结构示意图;图5是本申请实施例提供的另一种基于源代码的模型验证装置的结构示意图;图6是本申请实施例提供的一种源代码生成模块的结构示意图;图7是本申请实施例提供的一种第一模型生成模块的结构示意图;图8是本申请实施例提供的一种系统生成单元的结构示意图;图9是本申请实施例提供的一种第二模型生成模块的结构示意图;图10是本申请实施例提供的一种第三模型生成模块的结构示意图;图11是本申请实施例提供的一种模型检查模块的结构示意图;图12是本申请实施例提供的一种终端的结构示意图。具体实施方式以下描述和附图充分地示出本专利技术的具体实施方案,以使本领域的技术人员能够实践它们。应当明确,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。在本专利技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。此外,在本专利技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。到目前为止,对于系统形式化验证,目前主要的形式化验证方法是定理证明。定本文档来自技高网...

【技术保护点】
1.一种基于源代码的模型验证方法,其特征在于,所述方法包括:/n获取目标源代码;/n根据AADL建模技术将所述目标源代码进行建模后生成AADL模型;/n基于预设转换方式将所述AADL模型转换生成时间自动机模型;/n利用预设模型检测器对所述时间自动机模型进行检查。/n

【技术特征摘要】
1.一种基于源代码的模型验证方法,其特征在于,所述方法包括:
获取目标源代码;
根据AADL建模技术将所述目标源代码进行建模后生成AADL模型;
基于预设转换方式将所述AADL模型转换生成时间自动机模型;
利用预设模型检测器对所述时间自动机模型进行检查。


2.根据权利要求1所述的方法,其特征在于,所述获取目标源代码之前,还包括:
采用电子数据表单对系统、设备和软件接口进行处理后生成目标源代码。


3.根据权利要求2所述的方法,其特征在于,所述采用电子数据表单对系统、设备和软件接口进行处理后生成目标源代码,包括:
采用电子数据表单对系统、设备和软件接口进行处理后生成处理后的电子数据表单;
基于形式化模型转换技术将所述处理后的电子数据表单进行转换生成电子数据表单模型;
基于形式化的性质描述语言获取所述电子数据表单模型中的关键结构和属性;
根据关键结构和属性获取关键部分源代码,将所述关键部分源代码作为目标源代码。


4.根据权利要求1所述的方法,其特征在于,所述根据AADL建模技术将所述目标源代码进行建模后生成AADL模型,包括:
将所述目标源代码转换成AADL所需的构件集合,所述构件集合包括软件构件、执行平台构件及系统构件;
获取所述目标源代码对应的包;
基于所述包将所述构件集合组织后生成实时系统;
将所述实时系统确定为AADL语言子集,生成AADL模型。


5.根据权利要求4所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:史建琦焦明月黄滟鸿孙文圣战云龙郭欣
申请(专利权)人:华东师范大学上海丰蕾信息科技有限公司
类型:发明
国别省市:上海;31

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

1