更新于
70

 

分类方法

具体方法

描述

开发风格

自顶向下方法

系统的整体结构首先被定义和设计,然后逐步细化为更具体的模块和功能

自底向上方法

是一种从具体模块开始逐步构建整个系统的方法

性质

形式化方法

形式化方法是一种具有坚实数学基础的方法

非形式化方法

非形式化方法则不把严格性作为其主要着眼点

适应范围

整体性方法

适用于软件开发全过程的方法称为整体性方法

局部性方法

适用于开发过程某个具体阶段的软件方法称为局部性方法

形式化方法

形式化方法是指在软件开发过程中,使用严格的数学模型和形式化语言来描述系统的需求、设

计和行为,并通过逻辑推理或模型检测等形式化验证手段,证明软件在所有可能的运行情况下都满

足既定规范,从而获得可证明的软件正确性。它关注的不仅是测试能否发现错误,而是从理论上保

证程序在功能、行为、安全性和活性等方面“必然正确”,常用于安全攸关或高可靠性系统的软件开

发与验证。

这里需要掌握形式化方法的特点。(1)正确性验证难且耗时,数学模型和证明困难。(2)仍

然需要和传统测试相结合。形式化方法提供理论保证,而测试则负责实际运行和发现运行时错误,

不能说有了形式化方法,软件开发就不需要测试了。

净室软件工程

净室软件工程(Cleanroom Software Engineering, CSE)首先是一种上面提到的“形式化方法”,

这一点非常关键。它不是测试方法、不是管理模型、也不是单纯的过程模型,而是强调用数学与统

计理论,在设计和规约阶段消除错误的软件工程方法。它的理论基础是函数理论和抽样理论,如下

表所示。

#软件工程#