您的位置:网站首页 > app开发 > 郑州小程序开发 > 正文

编程安全与安全编程

作者:知网科技 日期:2020/6/17 人气:
标签:

有鉴于现在的网络安全,信息安全等问题越来越受到社会的重视,郑州软件公司今天来和大家来谈谈郑州软件开发中的安全编程问题。

   
        提高软件质量和可靠性的技术大致可分为两类:避开错洪技术,即在开发的过程中不让差错潜入软件的技术;容错技术,即对某些无法避开的差错,使其影响减至最小的技术。避开错误技术是进行质量管理,实现产品应有质量所不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术.,但是,无论使用多么高水平的避开错误技术,乜无法做到绝无错溟,这就需要采用容锵技术。实现容错的主.要手段是冗余和防错程序设计。

      

        冗余程序设计

        冗余是改善系统可靠性的一种重要技术。住硬件系统中,采用冗余技术是指提供额外的元件或系统.使其与主系统并行工作。这时有两种情况:①让连接的所有元件都并行工作,当有一个元件出现故障时,它就退出系统,由冗余元件接续它的工作,维护系统的运转,有时时将这种结构称为自动重组结构,②系统最初运行时.由原始元件工作.当该兀件发生故障时.…由检测线路(有时由人工完成)把备用部件接上(或把开关拔向备用元件),使系统继续运转。第一种情况称为并行冗余,也称热备用或主动冗余;第二种情况称为备用冗余,也称冷冗余或被动冗余。

    、
        在软件系统中,采用冗余技术是指要解决一个问题必须设计出两个不同的程序,包括采用不同的算法和设计,而且编程人员也应该不同。例如,求解一个二次方程的实数根,可以在第一个程序中使用二次求根公式,而在第二个程序中采用牛顿一拉菲逊数值逼近法。如果两个程序的执行结果都在预定的“计算误差”之内,则可任取其中一个结果或取二者的平均值作为正确答案。若两个程序的执行结果不一致,则可使用“错误检测系统”加以纠正。如果在同时解同一个问题时采用三种或三种以上不同方法进行程序设计,则其运行结果的正确答案可采纳多数一致的那个答案,这种技术称为“多数逻辑”或“多数表决”

   
        采用冗余程序设计表面看可使开发费用增加到单个程序设计的两倍,而实际上可能小于1.5倍。因为在程序设计中对于软件的描述、软件的设计和大多数测试以及文档编制的费用则由两个程序分担了。冗余程序设计所带来的副作用是由于文本的增加而带来的存储空间的增加,以及运行时间的延长,解决的办法是采用海量存储设备和覆盖技术,并且只在关键部分采用冗余计算,以使附如费用减少到最低程度。

      

  
        防错程序设计

       在编码过程中,总会或多或少地产生一些错误,这些错误有些是属于设计阶段所隐藏下来的,有些则是在编码中产生的。为了避免和纠正这些错误,可在编码过程中有意识地在程序中加进一些错误检查的措施,这就是防错程序设计的基本思想。防错程序设计可分为主动式和被动式两种。

      1.主动式防错程序设计

      主动式防错程序设计是指周期性地对整个程序或数据库进行搜查,或在空闲时搜查异常情况。主动式程序设计既可在处理输入信息期间使用,也可在系统空闲时间或等待下一个输入时使用。以下所列出的检查均适合于主动式防错程序设计。

     (l)内存检查。如果在内存的某些块中存放了一些具有某种类型和范围的数据,则可对它们做经常性的检查。

    (2)标志检查。如果系统的状态是用某些标志指示的,可对这些标志做单独的检查。

    (3)反向检查。对于有些从一种代码翻译成另一种代码或从一种系统翻译成另一种系统的数据或变量值,可以采用反向检查,即利用反向翻译来检查原始值的翻译是否正确。

    (4)状态检查。对于某些具有多个操作状态的复杂系统,若用某些特定的存储值来表示这些状态,则可通过单独检查存储值来验证系统的操作状态。

    (5)连接检奎。当使用链表结构时,可检查链表的连接情况。

    (6)时间检查。如果已知道完成某项计算所需的最大时间,则可用定时器来监视这个时间。

    (7)其他检查。程序设计人员可经常仔细地对所使用的数据结构,操作序列和定时,以及程序的功能加以考虑,从中得到要进行检查的启发。

    

     2.被动式防错程序设计

    被动式防错程序设计思想是指必须等到某个输入之后才能进行检查,也就是达到检查点时才能对程序的某些部分进行检查。

    在被动式防错程序设计中所要进行的检查项目如下:

     (l)来自外部设备的输人数据,包括范围、属性是否正确;

    (2)由其他程序所提供的数据是否正确;

    (3)数据库中的数据,包括数组、文件、结构、记录是否正确;

    (4)操作员的输入,包括输入的性质,顺序是否正确;

    (5)栈的深度是否正确;

    (6)数组界限是否正确;

    (7)表达式中是否出现零分母情况;

    (8)正在运行的程序版本是否是所期望的(包括最后系统重新组合的日期);

    (9)通过其他程序或外部设备的输出数据是否正确。

    在防错程序设计中究竟应采用哪种方法取决于具体情况。如在商业程序中,不管是人工记账,还是计算机记账,都可以采用交叉求和的方法,包括决算跟踪在内的其他技术也经常使用;在科学工程程序中,对所有解方程的程序,可以把获得的解代人原方程以检查该解是否正确。

相关内容:软件开发之对象、关系模型与对象、行为模型 


(())
顶一下
参与讨论
姓名: 验证码:看不清楚,换一个
最新评论

联系我们

软件开发: 15838307519(司经理)

网络营销: 13676968269(王经理)

网络建设: 13073737771(郭经理)

24小时服务电话: 0371-56683330

了解更多APP开发

+好友