软件工程第4章(不讲).ppt

上传人:牧羊曲112 文档编号:6610897 上传时间:2023-11-17 格式:PPT 页数:40 大小:278KB
返回 下载 相关 举报
软件工程第4章(不讲).ppt_第1页
第1页 / 共40页
软件工程第4章(不讲).ppt_第2页
第2页 / 共40页
软件工程第4章(不讲).ppt_第3页
第3页 / 共40页
软件工程第4章(不讲).ppt_第4页
第4页 / 共40页
软件工程第4章(不讲).ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《软件工程第4章(不讲).ppt》由会员分享,可在线阅读,更多相关《软件工程第4章(不讲).ppt(40页珍藏版)》请在三一办公上搜索。

1、第4章 形式化说明技术,4.1 概述4.2 有穷状态机4.3 Petri网4.4 Z语言4.5 小结,2,形式化方法,是描述系统性质的基于数学的技术,有坚实的数学基础。按照形式化的程度,划分成非形式化、半形式化和形式化3类。用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或实体-联系图建立模型,是典型的半形式化方法。,3,4.1.1 非形式化方法的缺点,自然语言书写的规格说明书,可能存在矛盾二义性含糊性不完整性抽象层次混乱,4,4.1.2 形式化方法的优点,简洁准确,是理想的建模工具验证需求,以发现存在的矛盾和不完整性平滑过渡,也可以用于设计提供了高层确认的手段证明设计符合规格说明

