第10章净室软件工程.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文档。上传文档
查看更多
第10章净室软件工程.ppt

基本概念 净室软件工程(Cleanroom software engineering)是一种在软件开发过程中强调在软件中建立正确性要求的方法。 与传统的分析、设计、编码、测试和调试的周期观点有所不同, “第一次就将事情做正确”是软件工程最重要的哲学。 净室软件工程是这样一个过程:它强调在程序构造开始前进行正确性的数学验证,并且将软件可靠性认证作为软件测试的一部分。 其底线是极低的故障率,这是使用非形式化方法难于或不可能达到的。 净室策略 净室方法使用增量过程模型的专业版。一个“软件增量的流水线”由若干小的、独立的软件团队开发。每当一个软件增量通过认证,它就被集成到整体系统中。因此,系统的功能随时间增加。 功能规格说明 不管选择哪种分析方法,操作分析原理总是适用的。对数据、功能和行为建模,并对结果模型进行分解,提供更进一步的详细信息。总体目标是从捕获问题实质的规格说明(模型)移向提供重要实现细节的规格说明。 黑盒规格说明 黑盒规格说明描述一种抽象、触发和反应。函数f被应用到输入(触发)S 的序列S*,并将它们变换为输出(反应)R。对于简单的软件构件,f 可以是一个数学函数,但一般情况下,使用自然语言(或形式化规格说明语言)描述f。 状态盒规格说明 一个状态是某个可观查到的系统行为的模型。当进行处理时,一个系统对事件(触发)作出反应,从当前状态转换到某一新的状态。当进行转换时,可能发生某个动作。状态盒使用数据抽象来确定到下一个状态的转换、以及状态转换后将要发生的动作(反应)。 清晰盒规格说明 清晰盒规格说明是与过程设计及结构化编程紧密关联的。实质上,状态盒中的子函数g 被实现g 的结构化编程结构所替代。 净室设计 净室软件工程中使用的设计方法主要运用结构化程序设计的原理。但是,在这里结构化程序设计被应用得更严格。 基本的处理函数(在规格说明的早期求精中描述)被精化,其方法是“将数学函数逐步扩展为逻辑连接词(如,if-then-else)和子函数构成的结构,这种扩展一直进行下去,直到所有标识出来的子函数可以被用于实现的程序设计语言直接表达”。 设计求精与验证 每个清晰盒规格说明代表了一个完成状态盒转换所需的过程(子函数)的设计。 对清晰盒规格说明,使用结构化程序设计结构和逐步求精。 一个程序函数f 被细化为子函数g 和h的序列,这些又被进一步细化为条件结构(if-then-else 和do-while)。 进一步的求精给出了连续的逻辑细化。 设计验证的优点 对清晰盒设计的每一步求精进行严格的正确性验证有许多显著的优点: (1)它将验证简化为一个有限的过程。在清晰盒中,以嵌套的、顺序的方式组织控制结构,这就自然地定义了一个层次,该层次显示了必须被验证的正确性条件。 (2)再怎么强调将验证简化为有限过程对质量产生的正面效果都不过分。除了那些最微不足道的程序,即使所有程序都具有无限数目的可执行路径,也可以在有限步骤内对它们进行验证。 净室测试 净室测试的策略在根本上不同于传统测试方法。传统测试方法导出一组测试用例发现设计和编码错误; 净室测试的目的是:通过证明用例的统计样本的成功运行来确认软件需求。 认 证 在净室软件工程方法中,认证意味着可以描述每个构件的可靠性(用平均失效时间MTTF 来度量) 可认证的软件构件的潜在影响远远超出了单个净室项目的范围,可复用的软件构件可以和它们的使用场景、程序触发、以及概率分布一起存储。 在描述的使用场景和测试体系下,每个构件都具有一个经过认证的可靠性。 例:过程设计的正确性验证:设计并验证一个小的程序,该程序对某给定的整数x,找出其平方根的整数部分y。   定义入口和出口条件。为了证明设计的正确性,需要证明图中表示的条件init、loop、cont、yes 和exit 在所有情形下都是正确的。 1.条件init 要求[x≥0 and y=0]。基于问题的需求,假定入口条件是正确的。因此,init 条件的第一部分x≥0 是满足的。在流程图中,在init条件前的语句设置y=0,因此,init 条件的第二部分也是满足的,因此,init为真。 2.条件loop 可能以两种方式之一出现:(1)直接从init(此时loop 条件被直接满足),或(2)通过穿过条件cont 的控制流。因为条件cont与条件loop相同,因此,不管从哪条路径到达它,条件loop 都为真。 3. 条件cont:只有在y值被递增1后,才能遇到条件cont 。另外,只有在条件yes也为真时,才能调用到达条件cont 的控制流路径。因此,如果(y+1)2≤x,则y2≤x,条件cont成立。 4.条件yes 在如图所示的条件逻辑中被测试,因此,当控制流沿着所示的路径移动时,条件yes一定为真。

文档评论(0)

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

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

1亿VIP精品文档

相关文档