第4章形式化说明技术[精选].pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章形式化说明技术[精选]

第4章 形式化说明技术 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结 习题 软件工程使用的方法划分成: 非形式化、半形式化和形式化3类。 非形式化方法:用自然语言描述需求规格说明。 半形式化方法:用数据流图或实体-联系图建立模型。 形式化方法:基于数学的技术来描述系统性质。 2 形式化方法的定义 用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验 证系统。 如果一个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。 3 形式化方法的研究内容 形式化方法的一个重要研究内容是形式规约(Formal Specification,也称形式规范或形式化描述),它是对程序“做什么”(what to do)的数学描述,是用具有精确语义的形式语言书写的程序功能描述,它是设计和编制程序的出发点,也是验证程序是否正确的依据。 4 形式化方法的分类 根据说明目标软件系统的方式,形式化方法可以分为两类:   1)面向模型的形式化方法。面向模型的方法通过构造一个数学模型来说明系统的行为。   2)面向属性的形式化方法。面向属性的方法通过描述目标软件系统的各种属性来间接定义系统行为。 根据表达能力,形式化方法可以分为五类: 基于模型的方法:通过明确定义状态和操作来建立一个系统模型。 基于逻辑的方法:用逻辑描述系统预期的性能,包括底层规约、时序和可能性行为。 代数方法:通过将未定义状态下不同的操作行为相联系,给出操作的显式定义。 过程代数方法:通过限制所有容许的可观察的过程间通信来表示系统行为。 基于网络的方法:由于图形化表示法易于理解,而且非专业人员能够使用,因此是一种通用的系统确定表示法。 4.1 概述 4.1.1 非形式化方法的缺点 用自然语言书写的系统规格说明书:存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。 矛盾:指一组相互冲突的陈述。 二义性:指读者可以用不同方式理解的陈述。 含糊性:系统规格说明书庞大,易出现含糊性。 不完整性:遗漏了客户的一些需求。 抽象层次混乱:是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。 4.1.2 形式化方法的优点 数学特别适合于表示状态,也就是表示“做什么”。 需求规格说明书主要描述应用系统在运行前和运行后的状态,因此,数学更适于描述详细的需求。 没有二义性,容易发现矛盾和不完整性,没有含糊性。 可以在不同的软件工程活动之间平滑地过渡。 功能规格说明与系统设计都用数学表达,易于过渡。 它提供了高层确认的手段。 可以使用数学方法证明: 设计符合规格说明,程序代码正确地实现了设计结果。 4.1.2 形式化方法问题 软件系统的复杂性,仅用少数几个数学公式来描述它很困难。 即使应用了形式化方法,完整性也是难于保证的。(遗漏的一些需求) 4.1.3 应用形式化方法的准则 (1) 应该选用适当的表示方法。 如果用这种技术描述其不适于描述的概念,则不仅工作量大而且描述方式也很复杂。 (2) 应该形式化,但不要过分形式化。 形式化技术还不适于描述系统的每个方面, 形式化规格说明技术有助于防止含糊和误解,适于说明系统中易出错的或关键的部分。 (3) 应该估算成本。 为了使用形式化方法,通常需要事先进行大量的培训。最好预先估算所需的成本并编入预算。 (4) 应该有形式化方法顾问随时提供咨询。 绝大多数软件工程师对形式化方法中使用的数学和逻辑并不很熟悉。 (5) 不应放弃传统的开发方法。(取长补短效果好) (6) 应该建立详尽的文档。 使用自然语言注释形式化的规格说明书,以帮助用户和维护人员理解系统。 (7) 不应该放弃质量标准。 形式化方法并不能保证软件的正确性,在开发过程中仍需实施其他质量保证活动。 (8) 不应该盲目依赖形式化方法。 形式化方法并不能保证开发出的软件绝对正确。(9) 应该测试、测试再测试。 形式化方法不能证明系统性能或其他质量指标是否符合需要,因此,软件测试的重要性并没有降低。 (10) 应该重用。 用形式化方法说明的软件构件具有清晰定义的功能和接口,使得它们有更好的可重用性。 4.2 有穷状态机 4.2.1 概念 下面通过一个简单例子介绍有穷状态机的基本概念。 一个保险箱上装了一个复合锁,锁有三个位置,分别标记为1、2、3,转盘可向左(L)或向右(R)转动。这样,在任意时刻转盘都有6种可能的运

文档评论(0)

ustt001 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档