论对形式化方法解析。

形式化方法

大神E.W.Dijkstra曾提出一个著名论断:

程序测试只能证明错误的存在,但不能证明错误不存在。

起源及发展
是的,错误无法被避免,但可以尽可能减少。
时间进程
20世纪50年代后期J.Backus提出BNF描述Algol60语言的语法,出现了各种语法分析程序自动生成器以及语法制导的编译方法。
20世纪60年代后期针对当时所谓“软件危机”。深入探讨程 序和程序开发过程的规律,建立严密的理论,以其用来指导软件开发实践——这一解决方法推动进一步发展
往后的研究和应用形式化方法的发展趋势逐渐融入软件开发过程的各个阶段,从需求分析、功能描述(规约)、(体 系结构/算法)设计、编程、测试直至维护。
定义
形式化方法是一种有严格数学基础的软件和系统开发方法,支持计算机系统及软件的规约、设计、验证与演化等活动。
系统建模
系统从其运行方式上分为:串行系统和并发系统两大类。
串行系统
并发系统
特征
特征
运行方式
从初始态到终止态的系统
系统内发生的两个事件间没有因果关系或可以按任意次序发生
顺序性 封闭性 可再现性
不确定性 并发性
形式验证 (Formal Verification)
形式验证分为两类:
1.以逻辑推理为基础的演绎验证。2.以穷尽搜索为基础的模型检测。
用逻辑公式描述系统性质,通过一些公理或推理规则来证明系统具有某些性质。通过搜索待验证系统模型的有穷状态空间来检验该系统的行为是否具备预期属性的一种自动验证技术。
形式规约(Formal Specification)

它是对程序“做什么”(what to do)的数学描述,是用具有精确语义的形式语言书写的程序功能描述,它是设计和编制程序的出发点,也是验证程序是否正确的依据。

形式化方法术语

Specification(规范):
–>采用具有严格定义的形式和语义的记法形式,描 述软件设计(和实现)。

Reasoning and Analysis(推理和分析):
–>对形式化规范进行分析和推理, 确定它们的各种静态和动态性质 – 规范是否具有一致性和完整性,其中有没有矛盾,有没有遗漏? – 运行中不会出现某些不能容忍的状态(死锁、活锁等) – 找出其中的错误和缺陷等。

Refinement(精化):
–>从抽象的高层描述出发,严格保语义地推导出更接 近实现的包含更多细节的规范,最终得到正确实现了高层规范的可运行程 序(逐步求精技术的严格化,另一些软件技术也可以看作精化)。

内容转载连接
形式化方法简介.
形式化方法百科.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值