计算机毕业论文

计算机软件可靠性设计

时间:2020-12-01 11:18:23 计算机毕业论文 我要投稿

计算机软件可靠性设计

  本文介绍了软件可靠性设计的基本概念,软件故障产生的机理,软件质量的可靠性参数,并且着重介绍了软件可靠性设计策略。

  摘要: 计算机技术的高速发展,致使武器装备系统和自动化指挥系统等军用系统对软件的依赖程度越来越高。软件在武器装备、航天航海等要求高可靠性的系统中扮演着越来越重要的角色。因此,军用软件可靠性就成为确保军事系统质量的瓶颈和关键。软件可靠性是软件质量中最为重要的一项属性,软件可靠性设计技术是确保和提高软件质量的重要手段。

  关键词:计算机软件;可靠性设计;参数

  随着科学技术的不断进步,软件可靠性成为我们关注的一个理由,软件系统规模越做越大越复杂,其可靠性越来越难保证。在许多项目开发过程中,对可靠性没有提出明确的要求,开发商(部门)也不在可靠性方面花更多的精力,往往只注重速度、结果的正确性和用户界面的友好性等,而忽略了可靠性。

  1 软件可靠性设计的基本概念

  1.1 软件及软件故障

  软件的可靠性工作也是贯穿于软件的整个寿命周期的。软件的寿命周期,是指从软件任务的提出一直到它完成使命,因陈旧而被废弃为止的整个时间历程,这个寿命周期包括了提出要求/规格说明、设计、实现、检验、维护等五个阶段,前四个阶段为开发期,维护阶段为使用期。

  1.2 软件可靠性

  关于软件可靠性的定义是什么。较多的人认为软件的可靠性与“概率统计的可靠性”的概念密切相关,软件的可靠性是软件在规定的条件下、规定的时间周期内执行所要求功能的能力。软件的可靠度是软件在规定的条件下、规定的时间内不引起系统故障的概率,该概率是系统输入与系统使用的函数。

  2 软件质量的可靠性参数

  2.1 系统平均不工作间隔时间(MTBSD或MTBD)。设d为软件正常工作总时间,d为系统由于软件故障而停止工作的次数,则定义TBSD=Tv/(d+1)。式中,TBSD—MTBSD;Tv—软件正常工作总时间(h);d—系统由于软件故障而停止工作的次数。MTBSD反映了系统的稳定性。

  2.2 系统不工作次数(一定时期内)。由于软件故障而停止工作,必须由操作者介入再启动才能继续工作的次数。

  2.3 可用度A。设Tv为软件正常工作总时间,TD为由于软件故障使系统不工作的时间,则定义A=TV/(TV+TD)。它反映了系统的稳定性,亦可表达为A=TBD/(TBD+TDT)。式中,TBD—MTBD(h),TDT—平均不工作时间,以下简称MDT(h)。对一般生产用计算机系统,要求A≥99.8%;银行计算机系统,要求A>99.9%。

  2.4 MTTR。它反映了出现软件缺陷后采取策略的效率。在一定程度上也反映了软件企业对社会服务的责任心。对于在线系统而言,MTT只要求不超过2天,变差系数应小于1。一般的MTTR也应小于7天,变差系数小于1。

  2.5 平均不工作时间(MDT)。即由于软件故障,系统不工作的均值。对在线系统而言。MDT要求不超过10min一般的MDT<30min。

  2.6 初期故障。一般以软件交付使用后的三个月内为初期故障期。初期故障率的大小取决于软件设计水平、检查项日数、软件规模、软件调试彻底与否等因素。

  2.7 偶然故障率。一般以软件交付给使用方四个月后为偶然故障期,偶然故障率以每1000h的故障数为单位,它反映了软件处于稳定状态下的质量。

  2.8 使用方误用率。使用方不按照软件规范及说明等使用造成的错误叫使用方误用。在总使用次数中,使用方误用次数占的百分率叫使用方误用率。造成使用方误用的理由之一是使用方对说明理解不深,操作不熟练,但也有可能是说明没有讲得很清楚而引起误解。

  2.9 用户提出补充要求数。这反映软件未能充分满足用户的需要,有时要求是特定用户的特定要求,生产方为了更好地为社会服务,应该尽力满足他们的要求。

  2.10 处理能力。处理能力有各种指标。例如可用每小时平均处理多少文件、每项工作的反应时间多少秒等来表示,根据需要而定。在评价软件及系统的经济效益时需用这项指标。

  3 软件可靠性设计策略

  从软件可靠性的概念可知,软件的缺陷可以导致错误并造成系统的.故障,因此,缺陷是一切错误的根源。软件的缺陷来自软件寿命周期的各个阶段,因此应想方设法在寿命周期的各个阶段减少缺陷。缺陷在一定的环境条件下暴露,导致系统运转中出现错误。软件的错误概括地说可能由规范(要求/规格说明)、软件系统设计及编码过程产生。

  3.1 要求/规格说明

  只要在规格说明与用户要求说明之间存在误差,就会产生规范错误。规范它不仅规定程序的要求,还规定所用的结构、研制及试验中需要的程序试验要求和文件,以及程序语言、输入和输出的基本要求。通过对这些方面作出适当的规定,就可以建立使产生错误的可能性最小、并保证错误能被发现和改正的程序生成的结构。

  3.2 软件设计

  软件系统是根据要求/规格说明(规范)设计的,通过设计将确定程序结构、测试点及限制等。为设计出可靠的软件,需要在考虑诸如机型、资源、语言、模型及数据结构等实际理由的基础上,采取一些有效的设计策略。

  3.2.1 “自顶向下设计”法。这种设计策略是处理分级理由最有效的设计技术。它是以一个系统功能的最抽象描述开始作为最高层次;从它出发,设计一系列较详细的子系统。由这些子系统来完成员高层次的功能;再以每个子系统为基础,设计出一系列更详细的子系统,等等。如此逐次向下作功能分解,直到最低层次的子系统能够比较方便用计算机程序设计语言来实现为止。自顶向下设计策略的价值在于,它在设计的同时,指出了复杂性不同的处理层次,而且各种设计要素之间的关系是比较清楚的。通过这样一种结构化构造途径,有可能在早期就洞察出设计理由,从而避开了不必要地先去考虑较低层次的细节理由。

  3.2.2 结构化程序设计。软件结构对软件的可靠性具有重要的作用。结构良好的程序易于编写、检查,便于查错定位、修改和维护。结构化程序设计把程序要求分成若干独立的、更小的程序要求或模块化的功能要求,分别提出各自的要求/规格说明,并注明是如何与程序中的其他部分接口,还必须指出所有的输入与输出,以及测试要求。对每一个更小的程序和模块,可分别编程和测试,使得模块间高度分离。