形式化开发方法网.ppt

  1. 1、本文档共141页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形式化开发方法网

软件工程形式化方法 第5章 形式化开发方法(1) 内容安排 软件开发的形式化方法 形式化开发方法(1) – Petri网 形式化开发方法(2) – 时态逻辑 形式化开发方法(3) – Z方法 软件开发的形式化方法 软件开发的形式化方法定义 软件开发的形式化方法(formal methods)是建立在严格数学基础上,具有精确数学语义的开发方法 简单地说,凡在系统研究中,应用了数学的方法,都是形式化方法 本章所介绍的形式化开发方法是指软件规格说明数学建模、数学验证和数学程序求精 形式化方法与结构化和OO方法区别 结构化和OO方法 使用了大量的自然语言。自然语言的二义性、不完整和抽象层次的混杂等问题的解决,必然使开发系统的质量不高、成本增加和进度拖长;尤其对安全性或其他质量因素要求极高的软件,任何微小的错误都可能带来灾难性的后果 形式化的方法 可以帮助软件开发人员开发出更为无二义性、完整的和准确的需求规格说明,进而通过严格的验证发现问题,以达到对软件质量、开发成本和开发进度的有效控制 形式化开发方法发展历史 20世纪60年代末 形式化方法与非形式化大致同步 都是为解决当时出现的“软件危机”提出 一般认为是Floyd、Hoare和Manna等在程序正确性证明方面的研究。但由于这些方法受程序规模的限制而未能应用 20世纪80年代末 在硬件设计领域形式化方法的工业应用结果,又掀起了软件形式化开发方法的学术研究和工业应用的热潮,建立了一些较为成熟的方法和语言 如Petri网、statecharts、通信顺序过程、通信系统演算、程序正确性证明、时态逻辑、模型验证、Z语言、 VDM及Larch等 目前流行的形式化开发方法 形式化规格说明建模 形式化验证 形式化程序求精 形式化规格说明建模 操作类 基于状态和转移 Petri网、有限状态机和状态图 描述类 基于数学公理和概念 基于逻辑的描述方法:命题线性时态逻辑(PLTL)、一阶线性时态逻辑(FOLTL)、计算树逻辑(CTL) 基于代数的描述方法:Z语言、VDM和Larch 双重类 兼有操作类和描述类两者的特点 扩展状态机(ESM)、实时时态逻辑(RTTL) 形式化验证 模型验证和定理证明 模型验证是对规格说明所建立起来的模型状态空间进行搜索,以确认该系统模型是否具有所期望的某些性质 定理证明是以逻辑公式作为系统及其性能的规格说明,其中逻辑由一个具有公理和推理规则的形式化系统给出。进行定理证明的过程就是应用这些公理或推理规则来证明系统是否具有所期望的性质 形式化程序求精 形式化程序求精就是将自动推理与形式化规格说明相结合而形成的一门技术 研究如何从形式化的规格说明推演出具体的面向计算机的程序代码的全过程 基本思想就是用一个抽象程度低和过程性强的程序,去代替一个抽象程度高和过程性弱的程序,并保证它们的功能和性质完全一致 形式化程序求精与形式化规格说明和形式化验证三者是紧密联系和相辅相成 形式化开发方法主要问题 对软件开发人员(包括管理人员和用户)的数学素质有较高的要求 主要是离散数学中的集合、代数结构、数理逻辑等基础内容在软件工程中的具体应用 对于原来一些数学背景较差的工程人员要花许多时间去学习和掌握。有的甚至还要克服对数学的畏惧心理 在选择和应用形式化开发方法时应注意的问题 Bowan和Hinchley提出了“形式化法方法的十条戒律” 形式化开发方法(1) Petri网 什么是Petri网 Petri网是一种网状结构的系统的描述和分析工具 对于具有并发、异步、分布、并行、不确定性或随机性的信息系统,都可以利用这种工具构造出要开发的Petri网模型。然后对其进行分析,即可得到有关系统结构和动态行为方面的信息。根据这些信息就可以对要开发的系统进行评价和改进 Petri网的提出 由德国C.A. Petri在他的62年博士论文“Communication with automata”中提出 当时引起一些欧美科学家的重视。他们在引用这种网状结 构模拟和分析并行系统中称它为“Petri Nets”。从此以后大家都称它为Petri网 Petri网介绍的内容 示例-四季系统Σ Petri网的定义 Petri网的基本原理-静态结构 Petri网的基本原理-动态特征 建模实例 特性分析 Petri网的特性分析方法 改进Petri网及其应用 时间网和随机网 从Petri网到程序结构的转换 示例:四季系统Σ 一年有四季,四季气候的变化 系统Σ的Petri网图形表示 系统Σ的Petri网数学表示 Σ=(P,T;F,M0) P={p1, p2, p3, p4} T={t1, t2, t3, t4} F={(p1, t1), (t1, p2

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档