汽车电控部件的软件正确性验证系统及其验证方法

文档序号:6358208阅读:190来源:国知局
专利名称:汽车电控部件的软件正确性验证系统及其验证方法
技术领域
本发明涉及操作系统验证领域,具体涉及一种汽车电控部件的软件正确性验证系统及其验证方法。
背景技术
汽车电控部件的系统在加载到芯片上面,投入使用之前都需要进行测试,以确保开发的产品适合需求,能进行正常的使用。软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统, 对测试方案可能出现的问题进行分析和评估。目前的软件测试工具有 AotoRunner> TestCenter> TAR> LoadRunner^ TestDirector等等。虽然目前的软件测试的整个流程、方法已经相当的成熟,但是还是存在一定的缺陷。测试的内容和方法都是人为设计的。设计出来的测试方案大体都只能针对一个方面,不可能面面俱到。同时,测试方案中没有涉及的内容在测试过程中也不会被检测。因此,可以说测试只能检查出存在什么问题,而不能保证不存在什么问题。即,现有技术只能测试出测试方案中涉及的内容是否存在什么问题,而对于测试方案中没有涉及的内容则无法判断是否存在问题。对于汽车系统这一类安全系数特别高的软件来说,单纯的软件测试是不够的。本发明提供一种汽车电控部件的软件正确性验证系统及其验证方法,克服现有技术的测试设计的依赖性大,无法检测遗漏路径等缺陷,将具有高可信的形式化验证应用于汽车系统的验证中,使该汽车系统的安全性能得到更大的保障。

发明内容
本发明提供一种汽车电控部件的软件正确性验证系统及其验证方法,将具有高可信的形式化验证应用于汽车系统的验证中,从而使汽车系统的安全性能得到更大的保障。本发明提供一种汽车电控部件的软件正确性验证系统,包括 规范定义模块,对汽车电控部件的功能进行数学化定义,生成形式化规范;
软件功能验证模块,利用数学定理自动证明算法,检测汽车电控部件的控制软件是否满足规范定义模块生成的形式化规范。其中,形式化规范是数学化语言。本发明还提供一种汽车电控部件控制软件的正确性验证系统的验证方法,其特征在于,包括如下步骤
步骤一在规范定义模块中,将汽车电控部件的功能进行数学化定义,生成形式化规
范;
步骤二 在软件功能验证模块中,验证汽车电控部件控制软件是否满足形式化规范。其中,步骤二是利用数学定理自动证明算法验证汽车电控部件控制软件是否满足形式化规范。如果汽车电控部件控制软件经验证满足形式化规范,说明汽车电控部件控制软件不存在缺陷;如果汽车电控部件控制软件经验证不满足形式化规范,说明汽车电控部件控制软件存在缺陷。本发明汽车电控部件的软件正确性验证系统及其验证方法,将汽车电控部件的功能进行数学化定义,生成形式化模型,能更好地分析汽车电控部件功能的特性,确保部件能正常工作。另外,利用数学定理自动证明算法对软件进行检测,能发现传统的软件测试方法发现不了的潜在缺陷。


