软件工程导论——第四章——形式化说明技术
文章目录
- 软件工程导论——第四章——形式化说明技术
-
- 1、概述
- 2、非形式化方法的缺点:
- 3、形式化方法的优点:
- 4、应用形式化的准则
- 5、有穷状态机
-
- 状态转换
- 扩展
- 优点
- 缺点
- 6、Petri
- 7、Z语言
1、概述
按照形式化的程度,可以把软件工程使用的方法划分为非形式化、半形式化和形式化三类。用自然描述需求规格说明,是典型的非形式化方法。用数据流图或实体联系图建立模型,是典型的的半形式化方法。所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。
2、非形式化方法的缺点:
- 矛盾:一组相互冲突的陈述。
- 二义性:指读者可以用不同的方式理解的陈述。
- 含糊性:指没有指明任何欧勇信息的笼统的陈述。
- 不完整性:指没有指明具体功能的陈述。
- 抽象层次混乱:指非抽象的陈述中混进了一些关于细节的低层次陈述。
3、形式化方法的优点:
- 能够简洁准确地描述物理现象、对象或动作的结果。准确到几乎没有二义性,而且可以用数学方法来验证,以发现存在的矛盾和不完整性,再这样的规格说明中完全没有含糊性。
- 可以在不同的软件工程活动之间平滑地过度。不仅功能规格说明,而且系统设计也可以用数学表达,当然,程序代码也是一种数学符 。
- 提供了高层确认的手段,可以使用数学方法证明,设计符合规格说明,程序代码正确地实现了设计结果。
4、应用形式化的准则
- 应该选用适当的表示方法。
- 应该形式化,但不要过分形式化
- 应该估算成本
- 应该有形式化方法顾问随时提供咨询
- 不应该放弃传统的开发方法
- 应该建立详尽的文档
- 不应该放弃质量标准
- 不应该盲目依赖形式化方法
- 应该测试、测试再测试
- 应该重用:即使采用了形式化方法,软件重用仍然是降低软件成本和提高软件质量的唯一合理的方法,而且用形式化方法说明的软件构件具有清晰定义的功能和接口,使得它们有更好的可重用性。
5、有穷状态机
有穷状态机是表达规格说明的一种形式化方法
一个有穷状态机包括下述五个部分:状态集J,输入集K,由当前状态和当前输入确定下一个状态(次态)的转换函数T,初始状态S和终态集F。一个有穷状态机可以表示为一个5元组(J、K、T、S、F)
举例:
-
一组位置P为{P1,p2,p3,p4},在图中用圆圈代表位置。
-
一组转换T为{T1,T2}在图中用短直线表示转换
-
两个用于转换的输入函数,用由为主席指向转换的箭头表示,他们是I(t1) = {P2, P4}
I(t2) = {P2}
-
两个用于转换的输出函数,用由转换指向位置灯箭头表示,他们是:O(t1) = {P1}
O(t2) = {P3, P4}
其中,P = {P1,……Pn}是一个有穷位置集
T = {t1,……,tm}是一个有穷转换集,m>=0
(3)分配权标
①带标记的Petri
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TIumZhWu-1656168358806)(C:UsersWAppDataRoamingTyporatypora-user-imagesimage-20220625221908283.png)]](https://www.iruanshi.com/tt5/wp-content/uploads/2022/12/slt.png)
7、Z语言
用Z语言描述的、最贱的形式化规格说明有下述四个部分:
(1)给定的集合
一个Z规格说明从一系列给定的初始化集合开始,所谓初始化集合就是不需要详细定义的集合,这种集合用带方括 的形式表示。
(2)状态定义
一个Z规格说明由若干个“格”组成,每个格含有一组变量说明和一系列限定变量取值范围的谓词。
(3)初始状态
抽象的初始状态是指系统第一次开启时的状态。
(4)操作:
- 当一个格被用在另一个格中时,要在它的前面加上一个三角形符 作为前缀、问 ”示输入变量,而感叹 ”!“代表输出变量
- 谓词部分,包含了一组调用操作的前置条件,以及操作完全结束后的后置条件,如果前置条件成立,则操作执行完成后可得到后置条件,但是,如果在前置条件不成立的情况下调用该操作,则不能得到指定的结果。
Z语言获得成功的主要原因为:
- 可以比较容易的发现用Z写的规格说明的错误,特别是在自己审查规格说明,及根据形式化的规格说明来审查设计与代码时,情况更是如此。
- 要求十分精确地使用Z说明符写规格说明。减少了模糊性、不一致性和遗漏。
- Z只是一种形式化语言,在需要时开发者可以严格地验证规格说明的正确性。
- 只用比较短的时间就能够让开发人员学会编写Z规格说明
- 使用Z语言通过减少开发过程所需要的总时间来降低软件开发费用
- 用户可以依据Z规格说明用自然语言重写比直接用自然语言写出的非形式化规格说明更加清楚和准确。
是一种形式化语言,在需要时开发者可以严格地验证规格说明的正确性。
4. 只用比较短的时间就能够让开发人员学会编写Z规格说明
5. 使用Z语言通过减少开发过程所需要的总时间来降低软件开发费用
6. 用户可以依据Z规格说明用自然语言重写比直接用自然语言写出的非形式化规格说明更加清楚和准确。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!