ch软件工程七编码设计.ppt

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

以上讨论的所有保护技术都是被动式保护技术,因为必须等到某个输入之后才能开始检查。而主动式保护技术则既可在处理输入信息期间使用,也可在系统空闲或等待下一次输入时使用。 几种应用主动式保护技术的例子。 (1)存储器范围检查 如果只在存储器的某些块中存放了某种类型和范围的数据,则可经常检查这些条件。 (2)标志验证 如果采用标志来指示系统的状态,则可经常对它们作独立的检查。 (3)逆翻译 有时必须将数据或变量值从一种代码或系统翻译为另一种代码或系统,可以利用反变换来检查原始值的翻译是否正确。 (4)状态验证 在多数情况下,复杂系统由多个操作状态,它们可以采用某些特定的存储值来表示。 如果能够独立的验证这些状态,就可以进行检查。 (5)连接检查 使用链表结构时,可以对其连接情况进行检查。 (6)时间溢出检查 加入已知某个计算所需的最大时间,则可利用定时器来监视该计算。 (7)其他技术 经常仔细考虑所使用的数据结构、操作序列和定时以及程序的功能,往往能启发我们提出其他主动式保护技术。 4 冗余编程 冗余(redundant)是改善系统可靠性的一种重要技术。对于硬件,即提供额外的元件或系统,使其与原始系统并行工作。在某些情况下,其连接是使所有的元件并行工作。 如果某一个硬件失效它就退出,由冗余元件维持系统的运转,在另外一些情况下,只有在线上的(最初)元件在工作,当出现故障时,由检测电路(有时是人)把开关拨向备用元件。前一种原理上称并行冗余,后一种称备用冗余。有时也称热备用和冷备用或主动式冗余和被动式冗余。 对于软件,某些概念是一致的,而另一些概念则必须修改。 若采用两个具有同样程序文本的计算机来实现软件冗余,得到的仅仅是冗余的硬件,而非冗余的软件。 如果在两台计算机上程序是一样的,则软件上的任何错误都会在两台机器上导致同样的故障。 要想采用冗余软件,就必须设计出两个不同的程序。不仅采用不同的算法和设计来实现同一个计算,而且编程人员也应该不同。 假设要计算二次方程的实根,则可以在一个程序中使用二次求根公式,而在第二个程序中采用牛顿-拉菲逊(Newton-Raphson)数值逼近法。 如果两个结果在额定的“计算误差”范围内是一致的,则可以采用任何一个结果或两个结果的平均值作为答案,并且打印出来。若结果不一致,而且不知道那一个正确,则可采用错误监测系统来纠正。 如果采用三种以上的计算,则可采纳多数答案。这种技术称为多数逻辑或表决。 把一个程序制成两个冗余拷贝的开发费用表面上似乎应为单个文本的两倍,但实际费用可能还不到1.5 倍。因为软件的描述、设计和大部分测试以及文档编制的费用由两个文本分担了。 冗余编程的副作用:由于文本增加而带来的存储空间的增加,以及运行时间的延长。 为此可以采用海量存储器和覆盖技术,并仅仅在关键部分采用冗余计算,这样可使附加费用减到最小。 本章结束! 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * * * 编码设计 (主讲 赵元哲) 西安电子科技大学研究生院课程 程序设计语言的选择 程序设计途径与编写程序的风格 保护性编程 冗余编程 1 程序设计语言的选择 翻译过程 在编程步骤中,要把详细设计的表达式翻译成编程语言的构造,编译器接受作为输入的源代码,源代码生成作为输出并从属于机器的目标代码(obj),然后编译器把输出目标代码进一步翻译成机器代码(它是真正指令),由CPU执行。 程序设计的语言分类: 基础语言(BASIC,FORTRAN,COBOL,ALGOL) 结构语言(PL/1,PASCAL,C.ADA) 专用语言(FORTH,PROLOG,LISP) 系统实现语言(C) 语言分类

文档评论(0)

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

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

1亿VIP精品文档

相关文档