软件工程-第四章-形式化说明技术
- 4. 形式化说明技术
- 4.1 概述
- 4.1.1 非形式化方法的缺点
- 4.1.2 形式化方法的优点
- 4.1.3 应用形式化方法的准则
- 4.2 有穷状态机
- 4.3 Petri 网
- 4.4 Z 语言
- 习题
4. 形式化说明技术
- 按形式化程度分为三类:
- 非形式化,如用自然语言描述规格说明
- 半形式化,如用数据流图或实体-联系图建立模型
- 形式化,如描述系统性质是基于数学的技术
4.1 概述
4.1.1 非形式化方法的缺点
- 矛盾性:在需求规格说明书中对同一问题前后存在不同的描述
- 二义性:读者可以用不同的方式理解的陈述
- 含糊性:需求规格说明书对某一问题描述不清晰,不可理解
- 不完整性:需求规格说明书对某一问题只说明了局部,没说明整体
- 抽象层次混乱:指在非常抽象的陈述中混入了关于低层次的细节陈述
4.1.2 形式化方法的优点
- 能够简洁准确的描述物理现象、对象或动作的结果
- 在不同的软件工程活动之间平滑过渡
- 提供了高层确认的手段
4.1.3 应用形式化方法的准则
- 选用适当的表示方法
- 应该形式化,但不要过分形式化
- 应该估算成本
- 应该有形式化顾问随时提供咨询
- 不应该放弃传统的开发方法
- 应该建立详尽的文档
- 不应该放弃质量标准
- 应该测试,测试再测试
- 应该重用
4.2 有穷状态机
利用有穷状态机可以准确地描述一个系统,因此它是表达规格说明的一种形式化方法。
4.3 Petri 网
形式化方法
4.4 Z 语言
形式化方法
习题
- 举例对比形式化方法和欠形式化方法的优缺点。
形式化说明:
优点:
- 能够简洁准确的描述物理现象、对象或动作的结果。
- 可以在不同软件工程活动之间平滑的过度。
- 它提供了高层确认的手段。
缺点:
- 大多形式化的规格说明主要关注系统的功能数据,而时序的问题,控制和行为等方面的需求却更难于表示。
非形式化说明:
优点:
- 难度低
缺点:
- 可能存在矛盾,二义性,含糊性,不完整性级抽象层次混乱等问题
以一个简单的俄罗斯方块游戏系统规格说明为例,用自然语言描述如下:
游戏的每个状态对应一个游戏界面,开始状态下,但变量cd_start=1是进入正常游戏的状态,cd_start=2时 进入读取游戏状态,cd_start=3是进入得分榜界面查看。在得分榜界面按任意键返回开始界面,在读取游戏界面,当游戏数据读取完成后进入正常游戏状态,正常游戏状态下,同时按下左键和右键进入储存游戏界面,数据储存结束后返回正常游戏状态,在正常游戏状态下,如果变量game_res=0,则游戏结束,进入游戏结束画面。可见,用自然语言书写的系统规格说明书,罗嗦繁杂,并且可能存在矛盾,二义性,含糊性,不完整性及抽象 层次混乱等问题。
- 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应该遵循哪些准则?
在开发大型软件系统的过程中应该使用形式化说明技术。
(在用非形式化的方式描述时,存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题时用形式化说明技术)
应用形式化方法的准则:
- 选用适当的表示方法
- 应该形式化,但不要过分形式化
- 应该估算成本
- 应该有形式化顾问随时提供咨询
- 不应该放弃传统的开发方法
- 应该建立详尽的文档
- 不应该放弃质量标准
- 应该测试,测试再测试
- 应该重用