软件可靠性:基本概念、建模及影响因素解析
wujiai
|软件可靠性是指软件产品在规定的条件、规定的时间内完成规定功能的能力。
故障严重程度是一组对用户具有相同影响的故障。
可靠性测试是调查、分析和评估软件产品可靠性的一种方法。其目的可以概括如下:
发现软件系统在需求、设计、编码、测试和实现等方面存在的各种缺陷为软件的使用和维护提供可靠性数据确认软件是否满足可靠性的量化要求软件可靠性建模
软件可靠性模型是为了预测或估计软件的可靠性而建立的可靠性框图和数学模型。建立可靠性模型的目的是将复杂系统的可靠性逐步分解为简单系统的可靠性,以方便对复杂系统的可靠性进行定量的预测、分配、估计和评估。
从技术角度来看,影响软件可靠性的主要因素有:
运行概况(环境)。软件可靠性的定义是相对于运行环境而言的。不同的环境可靠性,其可靠性表现也不同。软件规模。软件内部结构。软件开发方法与开发环境。软件可靠性投资。
软件可靠性建模方法一般由以下部分组成:模型假设、性能指标、参数估计方法、数据要求
好的软件可靠性模型具有以下特点:基于可靠的假设、简单、计算一些有用的量、对故障行为给出良好的映射、适用性广泛。
软件可靠性分类:种子方法模型、故障率模型、曲线拟合模型、可靠性增长模型、程序结构分析模型、输入域分类模型、执行路径分析方法模型、非齐次泊松过程模型、马尔可夫过程模型、贝叶斯分析模型
软件可靠性管理包括软件工程各阶段可靠性活动的目标、计划、进度和纠正措施。
软件可靠性设计
保证软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。
软件可靠性设计技术主要包括:容错技术、错误检测设计、复杂度降低设计等技术
软件可靠性设计应遵循的原则:
它必须在软件整体设计框架内使用,不能与其他设计原则相冲突。在满足提高软件质量要求的前提下,最终目标是提高和保证软件可靠性。软件可靠性目标要确定,不能无限扩大,要综合考虑功能性、用户需求和开发成本等因素。
容错设计技术主要包括恢复块设计、N版本程序设计、冗余设计等。
错误检测技术 错误检测技术的实现成本比容错技术和冗余技术要低,其缺点是不能自动解决故障,如果故障发生后没有人为的干预,软件系统就不能正常运行。
降低复杂性设计。软件复杂性分为模块复杂性和结构复杂性。
系统配置技术主要有双机热备技术、服务器集群技术
软件可靠性评估
软件可靠性评估是指选择或建立适当的可靠性数学模型,利用统计技术等手段对软件可靠性测试和系统运行过程中收集的软件故障数据进行处理,对软件可靠性进行评估和预测的过程。该过程包括:选择可靠性模型、收集可靠性数据、可靠性评估与预测








