【软件工程理论与实践】Homework(四.1)

1、阅读和了解什么是形式化方法


先了解一下形式化方法的定义:

形式化方法英文的名称是formal methods。在逻辑科学中是指分析、研究思维形式结构的方法。它把各种具有不同内容的思维形式(主要是命题和推理)加以比较,找出其中各个部分相互联结的方式,如命题中包含概念彼此间的联结,推理中则是各个命题之间的联结,抽取出它们共同的形式结构;再引入表达形式结构的符号语言,用符号与符号之间的联系表达命题或推理的形式结构。 ——百度百科

    由定义和百度百科的一些例子看来,我认为形式化方法是通过借助数学的一些方法(比如各个命题的真假)来解决一些软件工程领域的问题,同时通过这些命题来进行推理和验证。形式化方法的出发点就是数学逻辑方法,其目的是开发可靠的软件产品。
    同时阅读了一些使用形式化方法开发软件的一些例子,以下简略的写一写:

形式化方法在系统软件开发领域也取得了许多成果。这方面最重要的成果之一是CompCert编译器。编译器显然是最重要的系统软件,目前正在运行的绝大多数程序都是编译器生成的。但是,常用编译器都没经过验证,并不保证目标代码与源代码语义一致。2012年法国研究者发布了经过验证的优化编译器CompCert,后不断增加功能。目前版本能处理ANSI C几乎所有特征和一些C99扩充,能生成PowerPC、ARM和X86代码,支持64位系统结构、分别编译和连接,能生成DWARF调试信息和语法错误的解释等。CompCert基于计算机辅助证明系统Coq开发,严格证明了目标代码与源程序的等价性。X. Yang等人的论文Finding and Understanding Bugs in C Compilers(PLDI 2011)报告了他们用6年时间检查各种在用编译器(包括VC、gcc等)错误的工作,只有当时版本的CompCert验证过的部分没发现错误,其他广泛使用的编译器都发现了错误。


近年的另一有趣工作是2015年MIT学者开发的经过验证的文件系统FSCQ(SOSP 2015),可以保证在使用中任何时候系统崩溃,系统重新boot都能正确恢复,不会丢失数据(称为crash safety)。常规的文件系统并没有这种保证。


美国国防部的HACMS项目(High-AssuranceCyber Military Systems,高可信军事网络系统)的目标是开发高可信、黑客无法入侵的军用系统。该项目的一个成果是一个无人机控制系统,开发成功后组织白帽黑客攻击,没被攻破。该系统的基础是经过形式化验证的OS内核seL4,在该内核上用Isabelle形式化工具开发和验证整个系统。HACMS项目的另一成果是邵中领导开发的经过验证的支持多核CPU的操作系统内核CertiKOS(OSDI’16)。

    显然,上面这些例子中提到的软件都是非常重要而且比较难完成的。这些工作通过形式化方法来完成,说明形式化方法确实能用于做软件,而且能做出最高质量的重要软件
    可以了解到,目前软件形式化开发还处在起步阶段,许多问题尚未研究。有人质疑它是否能够严格保证由证明正确的部分构造出的系统仍然正确,即使这些部分是基于不同方法构造出来的。作为与常规方式不同的另一种软件质量保证手段,形式化方法将怎样与常规开发方法相互作用?虽然现在关于形式化方法的很多事情都还不清楚。但无论如何,使用形式化方法开发、验证软件这方面工作已经取得了实质性进展,并已开始在实际领域发挥作用
    形式化方法在软件工程领域的应用现在虽然还比较少,但是这种形式化开发方法已经逐步地进入了软件开发的领域。我们也应该及时学习一下这些新的方法,因为有的软件规范标准提到,其最高级别的质量保证都要求形式化方法,虽然目前有些作为选择性要求,但只是因为目前运用这种方法撰写时还缺乏实践基础。但是相信这种方法的前途不可限量。相信以后我们还可以看到更多运用形式化方法开发、验证的软件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值