- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ppt课件 第7章 软件验证技术(第7.9-7.10节) * ppt课件 主要内容 程序正确性证明 调试 * ppt课件 7.9 程序正确性证明 测试可以帮助人们发现程序中的错误,但它却不能证明程序中没有错误。 早在50年代,图林(Turing)等人就开始注意并开展了程序正确性证明这方面的早期研究工作;60年代后半期,Floyd和Hoare等人提出了不变式断言法和公理化方法,使得这一研究进入了一个蓬勃发展的新阶段;在此之后,出现了许多不同的程序正确性证明方法。 * ppt课件 7.9.1 程序正确性定义 所谓一段程序是正确的,是指这段程序能准确无误地完成预定的功能。或者说,对任何一组允许的输入,程序执行后能得到一组相应的正确的输出。 在研究程序正确性证明时,将一段程序的输入和输出应满足的条件的逻辑关系式分别称为此段程序的输入断言(或初始断言、前置断言)和输出断言(或结果断言、后置断言),通常用谓词φ(x)和ψ(x,z)表示,其中x和z分别表示输入和输出数据(可以是一个或一组变量)。 * ppt课件 例子 unsigned power(unsigned x,unsigned y) { unsigned z; z=1; while (x!=0) { z=z*y; x=x-1; } return z; } 则 φ(x,y):x≥0, y>0; ψ(x,y,z):z=yx。 * ppt课件 程序正确性三种类型 程序的部分正确性 程序的终止性 程序的完全正确性 * ppt课件 程序的部分正确性 若每一个使得φ(x)为真且程序计算终止的输入数据x,ψ(x,p(x))都为真,则称程序p关于φ和ψ是部分正确的。 这里p(x)表示与输入数据x相对应的程序p的输出数据。 * ppt课件 程序的终止性 若每一个使得φ(x)为真的输入数据x,程序计算都终止,则称程序P对φ是终止的。 * ppt课件 程序的完全正确性 若每一个使得φ(x)为真的输入数据x,程序计算都终止且ψ(x,P(x))为真,则称程序P关于φ和ψ是完全正确的。 显然,一个程序是完全正确的等价于该程序是部分正确的同时又是终止的。 * ppt课件 程序正确性证明方法 FLOYD的不变式断言法(证明部分正确性) FLOYD良序集方法(证明终止性) Hoare的公理化方法(证明部分正确性)及其推广(证明完全正确性) Dijstra的弱谓词置换法(证明完全正确性) * ppt课件 7.9.2 Floyd不变式断言法 建立断言 一个程序除了需要建立输入/输出断言外,如程序中出现循环,还要建立相应于该循环的不变式断言,称之为循环不变式断言。所谓循环不变式断言,是在循环中选一个断点,在断点处建立一个适当的断言,使循环每次执行到断点时,断言都为真。 建立检验条件 所谓检验条件就是程序运行通过某通路时应满足的条件。 证明检验条件 证明上面给定的所有检验条件,如果每一条通路的检验条件都为真,则该程序是部分正确的。 * ppt课件 例子 设x1,x2是正整数,求最大公约数Z=gcd(x1,x2),其流程图如下图所示。试证明它的部分正确性。 * ppt课件 建立断言 输入断言φ(x):x1>0 ∧ x2>0 输出断言ψ(x,z):z=gcd(x1,x2) 在断点B建立不变式断言P(x,y): x1>0∧x2>0∧y1>0∧y2>0∧gcd(y1,y2)=gcd(x1,x2) 这里,约定所有变量均为整型,且x表示(x1,x2),y表示(y1,y2)。 * ppt课件 建立检验条件 选择B为断点,则程序的执行通路为: Path1:A→B Path2:B→D→B Path3:B→E→B Path4:B→G→C 对每条通路可建立相应的检验条件。 * ppt课件 检验条件表示 设通路i的输入/输出断言分别为φi(x,y)和ψi(x,y),而通过此通路的条件为Ri(x,y),通过此通路后y的值变为ri(x,y),则应有检验条件: φi(x,y)∧Ri(x,y)?ψi(x,ri(x,y)) 其中,y表示程序执行中的一组中间变量,x是输入量。符号?表示蕴涵逻辑关系。 * ppt课件 Path1检验条件 φ1(x,y)为φ(x);R1(x,y)恒真,即无条件通过; ψ1(x,y)为P(x,y);通过此通路后y的值取值x。 故有:φ(x)?P(x,x),即 [x1>0∧x2>0]?[x1>0∧x2>0∧x1>0∧x2>0∧gcd(x1,x2)=gcd(x1,x2)] 其它路径的
原创力文档


文档评论(0)