2、证明程序代码正确地实现了设计结果,5,4.1.3 应用形式化方法的准则,(1)应该选用适当的表示方法。(2)应该形式化,但不要过分形式化。(3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。(5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用。,6,4.2 有穷状态机,例如,当有多个申请占用CPU运行的进程时,有关CPU分配的进程的状态迁移。,7,进程的状态迁移,8,保险箱的状态转换图,例:一个保险箱上装了一个复合锁,锁有三个位置,分别标记为1、2、3,转盘可向左(L)或向右(R

3、)转动。这样,在任意时刻转盘都有6种可能的运动,即1L、1R、2L、2R、3L和3R。保险箱的组合密码是1L、3R、2L,转盘的任何其他运动都将引起报警。,9,保险箱的状态转换图,10,有穷状态机的状态转换表,11,有穷状态机的表示,包括5个部分:状态集J、输入集K、由当前状态和当前输入确定下一个状态(次态)的转换函数T、初始态S和终态集F。保险箱的有穷状态机:状态集J:保险箱锁定,A,B,保险箱解锁,报警。输入集K:1L,1R,2L,2R,3L,3R。转换函数T:如表4.1所示。初始态S:保险箱锁定。终态集F:保险箱解锁,报警。,12,有穷状态机5元组表示,表示为一个5元组(J,K,T,S,

4、F),其中:J是一个有穷的非空状态集;K是一个有穷的非空输入集;T是一个从(J-F)K到J的转换函数;SJ,是一个初始状态;FJ,是终态集。,13,状态转换表示形式,状态的每个转换都具有下面的形式:当前状态菜单+事件所选择的项下个状态。加入谓词集P把有穷状态机扩展为一个6元组,其中每个谓词都是系统全局状态Y的函数。转换函数T则是一个从(J-F)KP到J的函数。转换规则形式如下:当前状态菜单+事件所选择的项+谓词下个状态。,14,电梯系统的需求,自然语言描述的对电梯系统的需求:在一幢m层的大厦中需要一套控制n部电梯的产品,要求这n部电梯按照约束条件C1,C2和C3在楼层间移动。C1:每部电梯内有

5、m个按钮,每个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,到达按钮指定的楼层时指示灯熄灭。C2:除了大厦的最低层和最高层之外,每层楼都有两个按钮分别请求电梯上行和下行。这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。C3:当对电梯没有请求时,它关门并停在当前楼层。,15,电梯系统的需求,使用一个扩展的有穷状态机对本产品进行规格说明:这个问题中有两个按钮集。n部电梯中的每一部都有m个按钮,一个按钮对应一个楼层。因为这mn个按钮都在电梯中,所以称它们为电梯按钮。每层楼有两个按钮,一个请求向上,另一个请求向下,这些按钮称为楼层按钮。

6、,16,电梯系统的需求,电梯按钮的状态转换图如图4.2所示。令EB(e,f)表示按下电梯e内的按钮并请求到f层去。EB(e,f)有两个状态,分别是按钮发光(打开)和不发光(关闭)。更精确地说,状态是:EBON(e,f):电梯按钮(e,f)打开EBOFF(e,f):电梯按钮(e,f)关闭如果电梯按钮(e,f)发光且电梯到达f层,该按钮将熄灭。相反如果按钮熄灭,则按下它时,按钮将发光。上述描述中包含了两个事件,它们分别是:EBP(e,f):电梯按钮(e,f)被按下EAF(e,f):电梯e到达f层,17,电梯按钮的状态转换图,18,电梯按钮的规则描述,定义一个谓词V(e,f),它的含义如下:V(e,

7、f):电梯e停在f层如果电梯按钮(e,f)处于关闭状态当前状态,而且电梯按钮(e,f)被按下事件,而且电梯e不在f层谓词,则该电梯按钮打开发光下个状态。该状态转换规则的形式化描述如下:EBOFF(e,f)+EBP(e,f)+not V(e,f)EBON(e,f)反之,如果电梯到达f层,而且电梯按钮是打开的,于是它就会熄灭。该转换规则可以形式化地表示为:EBON(e,f)+EAF(e,f)EBOFF(e,f),19,楼层按钮的状态描述,令楼层按钮FB(d,f)表示f层请求电梯向d方向运动的按钮楼层按钮的状态如下:FBON(d,f):楼层按钮(d,f)打开FBOFF(d,f):楼层按钮(d,f)关

8、闭,20,楼层按钮的规则描述,如果楼层按钮已经打开,而且一部电梯到达f层,则按钮关闭。反之,如果楼层按钮原来是关闭的,被按下后该按钮将打开。该规则包含了以下两个事件:FBP(d,f):楼层按钮(d,f)被按下EAF(1n,f):电梯1或或n到达f层其中1n表示或为1或为2或为n。,21,楼层按钮状态转换图,22,楼层按钮的规则描述,定义一个谓词(是一个状态):谓词S(d,e,f):电梯e停在f层并且移动方向由d确定为向上(d=U)或向下(d=D)或待定(d=N)。使用谓词S(d,e,f),形式化转换规则为:FBOFF(d,f)+FBP(d,f)+not S(d,1n,f)FBON(d,f)FB

9、ON(d,f)+EAF(1n,f)+S(d,1n,f)FBOFF(d,f)其中,d=UorD,23,楼层按钮的规则描述,如果在f层请求电梯向d方向运动的楼层按钮处于关闭状态,现在该按钮被按下,并且当时没有正停在f层准备向d方向移动的电梯,则该楼层按钮打开。反之,如果楼层按钮已经打开,且至少有一部电梯到达f层,该部电梯将朝d方向运动,则按钮将关闭。电梯按钮状态转换规则时定义的谓词V(e,f),可以用谓词S(d,e,f)重新定义:V(e,f)=S(U,e,f)or S(D,e,f)or S(N,e,f),24,电梯的状态,定义电梯的3个状态:M(d,e,f):电梯e正沿d方向移动,即将到达的是第f

10、层S(d,e,f):电梯e停在f层,将朝d方向移动(尚未关门)W(e,f):电梯e在f层等待(已关门)3个可触发状态发生改变的事件:DC(e,f):电梯e在楼层f关上门ST(e,f):电梯e靠近f层时触发传感器,电梯控制器决定在当前楼层电梯是否停下RL:电梯按钮或楼层按钮被按下进入打开状态,登录需求,25,电梯的状态转换图,图4.4 电梯的状态转换图,26,电梯系统的需求,电梯的状态转换规则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层准备向上移动,且门已经关

11、闭,则电梯将向上一楼层移动。第二条和第三条规则,分别对应于电梯即将下降或者没有待处理的请求的情况。,27,4.2.3 评价,规格说明描述格式简单:当前状态+事件+谓词 下个状态易于书写、验证,易于转变成设计或代码维护可以通过修改规格说明来实现比数据流图技术更精确三元组(即状态、事件、谓词)的数量随规模迅速增长没有处理定时需求,28,4.3 Petri网,用于确定并发系统中隐含的定时问题Petri网包含4种元素,四元组C=(P,T,I,O)一组位置PP1,P2,P3,P4一组转换Tt1,t2输入函数I:I(t1)=P2,P4、I(t2)=P2输出函数O:O(t1)=P1、O(t2)=P3,P3,

12、29,Petri网的权标,在Petri网中权标(token)的分配权标可以用向量(1,2,0,1)表示当每个输入位置所拥有的权标数大于等于从该位置到转换的线数时,就允许转换Petri网中权标总数不是固定的带有标记的Petri网成为一个五元组(P,T,I,O,M),30,Petri网的转换,31,32,33,处理两个进程的同步问题,34,35,含禁止线的Petri网,禁止线是用一个小圆圈而不是用箭头标记的输入线。通常,当每个输入线上至少有一个权标,而禁止线上没有权标的时候,相应的转换才是允许的。,36,Petri网表示的电梯系统规格说明,每个楼层用一个位置Ff代表(1fm)电梯用一个权标代表在位

13、置Ff上有权标,表示在楼层f上有电梯1.电梯按钮的行为第一条约束C1:每部电梯有m个按钮,每层对应一个按钮。当按下一个按钮时该按钮指示灯亮,指示电梯移往相应的楼层。当电梯到达指定的楼层时,按钮将熄灭。,37,Petri网表示的电梯按钮,用位置EBf表示楼层f的电梯按钮(1fm)若电梯内楼层f的按钮被按下,则在EBf上有一个权标电梯按钮只有在第一次被按下时才会由暗变亮,以后再按它则只会被忽略。,38,Petri网表示的电梯按钮,假设电梯由g层驶向f层,位置Fg上有一个权标由于每条输入线上各有一个权标,转换“电梯在运行”被激发,从而EBf和Fg上的权标被移走,按钮EBf被关闭,在位置Ff上出现一个

14、新权标,即转换的激发使电梯由g层驶到f层。,39,Petri网表示的楼层按钮,2.楼层按钮的行为第二条约束C2:除了第一层与顶层之外,每个楼层都有两个按钮,一个要求电梯上行,另一个要求电梯下行。这些按钮在按下时发亮,当电梯到达该层并将向指定方向移动时,相应的按钮才会熄灭。用位置FBfu和FBfd表示楼层按钮,分别代表f楼层请求电梯上行和下行的按钮。底层的按钮为FB1u,最高层的按钮为FBmd,中间每一层有两个按钮FBfu和FBfd(1fm)。,40,Petri网表示楼层按钮,电梯由g层驶向f层如果两个按钮都亮了,则只有一个按钮熄灭第三条约束C3:当电梯没有收到请求时,它将停留在当前楼层并关门。(FBfu和FBfd上无权标),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号