图1是本发明汽车电控部件的软件正确性验证系统的模块示意图2是本发明汽车电控部件的软件正确性验证系统的验证方法的工作流程图。
具体实施例方式以下结合附图和实施例进一步详细阐述本发明,但以下实施例并不是对本发明的限制。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中。本实施例中将汽车电控部件的软件正确性验证系统应用于OSEK OS 2. 2. 3操作系统中。如图1所示,是本发明汽车电控部件的软件正确性验证系统的模块示意图。本实施例中汽车电控部件的软件正确性验证系统包括规范定义模块1,软件功能验证模块2。其中,规范定义模块1是对汽车电控部件的功能,例如OSEK OS 2. 2. 3操作系统的功能,进行精确的数学化定义,生成形式化规范。软件功能验证模块2是利用数学定理自动证明算法来检测OSEK OS 2. 2. 3操作系统是否满足定义的形式化规范。如图2所示,本实施例汽车电控部件的软件正确性验证系统用于验证OSEK OS 2. 2. 3操作系统,经过以下步骤
步骤一 Si,在规范定义模块1中,将汽车电控部件的功能,即将OSEK OS 2. 2.3操作系统的功能,进行数学化定义,生成形式化规范;
步骤二 S2,在软件功能验证模块2中,利用数学定理自动证明算法验证汽车电控部件控制软件是否满足所述形式化规范。如果汽车电控部件控制软件经验证满足形式化规范,说明汽车电控部件控制软件不存在缺陷;如果汽车电控部件控制软件经验证不满足形式化规范,说明汽车电控部件控制软件存在缺陷。本实施例中,汽车电控部件的软件正确性验证系统中,在规范定义模块1中,将汽车电控部件的功能进行数学化定义,生成形式化规范。根据源代码编写非功能性规范,根据形式化规范编写功能性规范,将非功能性规范和功能性规范插入源代码,用VCC工具检测源代码是否满足所述非功能性规范或功能性规范。从源代码中抽取描述资源的代码,利用进程代数对抽取出的代码进行代数建模生成进程代数模型。接着利用基于进程代数的工具检测代数模型是否存在死锁/活锁性质。利用编译器将源代码编译为机器码,根据编译规范提取机器码与源代码的对应关系,对机器码进行代码切片,保留控制结构代码,对控制结构代码进行抽象后,利用模型检测工具对控制结构代码检测是否存在中断缺陷,对源代码进行中断安全性检测。其中,非功能性规范和功能性规范是指用VCC工具能识别的语言写的断言。VCC工具包括Boogie工具、Z3自动定理证明器等。Boogie工具可以将带有断言的源代码翻译成BoogiePL描述的逻辑公式,再用自动定理证明器来完成定理证明工程。 还可以利用VCC工具将源代码转换为状态机或者是含有公理的代码,利用VCC工具来做其他方面的验证。基于进程代数的工具包括FDR2、PAT等。当基于进程代数的工具所用语言的语法与进程代数不完全相同时,在生成进程代数模型之后,还需要将代数模型转换成能够被基于进程代数的工具识别的语言,再进行检测是否存在死锁/活锁性质。控制结构的代码是指循环结构、分支结构的机器码。抽象是指使用CTL分支树时态逻辑与LTL线性时态逻辑对所述控制结构的代码进行提取。本实施例中,将已经通过传统方法验证过后的OSEK OS 2. 2. 3操作系统为检验对象,运用本发明汽车电控部件的软件正确性验证系统验证,验证出该OSEK OS 2. 2. 3操作系统还存在10余个系统缺陷以及30多个中断安全隐患。本发明提供的汽车电控部件的软件正确性验证系统及其验证方法将具有高可信的形式化验证应用于汽车系统的验证中,能发现传统的软件测试方法发现不了的潜在缺陷,使该汽车系统的安全性能得到更大的保障。综上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰,都应属于本发明的技术范畴。
权利要求
1.一种汽车电控部件的软件正确性验证系统,其特征在于,包括 规范定义模块,对汽车电控部件的功能进行数学化定义,生成形式化规范;软件功能验证模块,利用数学定理自动证明算法,检测汽车电控部件控制软件是否满足所述规范定义模块生成的形式化规范。
2.如权利要求1所述汽车电控部件的软件正确性验证系统,其特征在于,所述形式化规范是数学化语言。
3.如权利要求1所述汽车电控部件控制软件的正确性验证系统的验证方法,其特征在于,包括如下步骤步骤一在规范定义模块中,将汽车电控部件的功能进行数学化定义,生成形式化规范;步骤二 在软件功能验证模块中,验证汽车电控部件控制软件是否满足所述形式化规范。
4.如权利要求3所述汽车电控部件控制软件的正确性验证系统的验证方法,其特征在于,所述步骤二是利用数学定理自动证明算法验证汽车电控部件控制软件是否满足所述形式化规范。
5.如权利要求3所述汽车电控部件控制软件的正确性验证系统的验证方法,其特征在于,所述步骤二中如果汽车电控部件控制软件经验证满足所述形式化规范,所述汽车电控部件控制软件不存在缺陷;如果汽车电控部件控制软件经验证不满足所述形式化规范,所述汽车电控部件控制软件存在缺陷。
全文摘要
本发明提供一种汽车电控部件的软件正确性验证系统,包括规范定义模块,对汽车电控部件功能进行数学化定义,生成形式化规范;软件功能验证模块,利用数学定理自动证明算法,检测汽车电控部件控制软件是否满足规范定义模块生成的形式化规范。本发明还提供一种汽车电控部件的软件正确性验证系统的验证方法,将具有高可信的形式化验证应用于汽车系统的验证中,从而使汽车系统的安全性能得到更大的保障。
文档编号G06F11/36GK102169458SQ20111009670
公开日2011年8月31日 申请日期2011年4月18日 优先权日2011年4月18日
发明者何积丰, 史建琦, 黄滟鸿 申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1