软件可靠性工程范文_第1页
软件可靠性工程范文_第2页
软件可靠性工程范文_第3页
软件可靠性工程范文_第4页
软件可靠性工程范文_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上软件可靠性工程1. 软件可靠性定义1.1. 广义是指一切旨在避免、减少、处理、度量软件故障(错误、缺陷、失效)的分析、设计、测试等方法、技术和实践活动。于是有诸多相关术语,如软件可靠性度量、软件可靠性设计、软件可靠性建模、软件可靠性测试、软件可靠性管理等。1.2. 狭义指软件无失效运行的定量度量,尤其是那些面向用户的定量度量。主要有:n 软件可靠度:表示软件在规定的运行环境中和规定的运行时间内无失效运行的机会。软件无失效运行的机会多以概率度量,但也可以模糊数学中的可能性加以度量,有时也在数据域上将软件可靠度表示为软件成功执行一个回合的概率。n 软件失效强度:其物理解释

2、是单位时间内软件发生失效的机会。在概率范畴内,它与软件可靠度有明确的数学关系(R(t)1F(t),R(t)为可靠度,F(t)为失效强度)。n 软件平均失效时间(MTTF):表示软件投入运行到出现一个新失效的时间。上述度量与硬件可靠性中的相应概念本质上是一致的。“失效”是指程序的功能在某方面没有达到用户的需求。“没有像用户需求的那样工作”是一个很广的定义。因此,可靠性结合了与程序执行相关联的所有属性。例如,它包括正确性、安全性和可使用性的操作方面,以及对用户的友好性。请注意,安全性实际上是软件可靠性的一个特殊子类。可靠性不包括可移植性、可修改性或文档的可理解性。可靠性是面向用户的而不是面向开发人

3、员的。可靠性与操作有关,而不是与程序的设计有关,因此可靠性是动态的,而不是静态的。可靠性考虑问题出现的频率,直接与操作经验和在经验中错误的影响相关。因此,可以很容易地将可靠性与成本联系起来。可靠性很适合检查发展趋势的重要性、设定目标和预测什么时候可以达到目标。可靠性使人们可以使用同样的术语对硬件和软件的系统可靠性进行分析,而在真实系统中硬件和软件都同时存在。所以,可靠性度量比错误度量要有用得多。2. 软件可靠性工程的研究范围软件可靠性工程涉及以下四方面活动和有关技术:2.1. 软件可靠性分析进行软件可靠性的需求分析、指标分配、故障树分析、失效模式和影响分析、软件开发过程中有关软件可靠性的的特性

4、分析、等。2.2. 软件可靠性设计和实现进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计、软件可靠性增长、等。2.3. 软件可靠性测量、测试和评估在软件生存周期各阶段进行有关软件可靠性设计、制造和管理方面的属性测量,进行基于软件运行剖面的测试用例随机输入的软件测试、软件可靠性预计、软件可靠性估计、软件可靠性验证、等。2.4. 软件可靠性管理确定影响软件可靠性的因素,制定必要的设计和实现准则以及对软件开发各阶段软件可靠性相关的过程和产品的要求,依据上述有关测量数据和分析结果控制和改进开发过程,进行风险管理(不仅考虑安全性等技术风险,而且考虑进度和经费方面的风险),改进费用效益关系,改进开

5、发过程,对采购或重用的软件进行可靠性管理,等。实施软件可靠性工程要解决三个问题,即软件可靠性指标的确定与分配,软件可靠性要求的实现和软件可靠性的验证。上面提到对有关属性的测量,涉及对软件可靠性测试、评估、预计、估计。3. 软件可靠性工程的思想软件可靠性工程之所以有效,在于它运用了两个思想:第一,通过定量描述产品的使用方式,可以更有效地开发产品的功能并且使用这些信息,以便:n 将资源精确地集中到最常用和最关键的功能上。n 使测试工作真实地反映实际条件。第二,软件可靠性工程平衡用户对可靠性、开发时间和开发费用的需求,从而更加有效。为此,软件可靠性工程要像对开发时间和开发费用设置定量目标那样,对可靠

6、性也设置定量目标,要制定策略来达到这些目标。最后,软件可靠性工程在测试过程中跟踪产品的可靠性,并用来作为产品是否可以发布的标准。通过软件可靠性工程,你可以交付“正好合适”的可靠性的产品,并且既避免了不必要的资金和时间成本,又避免了发生由不够可靠的产品导致的用户不满和问题。4. 软件失效的根源与机理软件失效的根源在于设计错误,而硬件失效的主要根源通常在于物理变质。然而,为软件可靠性开发的概念和理论确实可以应用于任何设计活动,包括硬件设计。一旦软件(设计)缺陷被适当地修复,通常就被永久性修复了。失效通常只发生在当程序(设计)运行在并非它所开发和测试时面向的环境中的情况。尽管制造过程也可能影响物理组

