网站大量收购独家精品文档,联系QQ:2885784924

软件工程课件之第4章_形式化说明技术(第五版)(张海潘编著).ppt

软件工程课件之第4章_形式化说明技术(第五版)(张海潘编著).ppt

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

第4章 形式化说明技术 4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 软件工程使用方法的分类: 非形式化,用自然语言描述需求规格说明; 半形式化,用数据流图或实体-联系图建立模型; 形式化,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。 4.1 概述 4.1.1 非形式化方法的缺点 矛盾,指一组相互冲突的陈述。 二义性,指读者可以用不同方式理解的陈述。 含糊性,几乎不可避免地会出现含糊性。 不完整性,不完整性可能是在系统规格说明中最常遇到的问题之一。 抽象层次混乱,指在非常抽象的陈述中混进了一些关于细节的低层次陈述。 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种可能的运动,即1L、1R、2L、2R、3L和3R。保险箱的组合密码是1L、3R、2L,转盘的任何其他运动都将引起报警。 有穷状态机包括5个部分:状态集J、输入集K、由当前状态和当前输入确定下一个状态(次态)的转换函数T、初始态S和终态集F。 状态集J:{保险箱锁定,A,B,保险箱解锁,报警} 输入集K:{1L,1R,2L,2R,3L,3R} 转换函数T:如表4.1所示 初始态S:保险箱锁定 终态集F:{保险箱解锁,报警} 4.2.3 评价 优点: 形式简单,易于书写、易于验证,比较容易地把它转变成设计或程序代码。 比数据流图技术更精确,而且和它一样易于理解。 缺点: 在开发一个大系统时三元组(即状态、事件、谓词)的数量会迅速增长。 和数据流图方法一样,形式化的有穷状态机方法也没有处理定时需求。 4.3 Petri网 4.3.1 概念 并发系统中遇到的一个主要问题是定时问题。这个问题可以表现为多种形式,如同步问题、竞争条件以及死锁问题。如果规格说明不恰当,则有导致不完善的设计或实现的危险。用于确定系统中隐含的定时问题的一种有效技术是Petri网,这种技术的一个很大的优点是它也可以用于设计中。 Petri网结构,是一个四元组C=(P,T,I,O)。其中 P={P1,…,Pn}是一个有穷位置集,n≥0。 T={t1,…,tm}是一个有穷转换集,m≥0,且T和P不相交。 I:T→P∞为输入函数,是由转换到位置无序单位组(bags)的映射。 O:T→P∞为输出函数,是由转换到位置无序单位组的映射。 一组位置P为{P1,P2,P3,P4},用圆圈代表位置。 一组转换T为{t1,t2},用短直线表示转换。 两个用于转换的输入函数,用由位置指向转换的箭头表示,它们是:I(t1)={P2,P4},I(t2)={P2}

文档评论(0)

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

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

1亿VIP精品文档

相关文档