《软件工程方法》sea09.Formal Methods.pdfVIP

《软件工程方法》sea09.Formal Methods.pdf

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

软件工程方法

第九章.形式化方法

09.FormalMethods

内容安排

1.形式化方法基础

2.起源:图灵机

3.有限状态机

4.Petri网

5.Z语言和B方法

3

内容安排

1.形式化方法基础

2.起源:图灵机

3.有限状态机

4.Petri网

5.Z语言和B方法

4

传统开发方法存在的问题

在传统的软件开发过程中,前期各阶段的

工作成果都是自然语言描述的“文档”,

只有最后开发阶段的成果是形式化的程序

非形式的前期工作成果(文档)只能由人阅读

、理解和讨论,无法严格的分析和推理

这些非形式化的成果往往存在各种问题:矛盾

、二义性、模糊、不完备性……

原则上说,程序是形式化的描述,有“清晰”

定义的形式和语义

5

传统开发方法存在的问题(续)

程序的所有静态和动态性质都蕴藏在程序

正文中,但是:

程序里除包含了实际应用的功能逻辑外,还包

含大量具体语言和具体实现的细节,这些使程

序的逻辑分析变得非常困难

大量实现细节大大增加了程序的复杂度,从而

极大地提高了分析和推理的成本

由非形式的软件前期开发成果到复杂的程

序,这一跨越的距离太大,相互之间的关

系难以把握,无法保证

6

传统开发方法存在的问题:结论

严格描述出现得太晚,形式太复杂,与前

期成果的距离太远

由于程序的复杂性,对其进行分析和推理

非常困难,不可能完全

对程序的推理分析也是形式化方法研究的课题

可以把软件的前期工作看成设计,把编程

工作看作制造

需要加强软件的设计过程

7

从非形式化到形式化

传统的非形式化方法

基于自然语言思考、设计和描述

语义含糊,可能有歧义,依赖于使用者的理解

无法进行严格的检查,只能通过人的交流活动

进行分析

半形式化方法

借助于一些图表建立模型,如:DFD、ER、

UML

有较清晰定义的形式和部分的语义定义

一些描述的语义较清晰,可能开发工具进行检

查和分析

8

从非形式化到形式化(续)

形式化方法

将严格定义的数学方法应用于解决软件工程领

域的问题,主要包括建立精确的数学模型以及

对模型开发各种分析和验证活动

特点:

语义清晰,无歧义

可以开发自动化工具进行检查和分析

9

形式化方法

形式化方法研究如何把(具有清晰的数学

基础的)严格性(描述形式、技术和过程

等)融入软件开发的各个阶段:

Specification(规范):采用具有严格定义的

形式和语义表示,描述软件设计(和实现)

ReasoningandAnalysis(推理和分析):对形

式化规范进行分析和推理,确定它们的各种静

态和动态性质

Refinement(求精):从抽象的高层描述出发

,严格确保语义地推导出更接近实现的包含更

多细节的规范,最终得到正确实现了高层规范

的可运行程序

文档评论(0)

趁早学习 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档