软件工程第4章精编版

上传人:ahu****ng1 文档编号:143305226 上传时间:2020-08-28 格式:PPTX 页数:37 大小:584.14KB
返回 下载 相关 举报
软件工程第4章精编版_第1页
第1页 / 共37页
软件工程第4章精编版_第2页
第2页 / 共37页
软件工程第4章精编版_第3页
第3页 / 共37页
软件工程第4章精编版_第4页
第4页 / 共37页
软件工程第4章精编版_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《软件工程第4章精编版》由会员分享,可在线阅读,更多相关《软件工程第4章精编版(37页珍藏版)》请在金锄头文库上搜索。

1、第4章 形式化说明技术,4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结,按照形式化的程度,可以把软件工程使用的方法划分成非形式化、半形式化和形式化3类: 用自然语言描述需求规格说明,是典型的非形式化方法。 用数据流图或实体-联系图建立模型,是典型的半形式化方法。 所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。,用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。,4.1 概述 4.1.1 非形式化方法的缺点,为了克服非形式化方法的缺点,人们把数学引入软件开

2、发过程,创造了基于数学的形式化方法。 数学最有用的一个性质是,它能够简洁准确地描述物理现象、对象或动作的结果,因此是理想的建模工具。数学特别适合于表示状态,也就是表示“做什么”。 需求规格说明书主要描述应用系统在运行前和运行后的状态,因此,数学比自然语言更适于描述详细的需求。,4.1.2 形式化方法的优点,应该选用适当的表示方法。 (2) 应该形式化,但不要过分形式化。 (3) 应该估算成本。 (4) 应该有形式化方法顾问随时提供咨询。 (5) 不应该放弃传统的开发方法。 (6) 应该建立详尽的文档。 (7) 不应该放弃质量标准。 (8) 不应该盲目依赖形式化方法。 (9) 应该测试、测试再测

3、试。 (10) 应该重用。,4.1.3 应用形式化方法的准则,简单例子介绍有穷状态机的基本概念。 一个保险箱上装了一个复合锁,锁有三个位置,分别标记为1、2、3,转盘可向左(L)或向右(R)转动。 保险箱的组合密码是1L、3R、2L,转盘的任何其他运动都将引起报警。,4.2 有穷状态机 4.2.1 概念,图4.1 保险箱的状态转换图,从上面这个简单例子可以看出,一个有穷状态机包括下述5个部分: 状态集J:保险箱锁定,A,B,保险箱解锁,报警。 输入集K:1L,1R,2L,2R,3L,3R。 转换函数T:由当前状态和当前输入确定下一个状态(次态), 如表4.1所示。 初始态S:保险箱锁定。 终态

4、集F:保险箱解锁,报警。,如果使用更形式化的术语,一个有穷状态机可以表示为一个5元组(J,K,T,S,F),其中: J是一个有穷的非空状态集; K是一个有穷的非空输入集; T是一个从(J-F)K到J的转换函数; SJ,是一个初始状态; FJ,是终态集。,用自然语言描述的对电梯系统的需求: 在一幢m层的大厦中需要一套控制n部电梯的产品,要求这n部电梯按照约束条件C1,C2和C3在楼层间移动。 C1:每部电梯内有m个按钮,当按下一个按钮时, 电梯驶向相应的楼层。 C2:每层楼都有两个按钮分别请求电梯上行和下行。电梯向要求的方向移动。 C3:当对电梯没有请求时,它关门并停在当前楼层。,4.2.2 例

5、子,有穷状态机对本产品进行规格说明: 这个问题中有两个按钮集。 n部电梯中的每一部都有m个按钮,一个按钮对应一个楼层。因为这mn个按钮都在电梯中,所以称它们为电梯按钮。 每层楼有两个按钮,一个请求向上,另一个请求向下,这些按钮称为楼层按钮。,图4.2电梯按钮的状态转换图,图4.3楼层按钮的状态转换图,图4.4 电梯的状态转换图,给出电梯的状态转换规则: S(U,e,f)+DC(e,f)M(U,e,f+1) S(D,e,f)+DC(e,f)M(D,e,f-1) S(N,e,f)+DC(e,f)W(e,f) 第一条规则表明,如果电梯e停在f层准备向上移动,且门已经关闭,则电梯将向上一楼层移动。 第

6、二条和第三条规则,分别对应于电梯即将下降或者没有待处理的请求的情况。,有穷状态机方法采用了一种简单的格式来描述规格说明: 当前状态+事件+谓词下个状态 这种形式的规格说明易于书写、易于验证,而且可以比较容易地把它转变成设计或程序代码。 有穷状态机方法比数据流图技术更精确,4.2.3 评价,并发系统中遇到的一个主要问题是定时问题。 用于确定系统中隐含的定时问题的一种有效技术是Petri网, Petri网是由Carl Adam Petri发明的。 在性能评价、操作系统和软件工程等领域,Petri网应用得都比较广泛。 Petri网包含4种元素:一组位置P、一组转换T、输入函数I以及输出函数O。,4.

