软件工程与实践电子教案刘竹林 软件工程与实践10 2.pptVIP

软件工程与实践电子教案刘竹林 软件工程与实践10 2.ppt

  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.4 程序设计算法与效率 10.4.1 程序设计算法 任何事情都有一定的步骤,为解决一个问题而采取的方法和步骤,就称为算法。 算法的特点是: (1)有穷性,一个算法应包含有限的操作步骤而不能是无限的; (2)确定性,算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的; (3)有零个或多个输入,有一个或多个输出; (4)有效性,算法中每一个步骤应当能有效地执行,并得到确定的结果。 例:求1×2×3×4×5。 最原始方法: 步骤1:先求1×2,得到结果2。 步骤2:将步骤1得到的乘积2乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。 改进的算法: S1: 使t=1 S2: 使i=2 S3: 使t×i, 乘积仍然放在在变量t中,可表示为t×i→t S4: 使i的值+1,即i+1→i S5: 如果i≤5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。 10.4.2 程序的运行效率 1. 效率是一个性能要求, 目标在需求分析中给出。 2.追求效率建立在不损害程序可读性或可靠性基础之上, 要先使程序正确, 再提高程序效率。 3.尽量选用好的算法。 4.仔细研究循环嵌套,确定是否有语句可以从内层移到循环体外。 5.尽量避免使用多维数组。 6.尽量避免使用指针和复杂的表。 7.充分利用语言环境提供的函数。 8.使用有良好优化特性的编译程序,以生产高效的目标代码。 10.5 容错程序设计 提高软件质量和可靠性的技术大致可分为两类: (1)避开错误技术,即在开发的过程中不让差错潜入软件的技术; (2)容错技术,即对某些无法避开的差错,使其影响减至最小的技术;避开错误技术是进行质量管理,实现产品应有质量所必不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术。 容错系统的设计过程包括以下设计步骤: (1)按设计任务要求进行常规设计,尽量保证设计的正确。 (2)对可能出现的错误分类,确定实现容错的范围。 (3)按照成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏蔽。 (4)分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程度,则应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。 10.5.1 冗余程序设计 1. 结构冗余 (1)静态冗余:无需对错误进行处理,在运行时也不必要对模块进行处理,而使用“屏蔽”错误的方法使错误不出现。 (2)动态冗余:备用多个模块,在系统运行出错后才运行冗余模块。 。 (3)混合冗余:结合静态冗余和动态冗余的优点来进行冗余。 2.信息冗余。 3.时间冗余。 4.冗余附加技术 有两种情况: (1)并行冗余(也叫主动冗余)。 (2)备用冗余(也叫被动冗余)。 10.5.2 防错程序设计 1.主动式防错程序设计 主动式防错程序设计是指周期性的对整个程序或数据库进行搜查或在空闲时搜查异常情况。 (1)内存检查 (2)标志检查 (3)反向检查 (4)状态检查 (5)连接检查 (6)时间检查 (7)其它检查 2.被动式防错程序设计 被动式防错程序设计思想是指必须等到某个输入之后才能进行检查,也就是达到检查点时,才能对程序的某些部分进行检查。 (1)来自外部设备的输入数据,包括范围、属性是否正确; (2)由其它程序所提供的数据是否正确; (3)数据库中的数据,包括数组、文件、结构、记录是否正确; (4)操作员的输入,包括输入的性质,顺序是否正确; (5)栈的深度是否正确; (6)数组界限是否正确; (7)表达式中是否出现零分母情况; (8)正在运行的程序版本是否是所期望的(包括最后系统重新组合的日期); (9)通过其它程序或外部设备的输出数据是否正确。 10.6 程序说明书 10.6.1 C/S结构 1.程序总体结构描述: (1) 主程序名称。 (2) 系统中划分的函数或者过程名清单。 2.模块内部描述 给出主程序和每个模块具体实现功能的方法。 10.6.2 . B/S 结构 对于面向对象的程序,程序说明书的内容有: 1.程序总体结构描述: (1) 主程序名称。 (2) 系统中划分的类名清单。 2.类结构描述 给出主程序和每个类的结构。 再见!!! 所在文件的物理位置 所在的模块名 函数或者过程名 序号 功能描述 函数或者过程名 模块号 所在的文件物理位置 所在文件的文件名 类名 类的序号 方法名称和描述 属性名称 类名 序号

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档