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