[发明专利]演绎最弱前置条件的模型和算法在审

专利信息
申请号: 201610194102.0 申请日: 2016-03-31
公开(公告)号: CN107291606A 公开(公告)日: 2017-10-24
发明(设计)人: 罗航 申请(专利权)人: 四川大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 暂无信息 代理人: 暂无信息
地址: 610065 四川*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 演绎 最弱 前置 条件 模型 算法
【说明书】:

技术领域

发明涉及一种软件可靠性技术。具体地说,主要实现对软件运行结果进行反向演绎推理,寻找产生这种结果的原因及其传播路径。进一步讲,本发明主要针对赋值程序,建立演绎其最弱前置条件的模型及设计相应的实现算法。

背景技术

在程序的测试过程中,测试者常常遇到这样一种情况:程序没有任何语义和语法错误,但程序运行结果却不正确。将最弱前置条件推理技术应用于程序分析,则程序中潜在的bug(bug导致了错误或意想不到的结果)及其演绎传播路径将得到推断。对于一定程序,演绎给定后置条件的程序的最弱前置条件过程就是构建软件故障树的失效路径的过程。

最弱前置条件直接建立了问题到原因的推理机制,因而,它是软件可靠性研究中的故障分析和定位探索的直接动因。然而,程序受各种复杂因素的影响(比如:多变量、多状态、多条件约束、多结构形式、存储手段、分支判断、循环处理等),要通过最弱前置条件来实现对程序的反向推理实际是非常困难的。存在许多难以解决或需改进完善的模型(实现技术)。

(1)程序正确性证明中对选择结构各分支的最弱前置条件进行合取操作在可靠性研究中并不合适。其理由如下:

<1> 将两个独立的最弱前置条件蕴含合并成一个最终简化的结果,则有可能将最弱前置条件所表示的条件强化。这对精确搜索路径中潜在的bug是非常不利的,因为它有可能遗漏真正的bug;

<2> 在大多数情况下,对于具有只有两条分支的选择结构,它们的执行条件是互斥的。蕴含合并互斥条件下目标代码的最弱前置条件通常是无意义的。

(2)作为反向推理技术,演绎程序的最弱前置条件可能会遇到许多未知的约束条件。在大多数情况下,最弱前置条件只能由推理规则确定,其推理的自动化程度受到空前挑战。对于while循环结构,计算其最弱前置条件比计算顺序语句的最弱前置条件更加困难,因为while循环结构的迭代次数并不总是能够提前确定。在while循环结构的公理性语义中,一个关键的步骤是找到一个循环不变式断言,而循环不变式对于寻找最弱前置条件则是至关重要的。尽管有一些寻找不变式的策略,然而,至今没有一个统一规律来寻找while循环结构的循环不变式。

(3)计算最弱前置条件涉及适当的符号计算,这将大大增加算法的复杂性。目前,可用的符号计算相对简单。然而,由于算法复杂和表达式冗长,解决复杂的数学问题将是一个挑战。一般说来,解决多变量数学或逻辑方程需要设计相应的算法。如果这些方程涉及数组、结构体、循环及嵌套结构,则符号计算相关的算法的复杂度(时间和空间)将是巨大的。

(4)分析程序结构和为演绎最弱前置条件而设计有效的存储结构需要恰当的技巧。演绎最弱前置条件的第一步在于建立模型来自动分析和识别程序。因此,通过运用恰当的程序编译技术和定义适当的模块结构以对程序进行明确的描述(比如:识别关键字以划分节点)是非常必要的。另一方面,设计统一的表达方法和相应的存储结构有助于实现以上目标。在演绎最弱前置条件的过程中,结构化模块及其嵌套形式的存在将大大增加程序识别、表达和存储的复杂性。

(5)对于实际的程序,演绎其最弱前置条件需要建立一套适应典型结构的通用实现方法,通用方法的核心涉及具体的路径扩展、存储衔接及入口处理等模型。

发明内容

本发明的目的在于提供一种最弱前置条件的演绎模型和实现算法,从不同角度不同程度解决现有技术(模型和实现方法)中存在的上述问题。为软件可靠性分析中的故障树建模奠定标准化及实用化基础。

为了实现上述目的,本发明采用如下技术方案。

(1) 改进最弱前置条件的表述。对于一般的选择结构,其两种可能的执行路径都考虑为演绎最弱前置条件的合理路径。以析取的方式来并行分析两条最弱前置条件的传播路径。在演绎目标代码的最弱前置条件时,也同时演绎执行条件的最弱前置条件。此分支思想也用于演绎while循环结构的最弱前置条件。

(2) 提出最弱前置条件的演绎模型:路径扩展模型、最内层连接模型和条件跳越模型。这些模型为算法设计提供演绎依据。

(3) 给出算法表述的统一定义。描述程序的节点概念并以元胞数组作为其存储结构,其目的是有效地分析和识别程序的结构。此外,为演绎最弱前置条件而定义类似的元胞数组存储结构。这些定义为设计演绎算法奠定统一的表述方式。

(4) 以演绎模型为依据,统一定义为表述手段,设计演绎算法:

<1> 演绎第一节点的最弱前置条件;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610194102.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top