论文部分内容阅读
软件可靠性是软件质量最重要的特性之一,它直接关系到计算机系统乃至更大的系统能否在给定时间内完成指定任务。软件可靠性增长模型(SoftwareReliability Growth Model,简称SRGM)是软件可靠性评估和预测的重要手段。近几年来研究人员开始讨论如何使用排队模型来解释软件测试行为,并建立了基于排队论的软件可靠性增长模型。但这类模型没有考虑故障检测工作量(Fault Detection Efort,简称FDE)、故障修正工作量(Fault Correction Efort,简称FCE)、故障修正延迟和排错等待延迟(Removal Waiting Delay,简称RWD)对软件可靠性的影响,降低了模型的实际意义和结果的可信度。为了满足对软件可靠性评估和预测的实际需要,本文从研究故障检测工作量和故障修正工作量入手,建立了一系列基于排队论的软件可靠性增长模型。测试工作量是影响测试过程的重要因素。与日历时间相比,测试工作量随测试时间的变化情况对软件可靠性模型具有更显著影响。适当规模的软件项目在系统测试过程中通常由不同的团队人员进行检测和故障修正。因此认为软件故障检测资源和故障修正资源是相互独立的。本文将软件故障检测和故障修正过程的资源进行区分,即将软件测试工作量分为两部分:故障检测过程所需要的资源,称之为故障检测工作量;故障修正过程所需要的资源,称之为故障修正工作量,这样有助于提高软件可靠性评估精度。大多数软件可靠性增长模型都假设检测到的故障被立即修正。这个假设与实际软件测试情况并不符合。事实证明从故障检测到故障被修正完成之间会有一定的延迟,而且此延迟受到多种因素的影响,例如故障修正工作量、已检测到的故障数、软件结构的复杂程度等。本文使用无限服务台排队(InfiniteServer Queuing,简称ISQ)模型来解释这个软件故障修正延迟,即已检测到的故障和故障修正人员分别对应排队模型的到达顾客和服务人员。在此基础上,本文重点研究了影响故障修正延迟的因素:故障检测工作量和故障修正工作量,提出了考虑故障检测工作量和故障修正工作量的基于无限服务台的软件可靠性增长模型,即ISQ-FDEFCE模型。此外,进一步讨论了故障不完美排除,建立了修正的ISQ-FDEFCE模型。绝大部分软件可靠性增长模型都假设故障修正率是服从同一分布的,但实际故障修正过程中,故障修正率受到故障修正工作量、故障本身的难易程度、故障修正的环境等因素的影响。一旦这些影响因素发生变化,软件的修正率也会随之发生变化,即故障修正率可能在某些点发生变化,这就是软件可靠性建模中移动点(Change Point,简称CP)问题。本文将移动点应用到软件故障修正延迟建模过程中,建立了基于移动点的ISQ-FDEFCE的软件可靠性增长模型,即ISQ-FDEFCE-CP模型,并对ISQ-FDEFCE-CP模型做了进一步修正,在故障修正时引入新故障。基于ISQ的软件可靠性增长模型假设故障修正资源是足够的,故障被检测到后立即分配给故障修正人员进行排除,无需排队等待修正,即故障检测和故障修正之间存在的延迟就是故障修正延迟,从而忽略排错等待延迟。这个假设与软件故障修正的实际情况并不相符。本文提出考虑故障修正资源是有限情况下的模型,建立考虑排错等待延迟的基于有限服务台排队(Finite ServerQueuing,简称FSQ)的软件可靠性增长模型,即FSQ-RWD模型。本文还在FSQ-RWD模型中考虑了故障不完美排除,建立了修正的FSQ-RWD模型。随着测试的进行,软件中的故障被逐步排除,进而软件故障进入等待被修正状态的速度也会降低,甚至可能会造成故障修正服务台的闲置。因此在研究软件故障修正过程建模过程中,需要分析故障修正服务台动态变化对排错等待延迟、故障修正延迟的影响。本文针对故障修正服务台动态变化,利用移动点技术,建立了基于移动点的FSQ-RWD的软件可靠性增长模型,即FSQ-RWD-CP模型,并对FSQ-RWD-CP模型做了进一步修正,即考虑故障排除时引入新故障。在一组实际软件失效数据上对提出的模型和一些现有的软件可靠性增长模型做了全面对比分析,结果表明本文的软件可靠性增长模型在这组软件实际失效数据集上的拟合效果良好,有助于软件企业更好地利用软件可靠性增长模型对软件质量进行监督和管理。