您好, 访客   登录/注册

考虑错误检测两阶依赖性以及错误校正延迟效应的软件可靠性模型

来源:用户上传      作者:

  摘   要:随着科技的进步和全面智能化时代的到来,软件在人类社会扮演着愈发重要的角色,因此软件的可靠性成为了一个重要的研究领域。然而到目前为止,还没有研究综合考虑到软件错误检测两阶依赖性和校正延迟效应的文献。文章提出了一个软件可靠性增长模型。该模型考虑了错误检测的两阶依赖性和错误校正的延迟效应。在文章中,软件错误被分为三种类型:独立错误、一阶依赖错误和二阶依赖错误。后两种错误依次对前一种错误具有依赖性,即只有相应的错误被检测之后,对应的依赖性错误才能被检测到。利用该模型可以计算出不同时刻下错误检测出的数量和校正的数量。这个模型相比于之前的模型更加符合实际情况。该模型对于软件投放时间等重要决策具有很大的参考价值。
  关键词:两阶依赖性;延迟时间;错误检测;错误校正;软件可靠性
  Abstract: With the advancement of science and technology and the advent of the era of comprehensive intelligence, software is playing an increasingly important role in human society. Therefore, software reliability has always been an important research area. However, up to now, there has been no literature that comprehensively considers the second-step dependence of software error detection and correction delay effects. This paper proposes a software reliability growth model. The model considers the second-step dependence of error detection and the delay effect of error correction. In this paper, software errors are classified into three types: independent errors, first-step dependency errors, and second-step dependency errors. The latter two errors have a dependency on the former error in turn, that is, only after the corresponding error is detected can the corresponding dependency error be detected. The model can be used to calculate the number of errors detected and the number of corrections at different times. This model is more in line with the actual situation than the previous model. This model has great reference value for important decisions such as software launch time.
  Key words: second-step dependence;delay time;error detection;error correction;software reliability
  1 引言
  隨着信息技术的发展,计算机已经在社会的各个领域被广泛使用。作为计算机与人交互的核心工具,软件的作用显得越来越重要。近年来,随着人工智能等新兴技术的发展,算法和程序的进步速度,已经远远的超过当前社会其他技术的进步速度。由此带来软件代码的长度成几何倍数的增长,因此软件的质量已经成为一个非常有意义的研究内容。
  软件的可靠性是衡量软件质量的一个关键指标,是可以广义地应用于衡量软件可信性。到目前为止,已经有很多学者对软件可靠性进行了多年的研究。软件可靠性的定义为软件在给定的时间内保证无错误产生的状态下持续运行的概率。为了提高软件的可靠性,软件在面市前通常要经历一个测试的过程。在这个过程中,软件里的错误会被调试人员发现和更正。在过去的半个世纪,出现了一系列用于评估软件在测试过程中可靠性增长的模型。
  在众多软件可靠性增长模型中,非齐次泊松模型(NHPP模型)是最常用的。基于不同的假设,非齐次泊松模型被广泛地应用于软件工程领域。在众多假设中,两个最常用的假设是:(1)错误的发生是独立的;(2)被发现的错误会被立刻修复。
  事实上,在错误被发现之后,通常需要先报告错误的存在,并进行隔离,最终才能修复。这说明,在软件的测试过程中,错误的完全修复会在一个延迟的时间之后。因此,将软件错误的检测过程(Fault Detection Process, FDP)和校正过程(Fault Correction Process,FCP)进行联合建模,将会是一个更贴近现实情况的方案。Schneidewind首次声明了需要对FCP进行建模,而且FCP是影响软件可靠性的一个关键过程。在他的研究中,延迟时间以函数形式添加入模型中。在2003年时,Shyur提出了非光滑FDP模型。Huang和Lin在考虑错误的独立和修复延迟的情况下,对软件的可靠性进行了分析。Huang和Huang在2010年提出了一个考虑到FCP延迟时间的FDP排队模型。Peng和Zhai提出了若干FDP和FCP的组合模型,并以此研究了软件的最佳面市时间。这些研究,将软件可靠性模型逐渐推向实际应用。   在实际中,一些错误只有当其所依赖的某个其它错误被发现时才有可能会被发现。然而,在本文讨论的研究中,除了Peng和Zhai的研究,都假设不同错误的发现是相互独立的。而在Peng和Zhai的研究中有两类错误,即独立错误和依赖错误。其中,依赖错误只有当其依赖的独立错误被发现时才可以被检测到。实际情况可能更加复杂,即依赖错误可能不仅仅只有依赖于独立错误的一阶依赖错误, 还可能有依赖于一阶依赖错误的二阶依赖错误。Peng等人通过考虑一阶和二阶错误依赖性,研究了软件可靠性的增长过程。然而,他们仅研究了FDP,没有考虑FCP。
  在本文中,将基于一阶和二阶的错误依赖性以及具有延迟时间的错误校正对FDP和FCP进行联合建模。本文在第2节构建了一个基础的模型框架;第3节提出了具有错误修复延迟时间的模型;第4节总结这篇文章并提出若干未来的研究方向。
  2 模型总体框架
  这里首先对研究的问题进行概述。在本文中,软件错误被分为独立错误、一阶依赖错误和二阶依赖错误。独立错误可以被独立地检测和校正,不需要等其它错误被发现才能发现。一階依赖错误只有在对应的独立错误被校正移除之后才能被检测到。相似地,二阶依赖错误只有在对应的一阶依赖错误被校正移除之后才能被检测到。
  根据问题描述,本文设置若干假设及参数。假设三种错误的数量分别为a0(独立错误)、a1(一阶依赖错误)和a2(二阶依赖错误)。因为软件测试过程的环境是比较稳定的,所以这里假设三种错误的检测概率分是恒定的b0(独立错误)、b1(一阶依赖错误)和b2(二阶依赖错误)。假设三种错误的校正移除延迟时间分别为c0(独立错误)、c1(一阶依赖错误)和c2(二阶依赖错误)。
  根据问题描述和假设,本文采用建模过程。首先对独立错误的FDP(FDPL)和FCP(FCPL)进行建模,然后依据FDPL对一阶依赖错误构建其FDP(FDPFD)及相应的FCP(FCPFD)。类似地,依据FDPFD可以对二阶依赖错误构建其FDP(FDPSD)及相应的FCP(FCPSD)。将三种错误的FDP和FCP汇总,可以得到模型总体的FDP(FDPT)和FCP(FCPT)。整个模型框架中的所有子过程都是根据均值公式来完成的。
  3 具体模型实例
  这一节展示一个具体的模型。因为软件测试过程是在一个比较稳定的环境下进行的,所以本文假设三种错误的检测概率和校正移除延迟分布是相同的,即以及。
  3.1 FDPL和FCPL
  3.2 FDPFD和FCP
  根据本文模型框架可知,假设一阶依赖错误只有在对应的独立错误被检测之后才能被检测到,因此由于检测是在相同的环境中检测完成的,被检测到的一阶依赖错误占一阶依赖错误比例应与被检测到的独立错误数量占全部独立错误的比例一致。根据上一节分析,被检测到的独立数量占全部独立错误数量的比例为。假设FDPFD服从非齐次泊松分布并且在一定时间内检测出的一阶依赖错误与未检测出的而又可以被检测到的一阶依赖错误成比例,那么可以得到微分方程:
  3.3 FDPSD和FCPSD
  与一阶依赖错误相似,研究人员还假设了二阶依赖错误只有在对应的一阶依赖错误被检测之后才能被检测到。因此,同样地,可以被检测到的二阶依赖错误占全部的二阶依赖错误比例应与被检测到的一阶依赖错误占全部一阶依赖错误的比例一致。类似地,被检测到的一阶依赖错误数量占全部一阶依赖错误的比例为。假设FDPSD服从非齐次泊松分布并且在一定时间内检测出的二阶依赖错误与未检测出的而又可以被检测到的错误数量成比例,那么可以得到微分方程:
  3.4 FDPT和FCPT
  在依次得到三种错误的检测数量模型和校正移除数量模型之后,可以汇总得到总的错误检测数量模型和校正移除数量模型。t时刻软件的错误检测总数为:
  4 结束语
  本文提出了一个考虑错误检测两阶依赖性和错误校正延迟效应的软件可靠性增长模型。该模型中,错误被分为三种类型:独立错误、一阶依赖错误和二阶依赖错误。后两种错误依次对前一种错误具有依赖性,即只有相应的错误被检测之后,对应的依赖性错误才能被检测到。在该模型框架下,可以推断出不同时刻下错误检测出的数量和错误校正移除的数量。这个模型相比于之前的模型更加符合实际情况。
  在未来的研究中,首先可以利用实际数据对模型的参数进行拟合训练,然后进行敏感性分析,从而得到不同条件下更具体的可靠性增长趋势。其次,还可以将所建立软件可靠性模型应用于软件投放时间等重要决策,以达到优化成本的目的。
  除此之外,本文虽然将故障的依赖性与故障校正延迟效应考虑了进去,但是仍与实际情况有一定差距,因此在以后的工作中研究人员会考虑更具代表性的延迟函数建立模型,并可利用贝叶斯技术根据实际情况更新模型参数,使得模型更加贴合实际情况。
  另外,也可以具体分析影响故障相关性的因素,并且对此进行量化分析,使得模型的假设更加合理化,提高模型的评估和预测精度。
  参考文献
  [1] 罗平.网络中软件可信性内涵、模型及度量研究[J].网络空间安全,2017,8(Z1):27-35.
  [2] Lyu, M. R..Handbook of Software Reliability Engineering[M]. Mc Graw-Hill: Hightstown, 1998.
  [3] Pham, H. Software reliability and cost model: Perspectives, comparison, and practice[J]. European Journal of Operational Research, 2003, 147: 475-489.   [4] Sun, J. & Liu, X. M. Software reliability model for negative exponential distribution error time[J]. Journal of University of Electronic Science and Technology of China, 2005,34(1): 53-56.
  [5] Lo, J. H. Effect of the delay time in fixing a fault on software error models[J].  Proceeding of the 31st Annual International Computer and Application Conference, 2007: 711-716.
  [6] Xie, M., Hu, Q. P., Wu, Y. P. & Ng, S. H. A study of the modeling and analysis of software fault detection and fault-correction processes[J].Journal of Quality and Software Reliability Engineering International, 2007, 23: 459-470.
  [7] Schneidewind,N.Analysis of error processes in computer software[J]. Sigplan Notice, 1975,10: 337-346.
  [8] Shyur,H. J. A stochastic software reliability model with imperfect-debugging and change-point[J]. Journal of Systems and Software, 2003,66: 135-141.
  [9] Huang, C. Y. & Huang, T. Y. Software reliability analysis and assessment using queueing analysis and assessment using queueing models with multiple change-points[J].Computers &Mathematics with Applications, 2010, 60: 2015-2030.
  [10] Peng, R. & Zhai, Q. Modeling of software fault detection and correction processes with fault dependency[J]. Eksploatacja I Niezawodnosc Maintenance and Reliability, 2017, 19: 467–475.
  [11] Kapur, P. K. & Younes, S. Software reliability growth model with error dependency[J]. Microelectronics Reliability, 1995, 35: 273-278.
  [12] Peng, R., Ma X. Y., Zhai Q. Q. & Gao K. Y. Software reliability growth model considering first-step and second-step fault dependency. [J].Journal of Shanghai Jiaotong University(Science),2019,24(04):477-479.
  [13] Huang, C. Y. & Lin, C. T., Software reliability analysis by considering fault dependency and debugging time lag[J].IEEE Transactions on Reliability, 2006,55: 436-450.
转载注明来源:https://www.xzbu.com/1/view-15222054.htm