软件工程课件之第4章 形式化说明技术(第五版)(张海潘编著).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程课件之第4章 形式化说明技术(第五版)(张海潘编著).ppt》由用户(saw518)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程课件之第4章 形式化说明技术第五版张海潘编著 软件工程 课件 形式化 说明 技术 第五 张海潘 编著
- 资源描述:
-
1、4.1 概述概述4.2 有穷状态机有穷状态机4.3 Petri网网4.4 Z语言语言第第4章章 形式化说明技术形式化说明技术软件工程使用方法的分类:软件工程使用方法的分类:n非形式化,用自然语言描述需求规格说明;非形式化,用自然语言描述需求规格说明;n半形式化,用数据流图或实体半形式化,用数据流图或实体-联系图建立模联系图建立模型;型;n形式化,是描述系统性质的基于数学的技术,形式化,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。那么它就是形式化的。4.1 概述概述4.1.1 非形式化方法的缺点非形式化方法的
2、缺点n矛盾,指一组相互冲突的陈述。矛盾,指一组相互冲突的陈述。n二义性,指读者可以用不同方式理解的陈述。二义性,指读者可以用不同方式理解的陈述。n含糊性,几乎不可避免地会出现含糊性。含糊性,几乎不可避免地会出现含糊性。n不完整性,不完整性可能是在系统规格说明不完整性,不完整性可能是在系统规格说明中最常遇到的问题之一。中最常遇到的问题之一。n抽象层次混乱,指在非常抽象的陈述中混进抽象层次混乱,指在非常抽象的陈述中混进了一些关于细节的低层次陈述。了一些关于细节的低层次陈述。4.1.2 形式化方法的优点形式化方法的优点n数学能够简洁准确地描述物理现象、对象或动数学能够简洁准确地描述物理现象、对象或动
3、作的结果,因此是理想的建模工具。特别适合作的结果,因此是理想的建模工具。特别适合于表示状态,也就是表示于表示状态,也就是表示“做什么做什么”。n可以在不同的软件工程活动之间平滑地过渡。可以在不同的软件工程活动之间平滑地过渡。不仅功能规格说明,而且系统设计也可以用数不仅功能规格说明,而且系统设计也可以用数学表达,当然,程序代码也是一种数学符号。学表达,当然,程序代码也是一种数学符号。n它提供了高层确认的手段。可以使用数学方法它提供了高层确认的手段。可以使用数学方法证明,设计符合规格说明,程序代码正确地实证明,设计符合规格说明,程序代码正确地实现了设计结果。现了设计结果。4.1.3 应用形式化方法
4、的准则应用形式化方法的准则(1)应该选用适当的表示方法应该选用适当的表示方法 通常,一种规格说明技术只能用自然的方通常,一种规格说明技术只能用自然的方式说明某一类概念。式说明某一类概念。(2)应该形式化,但不要过分形式化应该形式化,但不要过分形式化 目前的形式化技术还不适于描述系统的每目前的形式化技术还不适于描述系统的每个方面。个方面。(3)应该估算成本应该估算成本 为了使用形式化方法,通常需要事先进行为了使用形式化方法,通常需要事先进行大量的培训。最好预先估算所需的成本并编入大量的培训。最好预先估算所需的成本并编入预算。预算。(4)应该有形式化方法顾问随时提供咨询应该有形式化方法顾问随时提供
5、咨询 绝大多数软件工程师对形式化方法中使用绝大多数软件工程师对形式化方法中使用的数学和逻辑并不很熟悉,没受过使用形式化的数学和逻辑并不很熟悉,没受过使用形式化方法的专业训练,因此需要专家指导和培训。方法的专业训练,因此需要专家指导和培训。(5)不应该放弃传统的开发方法不应该放弃传统的开发方法 把形式化方法和结构化方法或面向对象方把形式化方法和结构化方法或面向对象方法集成起来取长补短往往能获得很好的效果。法集成起来取长补短往往能获得很好的效果。(6)应该建立详尽的文档应该建立详尽的文档 建议使用自然语言注释形式化的规格说明建议使用自然语言注释形式化的规格说明书,以帮助用户和维护人员理解系统。书,
6、以帮助用户和维护人员理解系统。(7)不应该放弃质量标准不应该放弃质量标准 形式化方法不能保证软件的正确性,只不形式化方法不能保证软件的正确性,只不过是有助于开发出高质量软件的一种手段。过是有助于开发出高质量软件的一种手段。(8)不应该盲目依赖形式化方法不应该盲目依赖形式化方法 形式化方法并不能保证开发出的软件绝对形式化方法并不能保证开发出的软件绝对正确,必须用其他方法来验证软件正确性。正确,必须用其他方法来验证软件正确性。(9)应该测试、测试再测试应该测试、测试再测试 软件测试的重要性并没有降低。软件测试的重要性并没有降低。(10)应该重用应该重用 软件重用仍然是降低软件成本和提高软件软件重用
7、仍然是降低软件成本和提高软件质量的惟一合理的方法。质量的惟一合理的方法。4.2 有穷状态机有穷状态机4.2.1 概念概念 例:例:一个保险箱上装了一个复合锁,锁有三一个保险箱上装了一个复合锁,锁有三个位置,分别标记为个位置,分别标记为1、2、3,转盘可向左,转盘可向左(L)或向右或向右(R)转动。这样,在任意时刻转盘都有转动。这样,在任意时刻转盘都有6种可能的运动,即种可能的运动,即1L、1R、2L、2R、3L和和3R。保险箱的组合密码是。保险箱的组合密码是1L、3R、2L,转盘,转盘的任何其他运动都将引起报警。的任何其他运动都将引起报警。有穷状态机包括有穷状态机包括5个部分:个部分:状态集状
8、态集J、输入集输入集K、由当前状态和当前输入确定下一个状态由当前状态和当前输入确定下一个状态(次态次态)的的转换函数转换函数T、初始态初始态S和和终态集终态集F。n状态集状态集J:保险箱锁定,:保险箱锁定,A,B,保险箱解锁,保险箱解锁,报警报警n输入集输入集K:1L,1R,2L,2R,3L,3Rn转换函数转换函数T:如表:如表4.1所示所示n初始态初始态S:保险箱锁定:保险箱锁定n终态集终态集F:保险箱解锁,报警:保险箱解锁,报警表表 4 4.1 1 保险箱的状态转换表保险箱的状态转换表当前状态当前状态 次态次态转盘动作转盘动作保险箱锁定保险箱锁定A AB B1L1LA A报警报警报警报警1
展开阅读全文