软件工程SoftwareEngineering四
形式化说明技术软件工程4
1形式化方法(FormalMethods)概述形式化方法在逻辑科学中是指分析、研究思维形式结构的方法
它把各种具有不同内容的思维形式(主要是命题和推理)加以比较,找出其中各个部分相互联结的方式,如命题中包含概念彼此间的联结,推理中则是各个命题之间的联结,抽取出它们共同的形式结构;再引入表达形式结构的符号语言,用符号与符号之间的联系表达命题或推理的形式结构
在计算机科学和软件工程领域,形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证
将形式化方法用于软件设计,是期望能够像其它工程学科一样,使用适当的数学分析以提高设计的可靠性和容错性
但是,由于采用形式化方法的成本高意味着它们通常只用于开发注重安全性的高度整合的系统
形式化说明技术软件工程4
2形式化方法的发展软件形式化方法最早可追溯到20世纪50年代后期对于程序设计语言编译技术的研究,即J
Backus提出BNF描述Algol60语言的语法,出现了各种语法分析程序自动生成器以及语法制导的编译方法,使得编译系统的开发从“手工艺制作方式”发展成具有牢固理论基础的系统方法
形式化方法的研究高潮始于20世纪60年代后期,针对当时所谓“软件危机”,人们提出种种解决方法,归纳起来有两类:一是采用工程方法来组织、管理软件的开发过程;二是深入探讨程序和程序开发过程的规律,建立严密的理论,以其用来指导软件开发实践
前者导致“软件工程”的出现和发展,后者则推动了形式化方法的深入研究
经过30多年的研究和应用,如今人们在形式化方法这一领域取得了大量、重要的成果,从早期最简单的形式化方法——一阶谓词演算方法到现在的应用于不同领域、不同阶段的基于逻辑、状态机、网络、进程代数、代数等众多形式化方法
形式化方法的发展趋势逐渐融入软件开发过程的各个