7、3 Petri网 4.3.1 概念,图4.5 Petri网的组成,图4.6 带标记的Petri网,图4.7 图4.6的Petri网在转换 t1被激发后的情况,图4.8 图4.7的Petri网在转换 t2被激发后的情况,现在把Petri网应用于电梯问题。 当用Petri网表示电梯系统的规格说明时,每个楼层用一个位置Ff代表(1fm),在Petri网中电梯是用一个权标代表的。 在位置Ff上有权标,表示在楼层f上有电梯。,4.3.2 例子,图4.10 Petri网表示的电梯按钮,图4.11 Petri网表示楼层按钮,用Z语言描述的、最简单的形式化规格说明含有下述4个部分: 给定的集合、数据类型及常数

8、。 状态定义。 初始状态。 操作。,4.4 Z语言 4.4.1 简介,1. 给定的集合 对于电梯问题,给定的初始化集合称为Button,即所有按钮的集合,因此,Z规格说明开始于: Button 2. 状态定义 一个Z规格说明由若干个“格(schema)”组成,每个格含有变量说明和限定变量取值范围的谓词。例如,格S的格式如图4.12所示。,图4.12 Z格S的格式,3. 初始状态 对于电梯问题来说,抽象的初始状态为: Button_InitButton_Statepushed= 上式表示,当系统首次开启时pushed集为空,即所有按钮都处于关闭状态。 4. 操作 如果一个原来处于关闭状态的按钮被

9、按下,则该按钮开启,这个按钮就被添加到pushed集中。,图4.13 Z格Button_State,图4.14 操作Push_Button的Z规格说明,图4.15 操作Floor_Arrival的Z规格说明,目前,Z也许是应用得最广泛的形式化语言,尤其是在大型项目中Z语言的优势更加明显。 使用形式化规格说明是全球的总趋势,过去,主要是欧洲习惯于使用形式化规格说明技术,现在越来越多的美国公司也开始使用形式化规格说明技术。,4.4.2 评价,基于数学的形式化规格说明技术,目前还没有在软件产业界广泛应用。 形式化方法比欠形式化方法更难学习,不仅在培训阶段要花大量的投资,而且对某些软件工程师来说,它代

10、表了一种“文化冲击”。 把形式化方法和欠形式化方法有机地结合起来,使它们取长补短,应该能获得更理想的效果。,4.5 小结,4-1 举例对比形式化方法和欠形式化方法的优缺点。 4-2 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则? 4-3 一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:,习题,110101E-101 -100111E11101 +1E0 更形式化地,浮点二进制数定义如下: floatingpoint binary=sig

11、nbitstringEsignbitstring sign=+- bitstring=bitbitstring bit=01 其中, 符号=表示定义为; 符号.表示可选项;,符号ab表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明。 4-4 考虑下述的自动化图书馆流通系统:每本书都有一个条形码,每个借阅人都有一个带有条形码的卡片。当一个借阅人想借一本书时,图书管理员扫描书上的条形码和借阅人卡片上的条形码,然后在计算机终端上输入C;当归还一本书时,图书管理员将再做一次扫描,并输入R。图书管理员可以把一些书加到(+)图

12、书集合中,也可以删除(-)它们。,借阅人可以在终端上查找到某个作者所有的书(输入“A=”和作者名字),或具有指定标题的所有书籍(输入“T=”和标题),或属于特定主题范围内的所有图书(输入“S=”加主题范围)。最后,如果借阅人想借的书已被别人借走,图书管理员将给这本书设置一个预约,以便书归还时把书留给预约的借阅人(输入“H=”加书号)。 试用有穷状态机说明上述的图书流通系统。 4-5 试用Petri网说明第4题所述图书馆中一本书的循环过程。在规格说明中应该包括操作H、C及R。 4-6 试用Z语言对第4题所述图书馆图书流通系统做一个完整的规格说明。,1、有时候读书是一种巧妙地避开思考的方法。20.

13、8.2820.8.28Friday, August 28, 2020 2、阅读一切好书如同和过去最杰出的人谈话。03:12:2203:12:2203:128/28/2020 3:12:22 AM 3、越是没有本领的就越加自命不凡。20.8.2803:12:2203:12Aug-2028-Aug-20 4、越是无能的人,越喜欢挑剔别人的错儿。03:12:2203:12:2203:12Friday, August 28, 2020 5、知人者智,自知者明。胜人者有力,自胜者强。20.8.2820.8.2803:12:2203:12:22August 28, 2020 6、意志坚强的人能把世界放在手

14、中像泥块一样任意揉捏。2020年8月28日星期五上午3时12分22秒03:12:2220.8.28 7、最具挑战性的挑战莫过于提升自我。2020年8月上午3时12分20.8.2803:12August 28, 2020 8、业余生活要有意义,不要越轨。2020年8月28日星期五3时12分22秒03:12:2228 August 2020 9、一个人即使已登上顶峰,也仍要自强不息。上午3时12分22秒上午3时12分03:12:2220.8.28 10、你要做多大的事情,就该承受多大的压力。8/28/2020 3:12:22 AM03:12:222020/8/28 11、自己要先看得起自己,别人才会看得起你。8/28/2020 3:12 AM8/28/2020 3:12 AM20.8.2820.8.28 12、这一秒不放弃,下一秒就会有希望。28-Aug-2028 August 202020.8.28 13、无论才能知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。Friday, August 28, 202028-Aug-2020.8.28 14、我只是自己不放过自己而已,现在我不会再逼自己眷恋了。20.8.2803:12:2228 August 202003:12,谢谢大家,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号