首页 理论教育形式化软件开发方法分类

形式化软件开发方法分类

【摘要】:变换的开始、中间到结束,产物是一符号串,这种形式化方法称为完全形式化方法。目前在各类数学和程序设计方法学专著和教材中使用的方法就是属于部分形式化方法。总体上,形式化软件开发方法大致可分为以下五类:1.基于模型的方法。

形式化方法按其形式化程度来分,主要有两种:完全形式化方法和部分形式化方法。

1.完全形式化方法

对于一个给定的算法程序设计问题,先用符号化的规范描述语言,写出这个问题的形式化规范,然后采用变换方法,将问题的形式规范变换成可执行的程序。变换的开始、中间到结束,产物是一符号串,这种形式化方法称为完全形式化方法。使用完全形式化方法产生程序的过程可以用计算机机械地产生,但目前用这方法只能产生没有创造性劳动的简单程序。

2.部分形式化方法

对于给定算法程序设计的问题,应先写出该问题的形式化规范,然后使用形式化和非形式化相结合的方法,开发或证明算法程序正确,这种方法常称为部分形式化方法或数学家的形式化方法。使用这种类型的形式化方法常常可以设计和证明一类相当复杂的算法程序和软件。目前在各类数学和程序设计方法学专著和教材中使用的方法就是属于部分形式化方法。使用这种方法进行软件或算法程序设计或证明时,非形式化方法不能够由计算机机械地进行。

由前面的叙述可知,软件开发的形式化方法作为一般形式化方法的特例,也存在其固有局限性,因此软件开发过程不可能完全形式化。所以,目前软件开发的形式化方法主要是以部分形式化方法为主。

总体上,形式化软件开发方法大致可分为以下五类:(www.chuimin.cn)

1.基于模型的方法。给出系统(程序)状态和状态变换操作的显式但亦是抽象的定义,对于并发没有显示的表示。Z和VDM即属于该类方法。

2.代数方法。通过联系不同操作间的行为关系而给出操作的隐式定义,而不是定义状态。同样,它亦未给出并发的显式表示。

3.过程代数方法。给出并发过程的一个显式模型,并通过过程间允许的可观察的通信上的限制(约束)来表示行为。

4.基于逻辑的方法。有很多方法采用逻辑来描述系统的特性,包括程序行为的低级规范和系统时间行为的规范。

5.基于网络的方法。根据网络中的数据流显式地给出系统的并发模型,包括数据在网中从一个节点流向另一个节点的条件。