形式化开发方法网.ppt
《形式化开发方法网.ppt》由会员分享,可在线阅读,更多相关《形式化开发方法网.ppt(141页珍藏版)》请在三一办公上搜索。
1、软件工程形式化方法,第5章 形式化开发方法(1),-3-,内容安排,软件开发的形式化方法形式化开发方法(1)Petri网形式化开发方法(2)时态逻辑形式化开发方法(3)Z方法,-4-,软件开发的形式化方法,软件开发的形式化方法定义软件开发的形式化方法(formal methods)是建立在严格数学基础上,具有精确数学语义的开发方法简单地说,凡在系统研究中,应用了数学的方法,都是形式化方法 本章所介绍的形式化开发方法是指软件规格说明数学建模、数学验证和数学程序求精,-5-,形式化方法与结构化和OO方法区别,结构化和OO方法使用了大量的自然语言。自然语言的二义性、不完整和抽象层次的混杂等问题的解决
2、,必然使开发系统的质量不高、成本增加和进度拖长;尤其对安全性或其他质量因素要求极高的软件,任何微小的错误都可能带来灾难性的后果形式化的方法可以帮助软件开发人员开发出更为无二义性、完整的和准确的需求规格说明,进而通过严格的验证发现问题,以达到对软件质量、开发成本和开发进度的有效控制,-6-,形式化开发方法发展历史,20世纪60年代末形式化方法与非形式化大致同步都是为解决当时出现的“软件危机”提出一般认为是Floyd、Hoare和Manna等在程序正确性证明方面的研究。但由于这些方法受程序规模的限制而未能应用20世纪80年代末在硬件设计领域形式化方法的工业应用结果,又掀起了软件形式化开发方法的学术
3、研究和工业应用的热潮,建立了一些较为成熟的方法和语言如Petri网、statecharts、通信顺序过程、通信系统演算、程序正确性证明、时态逻辑、模型验证、Z语言、VDM及Larch等,-7-,目前流行的形式化开发方法,形式化规格说明建模形式化验证形式化程序求精,-8-,形式化规格说明建模,操作类基于状态和转移Petri网、有限状态机和状态图描述类基于数学公理和概念基于逻辑的描述方法:命题线性时态逻辑(PLTL)、一阶线性时态逻辑(FOLTL)、计算树逻辑(CTL)基于代数的描述方法:Z语言、VDM和Larch双重类兼有操作类和描述类两者的特点扩展状态机(ESM)、实时时态逻辑(RTTL),-
4、9-,形式化验证,模型验证和定理证明模型验证是对规格说明所建立起来的模型状态空间进行搜索,以确认该系统模型是否具有所期望的某些性质定理证明是以逻辑公式作为系统及其性能的规格说明,其中逻辑由一个具有公理和推理规则的形式化系统给出。进行定理证明的过程就是应用这些公理或推理规则来证明系统是否具有所期望的性质,-10-,形式化程序求精,形式化程序求精就是将自动推理与形式化规格说明相结合而形成的一门技术研究如何从形式化的规格说明推演出具体的面向计算机的程序代码的全过程基本思想就是用一个抽象程度低和过程性强的程序,去代替一个抽象程度高和过程性弱的程序,并保证它们的功能和性质完全一致形式化程序求精与形式化规
5、格说明和形式化验证三者是紧密联系和相辅相成,-11-,形式化开发方法主要问题,对软件开发人员(包括管理人员和用户)的数学素质有较高的要求主要是离散数学中的集合、代数结构、数理逻辑等基础内容在软件工程中的具体应用对于原来一些数学背景较差的工程人员要花许多时间去学习和掌握。有的甚至还要克服对数学的畏惧心理在选择和应用形式化开发方法时应注意的问题Bowan和Hinchley提出了“形式化法方法的十条戒律”,-12-,形式化开发方法(1)Petri网,-13-,什么是Petri网Petri网是一种网状结构的系统的描述和分析工具对于具有并发、异步、分布、并行、不确定性或随机性的信息系统,都可以利用这种工
6、具构造出要开发的Petri网模型。然后对其进行分析,即可得到有关系统结构和动态行为方面的信息。根据这些信息就可以对要开发的系统进行评价和改进Petri网的提出由德国C.A.Petri在他的62年博士论文“Communication with automata”中提出当时引起一些欧美科学家的重视。他们在引用这种网状结 构模拟和分析并行系统中称它为“Petri Nets”。从此以后大家都称它为Petri网,-14-,Petri网介绍的内容,示例-四季系统Petri网的定义Petri网的基本原理-静态结构Petri网的基本原理-动态特征建模实例特性分析Petri网的特性分析方法改进Petri网及其应
7、用时间网和随机网从Petri网到程序结构的转换,-15-,示例:四季系统,一年有四季,四季气候的变化,该系统可以由图形表示,-16-,系统的Petri网图形表示,-17-,系统的Petri网数学表示,=(P,T;F,M0)P=p1,p2,p3,p4T=t1,t2,t3,t4F=(p1,t1),(t1,p2),(p2,t2),(t2,p3),(p3,t3),(t3,p4),(p4,t4),(t4,p1)M0=(0,0,0,1),-18-,Petri网描述系统的特点,从四季系统中,可以看出这种利用事物的因果关系对系统进行网状结构的描述,有以下特点自然没有任何不必要的人为控制,完全反映了现实世界的真
8、实情况局部确定原理因为事件或转移的发生和结果都由局部状态决定既有系统静态结构,又有动态行为方面的信息既有图形工具,又有数学工具图形工具和数学工具完全等价图形工具直观、形象、易懂、易学;数学工具严谨,既便于计算,又便于验证,-19-,Petri网的基本原理:静态结构,任何系统都有两类元素组成:表示状态的元素和表示状态变化的元素Petri网位置(place):状态转移(transition):改变状态两者之间的依赖关系用弧(箭头)表示,-20-,Petri网的基本成分(1),-21-,Petri网的基本成分(2),其中:P=(p1,p2,pm)是N的有穷位置集合,T=(t1,t2,tn)是N的有穷
9、转移集合,F是由N中一个P元素和一个T元素组成的有序偶的集合,F称为流关系。(PT)和(TP)中的“”为笛卡尔乘积。DOM(F)=x y:(x,y)F,COD(F)=x y:(y,x F分别为F所含的有偶序偶的第一个元素组成的集合和第二个元素组成的集合。,-22-,Petri网的基本成分(3),由上可以说明N=(P,T;F)是位置集合P和转移集合T构造Petri网的两个基本成分,P与T两者间的流关系F是从它们构造出来的。所以在P、T之后的F用分号“;”隔开来PT 说明网中至少要有一个元素,PT=说明P和T为两类不同的元素,两者不能有交F(PT)(TP)说明一个P元素代表一个资源,其流动由F关系
10、规定。所以,转移T只能与位置有直接的流关系,不是从PT,就是从T P。而不参与任何转移的资源为孤立的P,不引起资源流动的转移为孤立的T。所以DOM(F)COD(F)=P T说明网中不能有孤立的元素P或T,-23-,前集、后集、子网,设,令*x=y|(y,x)F,x*=y|(x,y)F*x被称为x的前集或输入集。x*被称为x的后集或输出集。在N1=(P1,T1;F1)和N2=(P2,T2;F2)中,如果,且,则称N1是N2的子网。,-24-,纯网,在N=(P,T;F)中,如果对似有xPT,都有*x x*=,则称N为纯网(pure net)纯网中无公共前后集(环),-25-,简单网,如果对所有x,
11、yPT,都有(*x=*y)(x*=y*)x=y,则称N为简单网(simple net)简单网中无相同的前后集,-26-,Petri网的基本原理:动态特征(1),Petri网作为系统的建模工具,除具有上述描述的静态结构外,还应包括位置的容量和转移发生对位置容量的影响信息。有限容量可用大于零的整数表示,转移发生对位置中标记数的影响用孤上的整数表示。于是,具有动态特征的Petri网可表示为六元组:,-27-,Petri网的基本原理:动态特征(2),Petri网的六元组:其中:(P,T;F)含义同前 K:PN 是位置上的容量函数,N=0,1,2,3,若K(p)=,表示位置中的容量为无穷 W:F N是孤
12、集合上的孤函数 M:P N0是Petri网的标识(marking)。M0为初始标识,N0=0,1,2,3,pP,必须满足M(p)K(p)在Petri网的图形表示中,M(p)不是用数字,而是用实圆点表示。每个实圆点为一个标记,同一个位置中的诸多标记代表同一类完全等价的个体。弧(x,y)上的W值标注在孤(x,y)上,-28-,转移发生规则(1),Petri网的动态行为是通过转移发生引起标识改变来体现的转移可发生的条件和发生规则转移t 可发生的条件若在标识M下,p1,p1*t M(p1)(p1,t),且p2,p2 t*M(p2)+W(t,p2)K(p2)+W(t,p2)K(p2),此时称t在M 下可
13、发生,记为M t 转移t发生的结果若t在M下可发生,就可以发生,发生后将M 变成新标识M,出视方出记为MtM 或M M,并称M 为M 的后继标识对p P,M(p)=M(p)W(p,t)当p*t t*=M(p)W(t,p)当pt*t=M(p)W(p,t)W(t,p)当p*t t*=M(p)当pt*t,-29-,转移发生规则(2),注意一个没有任何输入位置的转移叫源转移,一个源转移的可发生是无条件的。一个源转移的发生只会产生标记,而不消耗任何标记一个没有任何输出位置的转移叫潭转移,一个潭转移的发生将消耗标记,而不产生任何标记,-30-,示例:转移发生规则,以本例来说明网论中的转移发生规则,以及网论
14、中的冲突(conflict)、并发(concurrent)和碰撞(contact)现象有时,一个Petri网中同时存在并发和冲突,而且并发的发生会引起冲突的消失或出现。网论中称这种现象为混惑(confusion),-31-,并发和冲突概念的完整描述,并发设M 为Petri网的一个标识,若存在t1和t2使得M t1 和M t2,并满足,且则称t1和t2 在M 下并发冲突设M 为Petri网的一个标识,若存在t1和t2使得M t1 和M t2,并满足,且则称t1 和t2 在M 下冲突,-32-,网系统分类,根据Petri网系统中容量函数K和权函数W的不同可分为三种情况K1,W1 为基本网(elem
15、entary net,EN)系统这种网系统位置p 中,只有有标记和无标记两种状态。习惯上把这种网称为条件/转移网系统K,W1 为P/T(place/transition)网K和W为任意函效 为P/T系统P/T网和P/T系统中都是物质资源,它们与EN系统有本质的不同。所以,EN系统又叫做条件/事件网系统。P/T网和P/T系统也有区别。K(p)(位置容量)是其能容纳此类资源的能力,也称空间资源。而W(p,t)和W(t,p)分别是转移t 发生时释放和占用此类空间资源的数量。P/T网的位置p 容量足够大,所以不会发生碰撞。而P/T系统,如果位置p 容量有限,且不进行技术处理,则有可能发生碰撞,-33-
16、,Petri网转移发生规则的简化,对Petri网简化的原因是为了对Petri网进行理论上研究的方便通过上面讨论可以看出,对于简单的Petri网,由于K和W已无任何限制作用。所以,一般把这种Petri网系统记为:=(N,M)=(P,T;F,M)。这种Petri网系统的转移发生规则,可以简化为:若Mt,当且仅当p p,M(p)1,t 发生后,Mt M M(p)=M(p)1 当 p*t t*=M(p)1 当 p t*t=M(p)其它网论可以证明,经过适当加技术处理,都可以把K、W任意的P/T网或P/T系统改造为K,W 1的Petri网M(p)=M(p)1 当p*t t*=M(p)1 当p t*t=M
17、(p)其它,-34-,建模实例:有限状态机,-35-,建模实例:并行活动,-36-,建模实例:数据流计算,-37-,建模实例:通信协议,-38-,建模实例:同步控制,-39-,建模实例:生产者/消费者系统(1),-40-,建模实例:生产者/消费者系统(2),抑制弧,-41-,建模实例:形式语言,-42-,建模实例:机械加工(1),-43-,建模实例:机械加工(2),-44-,建模实例:机械加工(3),-45-,建模实例:机械加工(4),-46-,建模实例:机械加工(5),-47-,特性分析,Pretri网的特性主要包括可达性(Reachability)有界性(Boundedness)活性(Li
18、veness)可逆性(Reversibility)可覆盖性(Coverability)持久性(Persistence)同步距离(Synchronic Distance)公平性(Fairness),-48-,特性分析-可达性,对Petri网(N,M0),如果存在一个从M0到Mn的发生序列,则称标识Mn是从M0可达的。发生序列表示为=M0t1M1t2M2t3M3tnMn,或简化为=t1t2tn。可用M0 Mn 表示三者间的关系。在Petri网(N,M)中所有从标识M0可达的标识集合,可表示为R(N,M0)或个简化为R(M0)。从M0出发的所有可能发生序列的集合,可表示为L(N,M0)或简化为L(M
19、0)。这样,Petri网的可达性问题就转换为对于Petri网(N,M)和给定标识M0,寻找是存在M0 R(M0)可达性是研究任何系统动态特性而与基础,-49-,特性分析-有界性,对Petri网(N,M),若存在一个非负整数K,使得M0的任何一个可达标识的每个位置中的标记数都不超过K,即对每个标识MR(M0)和每个位置p,M(p)K 均成立,则称Petri网(N,M0)为K有界,或简称有界若Petri网(N,M0)为1有界,则称此Petri网为安全的。这种网的每一个位置要么有一个标记,要么没有标记通常用Petri网中的位置表示实际系统中存储数据的缓冲区和寄存器。通过分析网的有界性或安全性,就可以
20、考察实际系统中缓冲区或寄存器是否会溢出,-50-,特性分析-活性,一个Petri网(N,M)被称为活的或称M0是网N的一个活标识,仅当从M0可达的任一标识出发都可以通过执行某一转移序列而最终发生任一转移。这意味着,无论选择什么样的发生序列,一个活的Petri网都可以保证无死锁操作。活性是许多系统的理想特性。但这是不现实现的,也是不必要的对于Petri网(N,M0)中的一个转移t,实际上可能属于以下情况:L0级活(死的):仅当t在L(M0)中任何发生序列中都无法发生L1级活(可能能发生):仅当t 在L(M0)中的一些发生序列中至少可发生一次L2级活:已知任一正整数k,仅当t 在L(M0)中的一些
21、发生序列至少可发生k 次L3级活:仅当t 在L(M0)中的一些发生序列中可以无限制的发生L4级活(活的):仅当t 在R(M0)中的每个标识是L1活的,-51-,特性分析-可逆性,一个Petri网(N,M0)称为可逆的,仅当对R(M0)中每个标识M,M0都是从M可达的。因此,一个可逆网可以返回到初始标识或初始状态。在很多名小应用中只要求系统回到某个特定状态而无需回到初始状声在态我们称这个特定状态为主(home)状态即对于R(M0)的每个标识M,主状态M 都是可达的有界性、活性和可逆性是三种相互独立的特性,-52-,特性分析-可覆盖性,一个Petri网(N,M0)中一个标识M称做可覆盖的,仅当在R
22、(M0)中存在一个标识M,使得对网中的每个位置M(p)M(p)成立可覆盖性与L1活(潜在的可发生性)紧密相关。设M是转移t发生所必需的最小标识。那么,当且仅当M是不可覆盖的,t是死的(非L1活)。也就是说,t是L1活,当且仅当M是可覆盖的,-53-,特性分析-持久性,一个Petri网(N,M0)称为持久的,仅当对于任意两个可发生转移,其中一个转移的发生不会使另一个转移不发生。就是说,持久网中的一个转移一旦可发生,将保持这种可发生性直至它发生为止所有位置都只有一条输入孤和一条输出弧的Petri网(标识图)具有持久性,-54-,特性分析-同步距离,同步距离是条件/事件系统中两个 事件间相互独立程度
23、紧密相关的 一种量度。我们用 来定义Petri网(N,M0)中两个转移 t1 和t2 间的同步距离。其中 是起始于R(M0)中的任何标识M 的一个发生序列,(t i)是转移 t i(I=1,2,)在 中发生的次数。右图们仍所示Petri网中 d12=1,d34=1,d13=同步有不同的形式(见例1例5),-55-,同步形式(1),它们共同执行一个任务,只有p1、p2中的标记同时到达时才能同步,-56-,同步形式(2),这是一个顺序系统,t1,t2为同步。但它们交替发生,t1与t2的关系为11,-57-,同步形式(3),这是一个并发系统,t1、t2发生的关系也为11。但它们不是交替发生,而可同时
24、发生,也可一先一后发生,-58-,同步形式(4),本例中,t2不能先发生,只有t1可以发生。这也就是说,只有t1发生后,t2才能发生。这时,仍只有t1能够发生。即t1第二次发生后,t2才能发生。由此可见t1与t2也为顺序关系,但它们的关系为21,-59-,同步形式(5),本例中,t1与t2的关系为1或1,这就等于无同步可言,-60-,同步距离刻画事件间的同步关系,d12=两组事件不同步,即异步d12两组事件以d12为距离相互同步d12=0两组事件在时间和空间上一起发生,网论中将它们当做一个事件d12=1两组事件必须交替发生,-61-,特性分析-公平性,两种基本公平性有界公平性对于两个转移,若不
25、发生其中一个转移另一个转移可以发生的最大次数是有界的,则称两个转移为有界-公平(或-公平)关系。若Petri网(N,M0)中每对转移都是-公平关系,则外该网为-公平网无条件(全局)公平性对于一个发生序列,若它为有限的或网中每个转移在中无限次出现,则称 为无条件(全局)公平的。若从R(M0)中某个M开始的每个发生序列 都是无条公平的,则称Petri网(N,M0)为无条件公平网两种类型公平性之间的关系每个-公平网都是无条件公平网每个有界的无条件公平网都是-公平网,-62-,Petri网的特性分析方法,分层或化简可覆盖性(可达性)树不变量、关联矩阵和状态方程,-63-,Petri网的分层,Petri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式化 开发 法网

链接地址:https://www.31ppt.com/p-5054269.html