形式化说明技术 按照形式化的程度,可以把软件工程使用的方法划分成非形式化,半形式化和形式化3 类。用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或实体—联系图建 立模型,是典型的半形式化方法。 所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。 4 .1 概述 4 .1 .1 非形式化方法的缺点 用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。 所谓矛盾是指一组相互冲突的陈述。例如,规格说明书的某一部分可能规定系统必须监控化学反应容器中的温度,而另一部分(可能由另一位系统分析员撰写)却规定只监控在一定范围内的温度。如果这两个相互矛盾的规定写在同一页纸上,自然很容易查出,不幸的是,它们往往出现在相距几十页甚至数百页的两页纸中。 二义性是指读者可以用不同方式理解的陈述。例如,下面的陈述就是具有二义性: “操作员标识由操作员姓名和密码组成,密码由 6 位数字构成。当操作员登录进系统时它被存放在注册文件中。” 在上面这段陈述中,“它”到底代表“密码”还是“操作员标识”,不同的人往往有不同的理解。 系统规格说明书是很庞大的文档,因此,几乎不可避免地会出现含糊性。例如,我们可能经常在文档中看到类似下面这样的需求:“系统界面应该是对用户友好的。”实际上,这样笼统的陈述并没有给出任何有用的信息。 不完整性可能是在系统规格说明中最常遇到的问题之一。例如,考虑下述的系统功能需求: “系统每小时从安放在水库中的深度传感器获取一次水库深度数据,这些数值应该保留 6 个月。” 假设在系统规格说明书中还规定了某个命令的功能:“AVERAGE 命令的功能是,在PC 机上显示由某个传感器在两个日期之间获取的平均水深。” 如果在规格说明书中对这个命令的功能没有更多的描述,那么,该命令的细节是严重不完整的,例如,对该命令的描述没有告诉我们,如果用户给定的日期是在当前日期的 6个月之前,那么系统应该做什么。 抽象层次混乱是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。这样的规格说明书使得读者很难了解系统的整体功能结构。 4 .1 .2 形式化方法的优点 正如上一小节所讲的,人在理解用自然语言描述的规格说明时,容易产生二义性。为了克服非形式化方法的缺点,人们把数学引入软件开发过程,创造了基于数学的形式化方法...