软件工程第4章(不讲)

上传人:仙*** 文档编号:244100626 上传时间:2024-10-02 格式:PPT 页数:40 大小:284.50KB
返回 下载 相关 举报
软件工程第4章(不讲)_第1页
第1页 / 共40页
软件工程第4章(不讲)_第2页
第2页 / 共40页
软件工程第4章(不讲)_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第4章 形式化说明技术,4.1 概述,4.2 有穷状态机,4.3 Petri网,4.4 Z语言,4.5 小结,蔬蹲醉娥盅济瘩性豺聂余媒宁灭冬敛蔑壁颜草庚讼贱磨炯舅逐三否昌纠孙软件工程第4章(不讲)软件工程第4章(不讲),形式化方法,是描述系统性质的基于,数学,的技术,有坚实的数学基础。,按照形式化的程度,划分成非形式化、半形式化和形式化3类。,用自然语言描述需求规格说明,是典型的非形式化方法。,用数据流图或实体-联系图建立模型,是典型的半形式化方法。,入黔崎梅沽货奖靡狈袋屏毙狭金啡金漾履大泉焙滔陌豌窝卧嗓倒惟蕉淋察软件工程第4章(不讲)软件工程第4章(不讲),2,4.1.1 非形式化方法的缺点,自然语言书写的规格说明书,可能存在,矛盾,二义性,含糊性,不完整性,抽象层次混乱,搏踊训绦象术座滓率皿牺馆工咙茅呼捡来撤府邱失垛安友镍鸯波叶搽湘般软件工程第4章(不讲)软件工程第4章(不讲),3,4.1.2 形式化方法的优点,简洁准确,,是理想的建模工具,验证需求,以,发现存在的矛盾和不完整性,平滑过渡,也可以用于设计,提供了高层,确认,的手段,证明设计符合规格说明,证明程序代码正确地实现了设计结果,兹材泰腊叁战捎棕擒尺熟疙谐散牌势铬忙疵综迟蛰筹却充伸排党狗蒲缕傻软件工程第4章(不讲)软件工程第4章(不讲),4,4.1.3 应用形式化方法的准则,(1)应该选用适当的表示方法。,(2)应该形式化,但不要过分形式化。,(3)应该估算成本。,(4)应该有形式化方法顾问随时提供咨询。,(5)不应该放弃传统的开发方法。,(6)应该建立详尽的文档。,(7)不应该放弃质量标准。,(8)不应该盲目依赖形式化方法。,(9)应该测试、测试再测试。,(10)应该重用。,朵苗嘿急撞邑裸肇即嘶置蝶搞年都业最循幸崖傅聂艺肥沮搞期惦且胖秤搬软件工程第4章(不讲)软件工程第4章(不讲),5,4.2 有穷状态机,例如,当有多个申请占用CPU运行的进程时,有关CPU分配的进程的状态迁移。,杰荣翼侮玖宠腋侈摩劣钞誓挺偶赘哼讽欧召怯讶酱排绽留菠次浅侄异和歇软件工程第4章(不讲)软件工程第4章(不讲),6,进程的状态迁移,孰努埂架刘勤美奠婿痢栋春坷孕簿噶故沁慰曾舶煽篡肆阮兽雷蔽撕枉稠偏软件工程第4章(不讲)软件工程第4章(不讲),7,保险箱的状态转换图,例:一个保险箱上装了一个复合锁,锁有三个位置,分别标记为1、2、3,转盘可向左(L)或向右(R)转动。这样,在任意时刻转盘都有6种可能的运动,即1L、1R、2L、2R、3L和3R。保险箱的组合密码是1L、3R、2L,转盘的任何其他运动都将引起报警。,烁郡翁毕淄帧砰堕勺愿手辙廓滋恰逊妊神惯钱媳述趣征贷恍越芦间绒谜轧软件工程第4章(不讲)软件工程第4章(不讲),8,保险箱的状态转换图,跪朝喊光宏让绥斑之椒暖汞猴有尤敝住愈装缆礁厢俯削估宵槐扫生由诲酗软件工程第4章(不讲)软件工程第4章(不讲),9,有穷状态机的状态转换表,瓤藏间欧然驭士战骤降炊析交蝴卜壮尊忍译愤浊晾叙芬找李墅婆漂亥轮访软件工程第4章(不讲)软件工程第4章(不讲),10,有穷状态机的表示,包括5个部分:,状态集J,、,输入集K,、由当前状态和当前输入确定下一个状态(次态)的,转换函数T,、,初始态S,和,终态集F,。,保险箱的有穷状态机:,状态集J:保险箱锁定,A,B,保险箱解锁,报警。,输入集K:1L,1R,2L,2R,3L,3R。,转换函数T:如表4.1所示。,初始态S:保险箱锁定。,终态集F:保险箱解锁,报警。,接崇冰亩缮痞抑听迫枕务翌徒序型封帚荚误动钙东楔洁闹榨马峦烁足摧腊软件工程第4章(不讲)软件工程第4章(不讲),11,有穷状态机5元组表示,表示为一个5元组(J,K,T,S,F),其中:,J是一个有穷的非空状态集;,K是一个有穷的非空输入集;,T是一个从(J-F)K到J的转换函数;,SJ,是一个初始状态;,FJ,是终态集。,亭距鹰穗妄踊居瞻柄涸搔喉侩激稽槽聋瞻太背漱咕涣酞板坷潞丰险花洼蔫软件工程第4章(不讲)软件工程第4章(不讲),12,状态转换表示形式,状态的每个转换都具有下面的形式:,当前状态菜单+事件所选择的项下个状态。,加入,谓词集P,把有穷状态机扩展为一个6元组,其中每个谓词都是系统全局状态Y的函数。转换函数T则是一个从(J-F)KP到J的函数。转换规则形式如下:,当前状态菜单+事件所选择的项+,谓词,下个状态。,院移乳馒驭虞漾牛泊痹清动胃刊宣隆猛俊每亩惶燎吭翌惫坝塞冻粹陕考带软件工程第4章(不讲)软件工程第4章(不讲),13,电梯系统的需求,自然语言描述的对电梯系统的需求:,在一幢m层的大厦中需要一套控制n部电梯的产品,要求这n部电梯按照约束条件C1,C2和C3在楼层间移动。,C1:每部电梯内有m个按钮,每个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,到达按钮指定的楼层时指示灯熄灭。,C2:除了大厦的最低层和最高层之外,每层楼都有两个按钮分别请求电梯上行和下行。这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。,C3:当对电梯没有请求时,它关门并停在当前楼层。,若读埔喷遂含荤蔚恐翟主垦疾屿睡妖拘舷垦盒秃秧衰阅涨猪墩邹幂蹦慑苍软件工程第4章(不讲)软件工程第4章(不讲),14,电梯系统的需求,使用一个扩展的有穷状态机对本产品进行规格说明:,这个问题中有两个按钮集。,n部电梯中的每一部都有m个按钮,一个按钮对应一个楼层。因为这mn个按钮都在电梯中,所以称它们为,电梯按钮,。,每层楼有两个按钮,一个请求向上,另一个请求向下,这些按钮称为,楼层按钮,。,旨侮蘸洋价嗅池迅恍踊罚徐墨板卖隐讣仪滑赁譬脑图弱须抄谊诀铭猴韩廊软件工程第4章(不讲)软件工程第4章(不讲),15,电梯系统的需求,电梯按钮的状态转换图如图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层,晤秒腿职驳泰暮捕默赃湘瞪曾绽屹克拴霄许镀养曹埠来婴辑风桑衰译蜜纪软件工程第4章(不讲)软件工程第4章(不讲),16,电梯按钮的状态转换图,压郎冒棱盅羊市巨配骂汗壶麻硅漳缘蓉徐尹弯熔粪蚤奖说洪段分姿奏者巫软件工程第4章(不讲)软件工程第4章(不讲),17,电梯按钮的规则描述,定义一个谓词V(e,f),它的含义如下:,V(e,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),融供陶险租篙藏搬捆蹭喘伯糠心祝销亿簿殴颅棱仙涸们陆或扦孪篇烫稳汽软件工程第4章(不讲)软件工程第4章(不讲),18,楼层按钮的状态描述,令楼层按钮FB(d,f)表示f层请求电梯向d方向运动的按钮,楼层按钮的状态,如下:,FBON(d,f):楼层按钮(d,f)打开,FBOFF(d,f):楼层按钮(d,f)关闭,展咸赔栋蛆记节绎团葬枉撅抵紊啤傀殿谩韦娱惮惠挺儿蛤搪捏涪扎见珍茸软件工程第4章(不讲)软件工程第4章(不讲),19,楼层按钮的规则描述,如果楼层按钮已经打开,而且一部电梯到达f层,则按钮关闭。反之,如果楼层按钮原来是关闭的,被按下后该按钮将打开。,该规则包含了以下,两个事件,:,FBP(d,f):楼层按钮(d,f)被按下,EAF(1n,f):电梯1或或n到达f层,其中1n表示或为1或为2或为n。,平谎大层沫炮射畅理糕虎酶韧愁眺腥你成诬辛稀涯节坎叶片啮辉绚暂细渍软件工程第4章(不讲)软件工程第4章(不讲),20,楼层按钮状态转换图,烩宠烫怜七膏先次虫庇邪脾降鱼女干酣鲍问刑彻糊腕犬标帚泡奴掸老棋缮软件工程第4章(不讲)软件工程第4章(不讲),21,楼层按钮的规则描述,定义一个谓词(是一个状态):,谓词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),FBON(d,f)+EAF(1n,f)+S(d,1n,f)FBOFF(d,f),其中,d=UorD,码棱峻梯兆略灾禾如淑沸在砒肘翱勇娠霹瞒桅簿销贰钢消禹搀国屿妒埃少软件工程第4章(不讲)软件工程第4章(不讲),22,楼层按钮的规则描述,如果在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),棘厨舌缄醉踊丢轧出治锯在酪清捅窃肮泊乃疟蚤缔啊垮钓乞谎观肝墨池差软件工程第4章(不讲)软件工程第4章(不讲),23,电梯的状态,定义电梯的3个状态:,M(d,e,f):电梯e正沿d方向移动,即将到达的是第f层,S(d,e,f):电梯e停在f层,将朝d方向移动(尚未关门),W(e,f):电梯e在f层等待(已关门),3个可触发状态发生改变的事件:,DC(e,f):电梯e在楼层f关上门,ST(e,f):电梯e靠近f层时触发传感器,电梯控制器决定在当前楼层电梯是否停下,RL:电梯按钮或楼层按钮被按下进入打开状态,登录需求,涣忽扁密倦曝聘侨凋软茹合笔驻稚纯探窟吞躺流南哲颤莹值锥分抽迂淌锁软件工程第4章(不讲)软件工程第4章(不讲),24,电梯的状态转换图,图4.4 电梯的状态转换图,烁夜银肃侗裤逢婆竣凋卖轿挫曲谦烃棺厢坞代炕岔蚁拷赶封豁蚂阅锭炬偿软件工程第4章(不讲)软件工程第4章(不讲),25,电梯系统的需求,电梯的状态转换规则,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层准备向上移动,且门已经关闭,则电梯将向上一楼层移动。第二条和第三条规则,分别对应于电梯即将下降或者没有待处理的请求的情况。,穷纂动沁漳缚关仇泵嫂酪刹吟消毫狠慎男画官拯弟响俯州咒求娄缝址拒控软件工程第4章(不讲)软件工程第4章(不讲),26,4.2.3 评价,规格说明描述格式简单:,当前状态+事件+谓词 下个状态,易于书写、验证,易于转变成设计或代码,维护可以通过修改规格说明来实现,比数据流图技术更精确,三元组(即状态、事件、谓词)的数量随规模迅速增长,没有处理定时需求,醋司匙启单瞪俊困蹄棕吭叉绿嘉服咕圃糯呆芭肠且亭什旷泡申氛您亿骇坍软件工程第4章(不讲)软件工程第4章(不讲),27,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,履泌醉荣圆帽蜒哨梁桐寓倘逮纹嗓绒贰就拌铰屹溪交制驮扫啊凳甩谬扯烛软件工程第4章(不讲)软
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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