软件工程_homework_4

软件工程

什么是形式化方法

形式化方法可以分为形式化描述和建立在形式化描述基础之上的形式化开发。形式化的描述就是用形式化的语言(具有严格的语法语义定义的语言)做描述。形式化的软件开发,就是用形式化的语言来描述软件需求和特征,并且通过推理验证来保证最终的软件产品是否满足这些需求和具备这些特征。这样的验证当然得建立在严格的语法语义的基础之上的。在实际应用中,这是不容易做到的。形式化方法研究的目的就是希望能够提供更好的理论、方法和工具,扩大形式化方法的应用范围和使用价值。

形式化方法的意义在于它能帮助发现其它方法不容易发现的系统描述的不一致,不明确或不完整,有助于增加软件开发人员对系统的理解,因此形式化方法是提高软件系统,特别是safety-critical系统的安全性与可靠性的重要手段.最早的形式化方法是逻辑与逻辑推理,它的目标是使推理机械化.从广义上讲,这一目标受到许多挫折.比如说逻辑系统的不完备性(incompleteness)、逻辑系统的不可判定性(undecidability)、自动推理的难处理性(intractability).但是在一些实际应用上,逻辑方法和自动推理还是起着非常大的作用.

早期形式化方法在软件验证的应用是串行程序的验证,后来随着软件研究和应用的发展,逐渐多样化.比如用逻辑和代数方法描述软件,用逻辑推理来验证软件(即描述软件的这些逻辑公式)的性质.又比如用进程代数描述并发软件,用模型检测方法验证这些软件的性质.近年来,由于认识到形式化方法重视的是严谨性,而这些方法与常用的软件方法差别很大,逐渐有许多结合图形化软件方法、面向对象方法和形式化方法的工作.以上所述几个方面(即程序验证,定理证明,模型检测,图形化方法和形式化方法相结合)的内容虽然不尽一样,但密切相关.定理证明与模型检测互为补充,各有所长.对于复杂的软件系统的验证,最好是能够结合多种方法的使用.这些方法对可信软件开发方法的探索和应用都极为重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值