- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
形式化方法与软件开发课程结构软件开发的过程和问题形式化方法形式化说明技术有穷状态机Petri网VDMZ语言B语言形式化方法的实践软件开发过程软件开发的主要步骤问题和需求分析设计: 功能设计 结构设计编码(构建)调试发布,维护和升级问题和目标重要问题:软件的功能保证和其他质量保证开发成本开发效率有关计算机软件的研究都围绕着:提高软件系统的质量和可靠性提高开发的效率降低开发的成本应对方法项目经常延误,不能按期完成经常超出预算软件开发的后续阶段常常发现许多前期设计错误,更正错误的代价高昂发布运行的软件中常常存在着许多错误,时常崩溃软件维护和更新工作的代价非常高实际情况非形式化方法的缺点用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。前期工作成果(文档)只能由人以非形式的方式阅读、理解和讨论,无法进行严格的分析的推理。前期工作成果到复杂的程序的跨越距离太大,相互之间的关系难以把握,无法保证质量。能够简洁准确地描述物理现象、对象或动作的结果,是理想的建模工具。可以在不同的软件工程活动之间平滑地过渡。不仅功能规格说明,而且系统设计也可以用数学(代码)表达。它提供了高层次的确认手段。可以使用数学方法证明,设计符合规格说明,程序代码正确地实现了设计结果。形式化方法的优点形式化说明技术形式化说明技术有穷状态机?组成:有限状态集:Q={q0,q1,q2….. qn}, 任意确定时刻,只能处于一个确定状态qi输入符号集:Σ={σ1, σ2, σ3…σm}, 任意确定时刻,只能有一个确定输入σi状态转移函数: δ=Q x Σ -Q初始状态: 终结状态集: 有限状态机:非确定性有穷自动机,确定型有穷状态机Petri网最早由德国 Carl Adam Petri在博士伦文中提出。适用于并发、异步、分布式软件系统规格分析与形式化的方法。用于确定系统中隐含的定时问题的一种有效技术。一个分为:位置Petri网、谓词Petri网、有色Petri网、计时Petri网。形式化描述: C=(P, T, I, O) 有限位置集合 有限迁移集合()I:T→P∞为输入函数O:T→P∞为输出函数P为{P1,P2,P3,P4}T为{t1,t2}I(t1)={P2,P4}I(t2)={P2}O(t1)={P1}O(t2)={P3,P3}?P2P1t2P3P4. .t1..Petri网行为性质结构性质Vienna Development Method(维也纳开发方法)由IBM 的维也纳开发实验室在1973年左右提出是一种基于形式语义学的软件开发方法 通过一介谓词逻辑和已建立的抽象数据类型,描述每个运算或函数的功能1996年ISO制定了VDM-SL,是目前应用最广泛的形式化语言之一。VDMVDM组成typestype definitionsvaluesvalue definitionsfunctionsfunction definitionsoperationsoperation definitionsstatestate name of state definitionsend基础类型Basic TypesboolBoolean datatypefalse, truenatnatural numbers (including zero)0, 1, 2, 3, ...nat1natural numbers (excluding zero)1, 2, 3, 4, ...intintegers..., -3, -2, -1, 0, 1, 2, 3, ...ratrational numbersa/b, where a and b are integers, b is not 0realreal numberscharcharactersA, B, C,tokenstructureless tokensAthe quote type containing the value AtypesMark={0,…100};IdNumber=tonken;Grade=A|B|C|D|E|Fvaluesmaxtermwork: ?学生成绩统计?stateGrading oftermwork: total: grades: Inv mk_Grading(tw,tt,gr)Dom tw=dom tt=dom gr Inv mk_Grading(-,tt,-)endoperationsLarchLarch 起源于1973年10月, Steve Zilles所提出的集合操作三个简单公理.经过Guttag、Wing发展,于1985年发布了关于Larch的详细描述。1990年出现支持Larch的软件工具《 Larch :Languages and Tools for
文档评论(0)