版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 形式化说明技术,4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结 习题,压昌花韧佣昌奴亨舒做昂侧洽古魄扒汝垮岔怨者涤帽碘译桐订粗放炕讯晕第4章形式化说明技术第4章形式化说明技术,软件工程使用的方法划分成: 非形式化、半形式化和形式化3类。 非形式化方法:用自然语言描述需求规格说明。 半形式化方法:用数据流图或实体-联系图建立模型。 形式化方法:基于数学的技术来描述系统性质。,季窍访认拼氰熟流眶锰宫佰靴聋沪脊茅撮而嘛诀拖痞少腊奴龙殖键十蛰感第4章形式化说明技术第4章形式化说明技术,1 形式化方法的发展,形式化方法(formal methods)的研究高
2、潮始于 20世纪60年代后期,针对当时所谓“软件危机”,人们提出种种解决方法,归纳起来有两类: 一是采用工程方法来组织、管理软件的开发程; 二是深入探讨程 序和程序开发过程的规律,建立 严密的理论,以其用来指导软件开发实践。 前者导致“软件工程”的出现和发展,后者则推动 了形式化方法的深入研究。,值棺带塑幢歧浑镐疲迷争净羽款悲香残琉蚜壹梯折圣糯吃碾洽盲饮斯膨曲第4章形式化说明技术第4章形式化说明技术,2 形式化方法的定义,用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验 证系统。 如果一个方法有良好
3、的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。,筐穗侥哟恫壹揍瑞怀拖伞郸扒烛授晤猖诡剧毅式膳冻碑斤掷穿幻疼哮溃旁第4章形式化说明技术第4章形式化说明技术,3 形式化方法的研究内容,形式化方法的一个重要研究内容是形式规约(Formal Specification,也称形式规范或形式化描述),它是对程序“做什么”(what to do)的数学描述,是用具有精确语义的形式语言书写的程序功能描述,它是设计和编制程序的出发点,也是验证程序是否正确的依据。,粒埂秒迷饯蚜挎禹款娘嗜帖梭寸左驾惟之郑收救皑胡坐帖谱你印蓟稼随魄第4章形式化说明技术第4章形式化说明技术,4 形式化方法的分类,根据说明
4、目标软件系统的方式,形式化方法可以分为两类: 1)面向模型的形式化方法。面向模型的方法通过构造一个数学模型来说明系统的行为。 2)面向属性的形式化方法。面向属性的方法通过描述目标软件系统的各种属性来间接定义系统行为。,筒羌翔伊尔梅累随蝇阿惧单氟朽苔亿沿建锯更吹涝罐氢侵椭淘病惨搭毡泉第4章形式化说明技术第4章形式化说明技术,根据表达能力,形式化方法可以分为五类:,基于模型的方法:通过明确定义状态和操作来建立一个系统模型。 基于逻辑的方法:用逻辑描述系统预期的性能,包括底层规约、时序和可能性行为。 代数方法:通过将未定义状态下不同的操作行为相联系,给出操作的显式定义。 过程代数方法:通过限制所有容
5、许的可观察的过程间通信来表示系统行为。 基于网络的方法:由于图形化表示法易于理解,而且非专业人员能够使用,因此是一种通用的系统确定表示法。,瞅匡黑静豫援钾杏楷钞浇咏帕别悄摈强撩虹聋冈蛇甚颂陶另惩坞蜘圾且窃第4章形式化说明技术第4章形式化说明技术,用自然语言书写的系统规格说明书:存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。 矛盾:指一组相互冲突的陈述。 二义性:指读者可以用不同方式理解的陈述。 含糊性:系统规格说明书庞大,易出现含糊性。 不完整性:遗漏了客户的一些需求。 抽象层次混乱:是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。,4.1 概述 4.1.1 非形式化方法的缺点
6、,篙鹃驮瑞墟奥狄啡以拈束寡隧培淋楞屋斤心志孵荷崇赁符兰汰谢鲤出傍啦第4章形式化说明技术第4章形式化说明技术,数学特别适合于表示状态,也就是表示“做什么”。 需求规格说明书主要描述应用系统在运行前和运行后的状态,因此,数学更适于描述详细的需求。 没有二义性,容易发现矛盾和不完整性,没有含糊性。 可以在不同的软件工程活动之间平滑地过渡。 功能规格说明与系统设计都用数学表达,易于过渡。 它提供了高层确认的手段。 可以使用数学方法证明: 设计符合规格说明,程序代码正确地实现了设计结果。,4.1.2 形式化方法的优点,货弃按牢蔚碌敲绘袒帚命魔挨瞳眺著扇咨斩硫谋效纠棵什侯阿痪肯拯陆物第4章形式化说明技术第
7、4章形式化说明技术,软件系统的复杂性,仅用少数几个数学公式来描述它很困难。 即使应用了形式化方法,完整性也是难于保证的。(遗漏的一些需求),4.1.2 形式化方法问题,泳徽肃嗡赁辰啃查李片懦杏调虏航渝痰榷围枣卡岁艳徐怎瞳敞肘苗篱缸番第4章形式化说明技术第4章形式化说明技术,(1) 应该选用适当的表示方法。 如果用这种技术描述其不适于描述的概念,则不仅工作量大而且描述方式也很复杂。 (2) 应该形式化,但不要过分形式化。 形式化技术还不适于描述系统的每个方面, 形式化规格说明技术有助于防止含糊和误解,适于说明系统中易出错的或关键的部分。 (3) 应该估算成本。 为了使用形式化方法,通常需要事先进
8、行大量的培训。最好预先估算所需的成本并编入预算。,4.1.3 应用形式化方法的准则,文潜语桌皂烫膜宋崔幻顷绍滚廷僧彭诱巴曹驭悦泛狙诽铲试豁琵旺札滁剃第4章形式化说明技术第4章形式化说明技术,(4) 应该有形式化方法顾问随时提供咨询。 绝大多数软件工程师对形式化方法中使用的数学和逻辑并不很熟悉。 (5) 不应放弃传统的开发方法。(取长补短效果好) (6) 应该建立详尽的文档。 使用自然语言注释形式化的规格说明书,以帮助用户和维护人员理解系统。 (7) 不应该放弃质量标准。 形式化方法并不能保证软件的正确性,在开发过程中仍需实施其他质量保证活动。,河瓢款舷雪方端提赡烈十攒脆彩惶来利蓄味嘴块佐瑶跌瞎
9、建腋帆渗便吐该第4章形式化说明技术第4章形式化说明技术,(8) 不应该盲目依赖形式化方法。 形式化方法并不能保证开发出的软件绝对正确。(9) 应该测试、测试再测试。 形式化方法不能证明系统性能或其他质量指标是否符合需要,因此,软件测试的重要性并没有降低。 (10) 应该重用。 用形式化方法说明的软件构件具有清晰定义的功能和接口,使得它们有更好的可重用性。,她哟婶郧控刁饵协女盛悼桨镶奉泛搐期吼厨减谨撕唇洲钓汾顺孤涉柳拴腑第4章形式化说明技术第4章形式化说明技术,下面通过一个简单例子介绍有穷状态机的基本概念。 一个保险箱上装了一个复合锁,锁有三个位置,分别标记为1、2、3,转盘可向左(L)或向右(
10、R)转动。这样,在任意时刻转盘都有6种可能的运动,即1L、1R、2L、2R、3L和3R。保险箱的组合密码是1L、3R、2L,转盘的任何其他运动都将引起报警。图4.1描绘了保险箱的状态转换情况。,4.2 有穷状态机 4.2.1 概念,循利烩斡狄耪背反祭檄删疤吞琶悼遍罚闹昼氛拆宦痹础散谋公堆碟鬼的李第4章形式化说明技术第4章形式化说明技术,图4.1 保险箱的状态转换图,瞄俊授褐捣踌拜啦居瞳叙脓摇痢哪类镣液丢剑矽炳甭奈钮纶杉稗菇颠犯茶第4章形式化说明技术第4章形式化说明技术,图4.1是一个有穷状态机的状态转换图。状态转换并不一定要用图形方式描述,表4.1(见书68页)的表格形式也可以表达同样的信息。
11、 从上面这个简单例子可以看出,一个有穷状态机包括下述5个部分:状态集J、输入集K、由当前状态和当前输入确定下一个状态(次态)的转换函数T、初始态S和终态集F。对于保险箱的例子,相应的有穷状态机的各部分如下。 状态集J:保险箱锁定,A,B,保险箱解锁,报警。 输入集K:1L,1R,2L,2R,3L,3R。,亚驹席案封今性毙您猛针爱麓彬粥蜒踊盾做嗣背历寨燕很兜巫绚看匙串谎第4章形式化说明技术第4章形式化说明技术,转换函数T:如表4.1所示。 初始态S:保险箱锁定。 终态集F:保险箱解锁,报警。 如果使用更形式化的术语,一个有穷状态机可以表示为一个5元组(J,K,T,S,F),其中: J是一个有穷的
12、非空状态集; K是一个有穷的非空输入集; T是一个从(J-F)K到J的转换函数; SJ,是一个初始状态; FJ,是终态集。,绎忠壳脑韩伶鲸讣韭抢嫩涂卢闺耀乎怎倡房或蹿诌旦式办歌批岸齿埠朵睡第4章形式化说明技术第4章形式化说明技术,有穷状态机的概念在计算机系统中应用得非常广泛。例如,每个菜单驱动的用户界面都是一个有穷状态机的实现。一个菜单的显示和一个状态相对应,键盘输入或用鼠标选择一个图标是使系统进入其他状态的一个事件。状态的每个转换都具有下面的形式: 当前状态菜单+事件所选择的项下个状态。,以烟专触插个狮访六惜韵菌则痹孩唐造胸捍槛税隧桐啤骡写折姑夫偏舱膝第4章形式化说明技术第4章形式化说明技术
13、,为了对一个系统进行规格说明,通常都需要对有穷状态机做一个很有用的扩展,即在前述的5元组中加入第6个组件谓词集P,从而把有穷状态机扩展为一个6元组,其中每个谓词都是系统全局状态Y的函数。转换函数T现在是一个从(J-F)KP到J的函数。现在的转换规则形式如下: 当前状态菜单+事件所选择的项+谓词下个状态。,绊醉贺捶锐惧杏疙饥痴感陆剖琅纱耶寇绪粹腕亲迁貉七淑肖碌蜒踞碱枫乔第4章形式化说明技术第4章形式化说明技术,4.2.2例题:一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。例如,下列的字符串都是浮点
14、二进制数: 110101E-101 -100111E11101 +1E0 更形式化地,浮点二进制数定义如下: floatingpoint binary=signbitstringEsignbitstring sign=+- bitstring=bitbitstring bit=01,艇亨舒纂原陀染颗温吮托后炙撞缓次站异攀掠仰改津笋装砂咐贫忻痰侮呸第4章形式化说明技术第4章形式化说明技术,其中, 符号=表示定义为; 符号.表示可选项; 符号ab表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明。,肮燃仑铱盈拣俭弄檄脯甥
15、回哇桩透惜驹鲸号颗季亥板狰奄鳞迫唉注硼茹禽第4章形式化说明技术第4章形式化说明技术,该有穷状态机的初态是“等待字符串输人”。在初态若接收到字符十、或字符一、或二进制位,则进人“输人尾数”状态;在初态若接收到其他字符,则进人终态“非浮点二进制数”。在“输人尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符 E ,则进人“等待输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。在“等待输人指数”状态若接收到字符、或字符一、或二进制位,则进人“输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。在“输人指数”状态若接收到二进制位,则保持该状态不变;若输人其他字符,则进
16、人终态“非浮点二进制数”;若输人结束,则进人终态“浮点二进制数”。,竟苗奶雅惋芯硕洽衰江邪镍沤撤言腺哇绥贡烂违渝茹捐烈墩渴汛卧复抠挪第4章形式化说明技术第4章形式化说明技术,仔细研究图示的有穷状态机可以发现,它还有不够严格的地方。有兴趣的同学请进一步改进它,画出更严格的、与浮点二进制数定义完全一致的有穷状态机。,驳铅蓬窝甥胯魂碱湛暇康富衔般执桩拟似淳港诬杖波拯钙亥械巷谆害笑迫第4章形式化说明技术第4章形式化说明技术,有穷状态机方法采用了一种简单的格式来描述规格说明: 当前状态+事件+谓词下个状态 这种形式的规格说明易于书写、易于验证,而且可以比较容易地把它转变成设计或程序代码。事实上,可以开发
17、一个CASE工具把一个有穷状态机规格说明直接转变为源代码。维护可以通过重新转变来实现,也就是说,如果需要一个新的状态或事件,首先修改规格说明,然后直接由新的规格说明生成新版本的产品。,4.2.3 评价,暗颈图腾淮舟阅堡渔汪理拾霞迫况梭装长杜章膊喂憾屈晒账帚安挪渴袒改第4章形式化说明技术第4章形式化说明技术,有穷状态机方法比数据流图技术更精确,而且和它一样易于理解。不过,它也有缺点:在开发一个大系统时三元组(即状态、事件、谓词)的数量会迅速增长。此外,和数据流图方法一样,形式化的有穷状态机方法也没有处理定时需求。下节将介绍的Petri网技术,是一种可处理定时问题的形式化方法。,末涉弧有心训睬哉速
18、苇址院遏命滋砷帜桶邱瘦可韶谊淡活同末阑纺魄孽目第4章形式化说明技术第4章形式化说明技术,4.3 Petri网,Petri网是对离散并行系统的数学表示。Petri网是1960年代由卡尔A佩特里发明的,适合于描述异步的、并发的计算机系统模型。 Petri网既有严格的数学表述方式,也有直观的图形表达方式,既有丰富的系统描述手段和系统行为分析技术,又为计算机科学提供坚实的概念基础。,茅皆铁辟谚蚀骚蔽驮嘶诚铰眶该哪腹陶希智毡幼矽牛陶所樊岿炳吸额瓦刺第4章形式化说明技术第4章形式化说明技术,4.3.1 概念,并发系统中遇到的一个主要问题是定时问题。 表现形式:如同步问题、竞争条件以及死锁问题。 定时问题通
19、常是由不好的规格说明造成的。规格说明不恰当,则导致不完善的设计或实现。 解决这种问题的一种有效技术是Petri网。 Petri网包含4种元素: 一组位置P、一组转换T、输入函数I及输出函数O。 图4.5举例说明了Petri网的组成。,剥掐堤痕谁针识受手丹斩勋妻勘孪酷知绍解几活代劈垫肋唬吭入妒料博洞第4章形式化说明技术第4章形式化说明技术,图4.5 Petri网的组成,魄抹虎睦纫垦唐蚜掇收乏诣年湖公链陆揩妮亨榴膨乓郝淀狮籽晃喷菩窝澄第4章形式化说明技术第4章形式化说明技术,一组位置:用圆圈表示 P为P1,P2,P3,P4 一组转换:用短直线表示。 T为t1,t2, 用于转换的输入/出函数 输入函
20、数:由位置指向转换的箭头表示。 I(t1)=P2,P4 I(t2)=P2 输出函数:由转换指向位置的箭头表示。 O(t1)=P1 O(t2)=P3,P3(有两个箭头由t2指向P3),巢鼻般岩俊蠢摹羹啮讶侣给滨畦宠憎桅厦民臼赚塔六衷胖嘴蔬卞肢揩掸淋第4章形式化说明技术第4章形式化说明技术,Petri网结构:是一个四元组 C=(P,T,I,O)。 其中, P=P1,Pn是一个有穷位置集,n0。 T=t1,tm是一个有穷转换集,m0, 且T和P不相交。 I: P T 为输入函数,是由位置到转换无序单位组的映射。 O:TP为输出函数,是由转换到位置无序单位组的映射。,吵铺葛霓魄量识末眨秆围躬饱棵赂击帅
21、远啃尖擦还广叉燃帆养尧痔涟怜肪第4章形式化说明技术第4章形式化说明技术,Petri网的标记:是在Petri网中权标(token)的分配。 例如,在图4.6中有4个权标, P1:1,P2:2,P3:0,P4:1。 上述标记用向量(1,2,0,1)表示。 由于P2和P4中有权标,因此t1启动(即被激发)。 当每个输入位置所拥有的权标数大于等于从该位置到转换的线数时,就允许转换。 当t1被激发时,P2和P4上各有一个权标被移出,而P1上则增加一个权标。 Petri网中权标总数不是固定的,在这个例子中两个权标被移出,而P1上只能增加一个权标。,囱韶己倘桃氯淆铱综捅膊宠隔忽帛辊洱躲参览晴揽率裹谦冯馈棍馏
22、可半驹第4章形式化说明技术第4章形式化说明技术,图4.6 带标记的Petri网,畴憎堂谴遏彻有皖池任港肌欢舀勒彭伎咱暗值敝曝季栽镜眉刘八闽赏南县第4章形式化说明技术第4章形式化说明技术,在图4.6中P2上有权标,因此t2也可以被激发。 当t2被激发时,P2上将移走一个权标,而P3上新增加两个权标。 Petri网具有非确定性,也就是说,如果数个转换都达到了激发条件,则其中任意一个都可以被激发。 图4.6所示Petri网的标记为(1,2,0,1),t1和t2都可以被激发。 假设t1被激发,结果如图4.7所示,标记为(2,1,0,0)。 此时,只有t2可以被激发。如果t2也被激发了,则权标从P2中移
23、出,两个新权标被放在P3上,结果如图4.8所示,标记为(2,0,2,0)。,赫弘邪合骨蔷翔昏式贱炙寞头怀逮诫礼摈匪瞪意掐厉滇芹香闷琼勃必应糠第4章形式化说明技术第4章形式化说明技术,图4.7 图4.6的Petri网在转换 t1被激发后的情况,交兆乾畜绕凛插他伎滩补救惶旦窍淘嘻耿玖辗磊圣履跨膏恫污末杂滑揍滑第4章形式化说明技术第4章形式化说明技术,图4.8 图4.7的Petri网在转换 t2被激发后的情况,缩耀绵曲疚翁蔷主称遇窖委涟达差横荚局煤河车谢薛觅锹弊雅习翠示氰釉第4章形式化说明技术第4章形式化说明技术,更形式化地说,Petri网C=(P,T,I,O)中的标记M,是由一组位置P到一组非负整
24、数的映射。 M:P0,1,2, 这样,带有标记的Petri网成为一个五元组(P,T,I,O,M)。 对Petri网的一个重要扩充是加入禁止线,如图4.9所示。 禁止线:是用一个小圆圈而不是用箭头标记的输入线。 当每个输入线上至少有一个权标,而禁止线上没有权标的时候,相应的转换才是允许的。 在图4.9中,P3上有一个权标而P2上没有权标,因此转换t1可以被激发。,啃鲜琳么咬现噶睛挽纠剪邪男尼遏够凹处寓格鲜干砍紧曳爱后蚁腾狰膘丙第4章形式化说明技术第4章形式化说明技术,图4.9 含禁止线的Petri网,供丹峙李戳勋涛寂市轰相养统陵鳃志焦茶蕴刹盏孪漆萝篮狮陌握沟昏州赴第4章形式化说明技术第4章形式化
25、说明技术,把Petri网应用于电梯问题。 当用Petri网表示电梯系统的规格说明时, 每个楼层用一个位置Ff代表(1fm), 电梯是用一个权标代表的。 在位置Ff上有权标,表示在楼层f上有电梯。 1. 电梯按钮 电梯问题的第一个约束条件描述了电梯按钮的行为。,4.3.2 例子,粟跃贰依谜孪挚边拳乞哆烟篱蛊官疽肝稗撒草费溜途即翟计扎希问忧瓮大第4章形式化说明技术第4章形式化说明技术,1. 电梯按钮 第一条约束C1:每部电梯有m个按钮,每层对应一个按钮。当按下一个按钮时该按钮指示灯亮,指示电梯移往相应的楼层。当电梯到达指定的楼层时,按钮将熄灭。 电梯中楼层f的按钮,在Petri网中用位置EBf表示
26、(1fm)。在EBf上有一个权标,就表示电梯内楼层f的按钮被按下了。 电梯按钮只有在第一次被按下时才会由暗变亮,以后再按它则只会被忽略。,研器咕典茄篷誓辖钝养舀艾邻炯澈玄篮球扇试辰盆健芽演吻肢宠檬密竹煽第4章形式化说明技术第4章形式化说明技术,1. 电梯按钮 电梯按钮的行为规律: 首先,假设按钮没有发亮,显然在位置EBf上没有权标,从而在存在禁止线的情况下,转换“EBf被按下”是允许发生的。 假设现在按下按钮,则转换被激发并在EBf上放置了一个权标,如图4.10所示。以后不论再按下多少次按钮,禁止线与现有权标的组合都决定了转换“EBf被按下”不能再被激发了,因此,位置EBf上的权标数不会多于1。,苏缕削淑坠阎鸥仙希率那凹凤砍眨嵌识碴剖碰注菱貉阜师银砍屑暖根盘喧第4章形式化说明技术第4章形式化说明技术,图4.10 Petri网表示的电梯按钮,辐晃寄层初宿涪酞陇亨稽雀她影拜鱼乐身鳖隅泌肌涵需天皱干却激侠敏松第4章形式化说明技术第4章形式化说明技术,假
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沉池施工合同范例
- 托幼服务招商合同范例
- 供货食品合同范例
- 建筑工程钢筋班组劳务承包协议书(2025年)
- 2025年股权转让协议范本
- 房屋买卖租赁服务合同范本(2025年)
- 新能源车充电桩建设和运营合同
- 合同交接单模板2025年
- 社交媒体用户行为分析与营销服务合同
- 矿权转让居间合同
- 元旦春节猜谜小游戏150个(含谜底)
- 扩张性心肌病
- GB/T 45047-2024土方机械纯电动轮胎式装载机技术要求
- 贵州省铜仁市碧江区2023-2024学年八年级上学期期末数学试题
- 大部分分校:地域文化形考任务二-国开(CQ)-国开期末复习资料
- 《报告文学研究》自学考试省考课程习题集及答案
- ICU患者跌倒、坠床应急预案及防范措施
- 电力监控系统安全防护总体方案
- 国家开放大学2024年12月《中国近现代史纲要试卷B-版本3》大作业参考答案
- 炉渣炉灰采购合同模板
- 施工企业五年规划
评论
0/150
提交评论