7、件的质量,但是软件(设计)的复制过程很简单,并且其质量水平很高。软件失效机理可描述为:软件错误>软件缺陷>软件故障>软件失效。各自具体含义为:n 软件错误(error):在可以预见的时间内,软件仍将由人开发。软件错误是指在软件开发过程中出现的不希望或不能接受的人为错误,其结果是导致软件缺陷的产生。n 软件缺陷(defect):软件缺陷是指存在于软件(程序、文档、数据)中的那些不希望或不可接受的偏差,如少一逗点、多一语句等,其结果是软件运行于某一特定条件时出现故障。当软件特指程序时,软件缺陷(defect)与软件(程序)污点(bug)同义。n 软件故障(fault):软件故障是

8、指软件运行时出现的一种不希望或不可接受的内部状态,譬如,软件处于执行一个多余的循环时,我们说软件出现故障。此时若无适当措施(容错)加以及时处理,便产生软件失效。n 软件失效(failure):软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。5. 软件可靠性工程测试分类包括两种类型:可靠性增长测试和确认测试。这两种类型与不同测试阶段无关,例如单元测试、子系统测试、系统测试或测试,而是与测试的目标相关。可靠性增长测试的目标是找到并清除错误。5.1. 可靠性增长测试包括特性测试、负载测试和回归测试。n 在特性测试中,操作都是独立运行的,运行场地环境的影响和交互作用被减小到最低程度。有

9、时通过在操作之间重新初始化系统来减小交互作用。n 负载测试是指同时运行很多操作,并且是以相同的频率,在其他现场将会出现的相同环境条件下。这样就可以产生与在现场中可能出现的情况相同的交互作用和环境条件的影响。验收测试和性能测试都属于负载测试。n 回归测试是在系统发生重要改变之后进行的,包括一些(通常是随机选取的)或全部特性测试。在回归测试中应该包括所有关键操作。5.2. 确认测试确认测试不包括调试过程,不会试图通过引起定位错误后再清除错误来解决所发现的失效。被测系统必须是稳定的,不能出现任何改变,不管是由于增加了新特性还是由于错误的清除。通过确认测试,得到一个二选一的结论:或者接受这个软件,或者

10、拒绝它并把它退回给提供商。在确认测试中,所需要的失效数据样本的数量要少得多。事实上,如果无失效运行的时间足够长,那么可以在出现任何失效之前就作出结论。通常只在负载测试(不是特性或回归测试)中使用确认测试。6. 软件可靠性增长模型软件可靠性增长建模实施于软件测试阶段,主要由软件开发人员完成,旨在从可靠性角度判断软件何时可以停止测试,以交付用户验收。在软件测试阶段,被发现的缺陷不断被剔除,因而可靠性呈增长趋势。软件可靠性增长建模的一个基本假设是测试用例选取代表着软件实际运行环境(剖面)。目前采用的主要方式是将软件视为黑箱功能系统,针对测试过程中收集的软件可靠性数据运用概率或模糊软件可靠性模型加以建

11、模、分析,以获得软件可靠性定量指标的估计值或预测值。软件可靠性增长模型主要分以下三类。6.1. 缺陷播种模型假设在软件内部预先设置一些缺陷,再通过分析测试过程中发现的预先设置的缺陷数目占发现的软件缺陷总数之比例,以估计软件缺陷残留数。目的是直接用程序中现存的错误数的多少来反映程序的可靠性。Ø 优点:模型的结果直观。Ø 缺点:不能反映可靠度与时间的关系。6.2. 基于数据域模型认为软件的运行过程由一系列基本执行过程(称为回合)顺序组成,软件可靠性则由一个回合成功执行的概率来表示。目的是建立软件的可靠性与输入数据的联系,用程序运行中的失效次数与成功次数的比例作为软件可靠性的度量

12、。Ø 优点:概念清晰易懂,易于应用。Ø 缺点:模型与时间度量没有直接的关系,在实现硬软件系统综合时有一定困难,必须经过附加的数学处理,才能用时间尺度表示可靠度。6.3. 基于时间域模型以时间作为基准,研究软件的可靠性特征随时间变化的规律。它关注的是一定时间内软件成功运行的机会,在时间域内度量软件可靠性。目前使用得最多的是基于时间域模型。这类模型按其对数据的需求,可分为两个子类:l 失效时间间隔模型(TBF模型):模型所使用的数据使失效时间间隔,分析方法建立在以失效时间间隔服从特定的概率分布的基础上。l 失效计数模型(FC模型):模型所使用的数据是一定的时间间隔中的失效数,分

13、析方法大多建立在Poisson过程理论的基础上。n 优点:模型建立的基础及模型得出的结果,完全符合软件可靠性定义的要求,且与硬件可靠性的概念兼容,可以满足硬、软件系统综合分析的要求。因此备受青睐,是最重要、品种最多的模型。n 缺点:假设的条件很高,很难完全满足,影响了模型的准确性和人们对其的信心。n 前景:经过20多年的研究、发展,情况有了很大改善,加上模型的数量多,选择余地大,因此应用前景广阔。7. 软件可靠性模型的另一种分类(随机性分类法)8. 软件可靠性确认(验收)模型与硬件可靠性验收的情形类似,软件可靠性验收模型与软件可靠性验收的试验方案一 一对应,其作用是根据软件可靠性验收的试验结果

