《形式化说明技术》PPT课件.ppt

上传人:tia****nde 文档编号:11507779 上传时间:2020-04-26 格式:PPT 页数:33 大小:736KB
返回 下载 相关 举报
《形式化说明技术》PPT课件.ppt_第1页
第1页 / 共33页
《形式化说明技术》PPT课件.ppt_第2页
第2页 / 共33页
《形式化说明技术》PPT课件.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
第4章形式化说明技术,什么是形式化说明技术,从广义上讲,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动。狭义的讲,形式化方法是运用形式化语言,进行形式化的规格描述、模型推理和验证的方法。就形式化建模而言,形式化表示必须包含一组定义其语法语义的形式化规则。这些规则可用于分析给定的表达式是否符合语法规定,或证明该表达式具有某种性质。,形式化说明技术,用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或ER图建立模型,是典型的半形式化方法。所谓形式化方法,就是基于数学的技术来描述系统的性质的方法。非形式化方法的缺点形式化方法的优点,应用形式化方法的准则,(1)应该选用适当的表示方法。(2)应该形式化,但不要过分形式化。(3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。(5)不应该放弃传统的开发方法。把形式化方法和结构化方法或面向对象方法集成起来是可能的,而且由于取长补短往往能获得很好的效果。(6)应该建立详尽的文档。建议使用自然语言注释形式化的规格说明书,以帮助用户和维护人员理解系统。(9)应该测试、测试再测试。(10)应该重用。即使采用了形式化方法,软件重用仍然是降低软件成本和提高软件质量的惟一合理的方法。而且用形式化方法说明的软件构件具有清晰定义的功能和接口,使得它们有更好的可重用性。,有穷状态机,例子:保险箱的复合锁,锁有三个位置,分别标记为1,2,3,转盘可向左(L)或向右(R)转动。任意时刻的6种可能的运动:1R,1L,2R,2L,3R,3L假设组合密码为:1L,3R,2L,除了这个次序的任意转动都将导致报警。,保险箱锁定,A,B,保险箱解锁,报警,1L,转盘的任何其他移动,3R,2L,转盘的任何其他移动,转盘的任何其他移动,初始态,终态,终态,状态集J:保险箱锁定,A,B,保险箱解锁,报警。输入集:1L,1R,2L,2R,3L,3R转换函数:T初始态S:保险箱锁定。终态集:保险箱解锁,报警,一个有穷状态机可以表示为一个5元组J,K,T,S,FJ是一个有穷的非空状态集K是一个有穷的非空输入集T是一个从(J-F)*K到J的转换函数SJ,是一个初始状态FJ,是终态集例如:菜单一个菜单的显示和一个状态相对应键盘输入或鼠标点击对应于一个事件当前状态菜单+事件所选择的项+谓词=下个状态,电梯的例子,电梯的约束条件:C1:每部电梯有m个按钮,每个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,到达按钮指定的楼层时指示灯灭。C2:除了楼的最低层和最高层外,每层楼有两个按钮分别指示是上楼还是下楼。这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。C3:当对电梯没有请求时,它关门并停在当前楼层。,电梯按钮,EB(e,f):表示按下电梯e内的按钮并请求到f层去EBP(e,f):电梯按钮(e,f)被按下EAF(e,f):电梯e到达f层谓词:V(e,f):电梯停在f层如果电梯按钮(e,f)处于关闭状态当前状态,而且电梯(e,f)被按下事件,而且电梯e不在f层谓词,则该电梯按钮打开发光下个状态。状态转换规则的形式化描述如下:EBOFF(e,f)+EBP(e,f)+notV(e,f)=EBON(e,f)EBON(e,f)+EAF(e,f)=EBOFF(e,f),EBOFF(e,f),EBON(e,f),EBP(e,f),EAF(e,f),楼层按钮,FB(d,f)表示f层请求电梯向d方向运动的按钮FBON(d,f):楼层按钮(d,f)打开FBOFF(d,f):楼层按钮(d,f)关闭FBP(d,f):楼层按钮(d,f)被按下EAF(1n,f):电梯1或或n到达f层S(d,e,f):电梯e停在f层并且移动方向由d确定为向上(d=U)或向下(d=D)或待定(d=N)状态转换规则:FBOFF(d,f)+FBP(d,f)+notS(d,1n,f)=FBON(d,f)FBON(d,f)+EAF(1n,f)+S(d,1n,f)=FBOFF(d,f),FBOFF(d,f),FBON(d,f),FBP(d,f),EAF(1n,f),V(e,f)=S(U,e,f)orS(D,e,f)orS(N,e,f)电梯的三个状态:M(d,e,f):电梯e正沿d方向移动,即将到达的是第f层S(d,e,f):电梯e停在f层,将朝d方向移动(尚未关门)W(e,f):电梯e在f层等待(已关门)可触发状态发生改变的事件DC(e,f):电梯e在楼层f关上门ST(e,f):电梯e靠近f层时触发传感器,电梯控制器决定在当前楼层电梯是否停下RL:电梯按钮或楼层按钮被按下进入打开状态,登录需求电梯的状态转换规则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),S(U,e,f),S(N,e,f),M(U,e,f+1),S(D,e,f),M(D,e,f),M(U,e,f),M(D,e,f-1),W(e,f),DC(e,f),RL,RL,ST(e,f),RL,RL,RL,DC(e,f),DC(e,f),ST(e,f),Petri网,Petri网是用于形式化说明定时问题的一种技术一组位置P为P1,P2,P3,P4,在图中用圆圈代表位置。一组转换T为t1,t2,在图中用短直线表示转换。两个用于转换的输入函数,用由位置指向转换的箭头表示,它们是:I(t1)=P2,P4I(t2)=P2两个用于转换的输出函数,用由转换指向位置的箭头表示,它们是:O(t1)=P1O(t2)=P3,P3,Petri网包含4种元素:一组位置P、一组转换T、输入函数I以及输出函数O。Petri网结构,是一个四元组C=(P,T,I,O)P=P1,Pn是一个有穷位置集T=t1,tm是一个有穷转换集I:T-P为输入函数,是由转换到位置组的映射O:T-P为输出函数,是由转换到位置组的映射,标记:(1,2,0,1),标记:(2,1,0,0),标记:(2,0,2,0),权标,Petri网的标记M,是由一组位置P到一组非负整数的映射:M:P-0,1,2所以,Petri网成为一个五元组(P,T,I,O,M),对Petri网的扩充:加入禁止线。禁止线是用一个圆圈而不是用箭头标记的输入线。通常。当每个输入线上至少有一个权标,而禁止线上没有权标的时候,相应的转换才是允许的。,C1:每部电梯有m个按钮,每层对应一个按钮。当按下一个按钮时该按钮指示灯亮,指示电梯移往相应的楼层。当电梯到达指定的楼层时,按钮熄灭。电梯中楼层f的按钮,在Petri网中用位置EBf表示。(1fm)。在EBf上有一个权标,表示电梯内楼层f的按钮被按下了。,Fg,电梯按钮只有在第一次被按下时才会由暗变亮,以后再按它会被忽略。假设按钮没有亮,在位置Ebf上没有权标,那么在存在禁止线的情况下,转换“EBf”是允许发生的。按下按钮之后,则转换被激发并在EBf上放置了一个权标,以后无论再按下多少次按钮,禁止线与现有权标的组合都决定了转换“EBf被按下”不能再被激发了,因此,位置EBf上的权标数不会多于1,图4.11Petri网表示楼层按钮,4Z语言简介,用Z语言描述的、最简单的形式化规格说明含有下述4个部分:给定的集合、数据类型及常数。状态定义。初始状态。操作。,1.给定的集合一个Z规格说明从一系列给定的初始化集合开始。所谓初始化集合就是不需要详细定义的集合,这种集合用带方括号的形式表示。对于电梯问题,给定的初始化集合称为Button,即所有按钮的集合,因此,Z规格说明开始于:Button2.状态定义一个Z规格说明由若干个“格(schema)”组成,每个格含有一组变量说明和一系列限定变量取值范围的谓词。例如,Z格S的格式如图4.12所示。,在电梯问题中,Button有4个子集,floor_buttons(楼层按钮的集合)elevator_buttons(电梯按钮的集合)buttons(电梯问题中所有按钮的集合)pushed(所有被按的按钮的集合,即所有处于打开状态的按钮的集合)。,3.初始状态抽象的初始状态是指系统第一次开启时的状态。对于电梯问题来说,抽象的初始状态为:Button_InitButton_Statepushed=上式表示,当系统首次开启时pushed集为空,即所有按钮都处于关闭状态。4.操作如果一个原来处于关闭状态的按钮被按下,则该按钮开启,这个按钮就被添加到pushed集中。,Button_Statebutton?:button,(button?buttons)(button?pushed)(pushed=pushedbutton?)(button?pushed)(pushed=pushed),Button_Statebutton?:button,(button?buttons)(button?pushed)(pushed=pushedbutton?)(button?pushed)(pushed=pushed),Push_button,Floor_Arrival,Z语言实例:停车场管理系统,基本数据类型定义“停车提示”是一个基本数据类型的名字“停好”和“停车场满”是该类型的数据可能的取值停车提示=停好|停车场满全局变量声明在Z语言中,N和Z属于基本数据集合,分别表示正整数集合和整数集合。停车场容量:Z/*变量声明*/停车场容量0/*变量约束*/,状态定义每个系统有唯一的状态定义,可以为状态命名。本例中为系统状态命名为“停车场状态”。状态定义中首先声明一或多个表示系统状态的变量,这里的变量名为“停车数量”,类型为整数。该变量的约束条件为取值大于等于0,小于等于最大停车数量。停车场状态停车数量:Z/*状态变量声明*/停车数量0停车数量停车场容量,初始化定义系统状态变量的初始值。系统的初始化定义是唯一的。,操作定义每个系统可以定义若干个操作。Z语言中操作的定义是基于状态的,而不是基于过程的。该操作如何改变了系统的状态变量的值?该操作有哪些输入变量?有哪些输出变量?当一个操作改变了某个系统状态变量x时,在操作定义的第一行写出状态变化声明x。当一个操作未改变任何系统状态变量时,即可以在操作定义第一行写出以下状态声明状态变量(可省略)。,操作定义(续),操作定义也可以采用以下形式进入停车场正常停车停车场满表示:操作“进入停车场”分为“正常停车”和“停车场满”两种可能情况,具体执行时选择哪种情况,由环境满足哪种操作的约束条件来决定。,评价,Z语言优势:(1)可以比较容易地发现用Z写的规格说明的错误,特别是在自己审查规格说明,及根据形式化的规格说明来审查设计与代码时,情况更是如此。(2)用Z写规格说明时,要求作者十分精确地使用Z说明符。由于对精确性的要求很高,从而和非形式化规格说明相比,减少了模糊性、不一致性和遗漏。(3)Z是一种形式化语言,在需要时开发者可以严格地验证规格说明的正确性。(4)虽然完全学会Z语言相当困难,但是,经验表明,只学过中学数学的软件开发人员仍然可以只用比较短的时间就学会编写Z规格说明,当然,这些人还没有能力证明规格说明的结果是否正确。(5)使用Z语言可以降低软件开发费用。虽然用Z写规格说明所需用的时间比使用非形式化技术要多,但开发过程所需要的总时间却减少了。,(6)虽然用户无法理解用Z写的规格说明,但是,可以依据Z规格说明用自然语言重写规格说明。经验证明,这样得到的自然语言规格说明,比直接用自然语言写出的非形式化规格说明更清楚、更正确。使用形式化规格说明是全球的总趋势,过去,主要是欧洲习惯于使用形式化规格说明技术,现在越来越多的美国公司也开始使用形式化规格说明技术。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!