- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
一个Z规格说明由若干个“格(schema)”组成,每个格含有一组变量说明和一系列限定变量取值范围的谓词。例如,Z格S的格式如图4.12所示。状态定义给定的集合一个Z规格说明从一系列给定的初始化集合开始。所谓初始化集合就是不需要详细定义的集合,这种集合用带方括号的形式表示。对于电梯问题,给定的初始化集合称为Button,即所有按钮的集合,因此,Z规格说明开始于:〔Button〕在电梯问题中,Button有4个子集,floor_buttons(楼层按钮的集合)elevator_buttons(电梯按钮的集合)buttons(电梯问题中所有按钮的集合)pushed(所有被按的按钮的集合,即所有处于打开状态的按钮的集合)。如果一个原来处于关闭状态的按钮被按下,则该按钮开启,这个按钮就被添加到pushed集中。操作初始状态抽象的初始状态是指系统第一次开启时的状态。对于电梯问题来说,抽象的初始状态为:Button_Init〔Button_State|pushed=Φ〕上式表示,当系统首次开启时pushed集为空,即所有按钮都处于关闭状态。第4章形式化说明技术什么是形式化说明技术从广义上讲,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动。狭义的讲,形式化方法是运用形式化语言,进行形式化的规格描述、模型推理和验证的方法。就形式化建模而言,形式化表示必须包含一组定义其语法语义的形式化规则。这些规则可用于分析给定的表达式是否符合语法规定,或证明该表达式具有某种性质。321形式化说明技术用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或ER图建立模型,是典型的半形式化方法。所谓形式化方法,就是基于数学的技术来描述系统的性质的方法。非形式化方法的缺点形式化方法的优点(1)应该选用适当的表示方法。(2)应该形式化,但不要过分形式化。(3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。(5)不应该放弃传统的开发方法。把形式化方法和结构化方法或面向对象方法集成起来是可能的,而且由于取长补短往往能获得很好的效果。(6)应该建立详尽的文档。建议使用自然语言注释形式化的规格说明书,以帮助用户和维护人员理解系统。(9)应该测试、测试再测试。(10)应该重用。即使采用了形式化方法,软件重用仍然是降低软件成本和提高软件质量的惟一合理的方法。而且用形式化方法说明的软件构件具有清晰定义的功能和接口,使得它们有更好的可重用性。例子:保险箱的复合锁,锁有三个位置,分别标记为1,2,3,转盘可向左(L)或向右(R)转动。任意时刻的6种可能的运动:1R,1L,2R,2L,3R,3L假设组合密码为:1L,3R,2L,除了这个次序的任意转动都将导致报警。保险箱锁定AB保险箱解锁报警1L转盘的任何其他移动3R2L转盘的任何其他移动转盘的任何其他移动初始态终态终态当前状态次态转盘动作保险箱锁定AB1LA报警报警1R报警报警报警2L报警报警保险箱解锁2R报警报警报警3L报警报警报警3R报警B报警状态集J:{保险箱锁定,A,B,保险箱解锁,报警}。输入集:{1L,1R,2L,2R,3L,3R}转换函数:T初始态S:保险箱锁定。终态集:{保险箱解锁,报警}一个有穷状态机可以表示为一个5元组{J,K,T,S,F}J是一个有穷的非空状态集K是一个有穷的非空输入集T是一个从(J-F)*K到J的转换函数S∈J,是一个初始状态F?J,是终态集例如:菜单一个菜单的显示和一个状态相对应键盘输入或鼠标点击对应于一个事件当前状态[菜单]+事件[所选择的项]+谓词=下个状态电梯的约束条件: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层[谓词],则该电梯按钮打开发
文档评论(0)