14、(收集的数据)给出软件可靠性的定量估计值,以便从可靠性角度判断是否接受该软件,在我们谈论具体的软件可靠性验收模型时,实际上包含着相应的试验方案。目前已提出的软件可靠性验收模型有Nelson模型、定时截尾寿命验收模型、序贯寿命验收模型和模糊模型。9. 许多软件可靠性模型有下列要素的解析描述n 任何时间点所经历的平均失效数n 一段时间间隔内的平均失效数n 任何时间点的失效强度n 失效间隔的概率分布好的软件可靠性模型应该具有一些重要特性:n 给出未来失效行为的好的映射n 计算一些有用的量n 简单n 可广泛应用n 基于可靠的假设10. 评价可靠性模型的准则通常认为,评价软件可靠性模型对一个给定项目的支

15、持时应使用下列准则:n 预计有效性:每个模型的预计质量方面的性能和正确性。在这方面的度量是,准确性、趋势、偏移和噪声。n 容易进行参数测定:测定每个模型的参数所产生的资源需求和影响,即:模型所需要的参数数量以及估计这些参数的难度。n 假设的质量:该准则是指假设与真实情况的接近程度,以及对特殊环境的适应性。n 能力:能力指模型对与可靠性有关的量的估计能力如何。n 适用性:对软件在测试和运行环境中的演变和修改的处理能力。n 简单性:模型建模原理、数据采集、程序实现和确认的容易程度。n 对噪声的不敏感性:尽管在输入数据和参数中有小的差别,模型仍能产生结果,同时对显著差别又不丢失相应的能力。11. 软

16、件可靠性模型的假设存在的问题从许多假设来看,有很多是与软件开发实际不相符合的,许多软件工程师与软件管理人员无法接受。n 许多现存模型(特别是那些早期的软件可靠性模型),考虑到排错引入新的错误会使问题复杂化,于是假设排错不引入新的错误。这样做的结果虽然使理论上的处理简单了,但与实际情况相距太远。n 软件的开发靠人完成,则排错问题要人完成,人类行为的不可预测性无论在开发还是排错,同样要表现出来。事实上,由于排错时的某些处置失当,往往会产生许多副作用,引入一些始料不及的新错误,是十分自然的。这也正好解释了我们在对软件中出现的错误进行观察记录时,为什么经常会大幅度地振荡的原因。n 引入新错,另一方面的

17、原因还在于软件产品各模块(指结构化的软件产品而言)间的逻辑关系错综复杂、互为因果,故而使得局部的某些改动甚至可能产生牵涉全局性的许多问题。n 随后的一些模型,虽然允许可以引入的错误数为1、2或其它,正是由于看到了这一问题,才作了一些调整变动,但仍未能从根本上解决问题。n 关于测试时的输入空间“覆盖”使用空间的假设,也是不现实的。为了尽量保证测试能充分反映出软件产品将来所有可能的使用情况,有必要在设计测试的数据和条件时,使它们能尽可能地反映出软件产品将来使用时的情况、条件和环境。但这并不意味着测试就一定是完全的。测试时的输入空间充其量也只能是从使用时的输入集合的全集合中选取的子集合。如果使用时的

18、问题空间是无穷集合(大多数实际情况也正是如此),则这样选出的子集合,无论如何也不可能“覆盖”问题空间。假如一定要做到“覆盖”,只有使测试无限制地进行下去,而这也正是我们力图要避免的。n 由"覆盖"问题引伸出的测试环境与使用运行环境一致的问题,也是同样性质的,这一假设也是人们一种良好愿望的反映。特别对于那些包括软件的无法进行试验的系统,则这一假设更显得不合实际。n 不同软件产品的开发过程,由于参加者不同,他们各自的训练、业务经历、程序设计风格都不相同。因此,通过他们各自的大脑思维所产生出来的"逻辑产品",个性多于共性,这是一种必然现象,也正是软件工程所面临

19、的一大难题。n 模型假设的局限性太多,势必影响到它们的应用范围。目前,软件工程界对于软件可靠性模型的诸多疑虑,也多半来自于此。如何改进它们,是软件可靠性今后理论研究的重大课题之一。它的突破,也就会消除软件工程界的疑虑,使软件可靠性理论得到更广泛的应用,从而,必然反过来又促进软件可靠性理论的发展。n 软件可靠性模型没有普适性,一个模型可能仅对一个或几个软件做出较为准确的评估和预计,因此,如何选择、评价模型就成为一个很有必要研究的课题。12. 当前软件可靠性领域面临的主要问题12.1. 软件可靠性设计就是要大力发展以保证和提高软件可靠性为主要目标的软件设计技术的研究和实践,特别是:n 定性分析:就是要开发利用针对软件设计过程中的软件错误、缺陷的定性分析技术。n 容错实用技术:目前软件容错的基本方法是N文本技术和恢复块技术,但离工程上简单实用的要求还有一定距离。12.2. 软件可靠性测试软件可靠性测试是适

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论