论文部分内容阅读
[摘 要]随着软件应用的日益广泛及其重要性的不断增加,人们对软件质量的要要求也越来越高。软件可靠性作为衡量软件质量的重要特性,其定量评估和预测已成为人们关注和研究的重点。本文提出将分层混合专家网络模型运用于模型的组合及选择,阐述了该方法的原理及思路,对各独立模型及组合模型进行数据验证及比较,进而验证了该方法的优越性。
[关键词]软件可靠性 分层混合专家网络模型 组合模型
中图分类号:TP 文献标识码:A 文章编号:1009-914X(2013)08-190-01
不同模型的不同变形层出不穷,对于一组失效数据,其估计的可靠性结果也不尽相同。选择一个最优模型就成了一个复杂难以决策的问题。模型组合是一个解决该问题的较好方法。
一、模型选择与模型组合的研究现状
可靠性模型的选择,是一个复杂的多准则决策问题。在现实使用软件可靠性增长模型的过程中,由于大量模型的存在,并且由于各模型的假设不相同所引起的应用不一致性问题,导致使用者往往不知道该如何选择适合实际情况的模型。每种可靠性模型都有其特定的理论假设,不同模型对于可靠性有不同的推导及计算方法,从而对同一组失效数据得到不同的可靠性评估结果。导致发生该状况的本质原因是实际项目中运用软件可靠性模型预测评估时,模型的假设往往与实际情况相违背。
此外,实际项目中往往还有模型没有考虑到的各种情况,例如:
1.软件的实际执行时间难于计算;
2.在测试阶段,代码会根据客户需要的变更进行不间断的修改;
3.各种模型均没有考虑错误的修复时间;
4.修复错误的过程往往不可避免要引入新的错误;
5.测试的效果在不同的时间段往往有着很大差异。
虽然存在着上述问题,但软件工程实践的历史过程证明软件可靠性增长模型是一种度量预测评估软件可靠性的有效手段。遗憾的是,现在没有一种通用的模型可用于所有软件系统的可靠性评估。一个模型可能对于特定环境数据效果很好,但是换一个环境之后,它往往得到一个不理想的结果;甚至对于一组失效数据,前期拟合预测的很理想,后期则拟合相差甚远,预测不准确,这种状况也是非常常见的。错误的选择模型往往带来一系列问题,甚至严重动摇用户对软件可靠性模型的信心。此外,人们一般无法根据先验知识事先知道特定的模型对于一个环境是否合适,这就使得选择恰当的模型成为一个更加困难的问题。
对于这样一个复杂的多准则决策问题,徐仁佐教授提出了可靠性专家系统的概念,定义模型选择为“根据用户提供的软件失效数据所作的预分析结果,在事先定义的一组判优准则约束下的一个优化问题。”目前软件可靠性模型的选择主要依据度量者个人的经验,并通过对实际软件系统测试情况的观察来对软件可靠性增长模型进行取舍和修改。但由于软件可靠性模型和实践运用的不一致问题,单个模型总不能理想的完成任务,故研究工作者提出一种综合各种模型的输出得到最终结果的方法,这种方法被称为模型组合。
二、基于分层混合专家网络的模型组合算法
在模型选择与组合的研究中,我们采用了一种基于混合专家(Mixture of Experts)网络的结构框架来进行模型组合,这种网络是基于“分而治之”的思想建立的结构。该网络利用各个“专家”的结果作为输入,然后通过门网将他们进行有效的整合,得到最后的输出。
人类在认识世界过程中是具有层次性的,先总体然后再细节,与模块化一样,层次性在感知系统中也是存在的,我们把上一节的混合专家模型进一步扩展为分层混合专家模型(HME),它是一个树结构的模型,把输入空间划分成两个区域,再对各区域的数据进行拟合,这一划分称为“软划分”,有的数据点可同时属于不同区域,各区域的边界可在学习过程中自行调整。
两层混合专家网络模型只是两个混合专家网络模型的输出结果作为另一个混合专家网络模型的输入从而得到最后输出结果的实现方式。根据这种思想,我们可以组合多个单个独立模型实现多层混合专家网络形式的组合模型。
与传统的线性组合相比,这种方法的权值函数是一个向量,因此可以适应比线性组合更加复杂的系統。这种分而治之的方法很大程度上依赖输入空间的划分,将最适应某个专家模型的子空间划分给相应的专家,能得到最好的结果。同时,由于我们采用的是一个软划分,能最大程度上保留各个模型的一些特性,使最终输出充分利用这些特性。
三、软件可靠性评估
实际上软件可靠性的评估过程已经渗透在模型的建立过程中,如若选择的模型适当,得到可靠性度量值后评估结束。如若模型不适合,需要选择新的模型再次建模,再次评估。评估流程图如下:
通过分别从数据结果角度和工具应用角度对独立模型的实现和基于混合专家网络的方法对软件可靠性组合模型进行自动选择进行验证。理论分析和实验结果表明,不同独立模型对同一组失效数据的评测结果是不一样的,虽然我们可以参考模型质量评价指标对模型的预测效果进行分析,但对于选出最优模型还是有一定的困难。实验数据表明,使用基于混合专家网络的组合模型进行模型选择符合通用的模型选择标准,具有较好的效果:首先,以输出误差最小为目标的训练算法可以保证模型的拟合度;其次,门网函数决定的权值连续变化使得选出的模型具有较稳定的特性;最后,在选择模型的过程中,近期的数据对于决定模型权重有较大影响,对于保障模型的预测能力有较大帮助。
四、发展方向
此模型仍有一些问题需要在以后的工作中解决。首先,本文的研究主要针对实践中常见的时间·失效数这种数据形式,如何将其应用于理论意义更加丰富、评价标准更加完善的失效间隔数据,值得进一步研究。其次,ME网络中选择模型的依据和某些模型评价标准存在一定的差异,如何进一步修改网络结构使其能更准确地选择模型也是需要考虑的问题。我们知道模型的选择方法始终是和模型选择标准相关联的,因此,对模型选择标准的深入研究将有助于对模型选择方法的进一步改进,这也是今后的研究方向之一。
总之,本文对软件可靠模型、及混合模型进行了一定深度的探索,基于分层混合专家网络的组合模型,在一定程度上是一种创新,虽然仍有很多不足,但是一种较好的混合模型。
作者简介:
高婷婷(1 9 81 一),教师,毕业于牡丹江师范学院,哈尔滨理工大学工程硕士。研究方向:计算机科学与技术。
[关键词]软件可靠性 分层混合专家网络模型 组合模型
中图分类号:TP 文献标识码:A 文章编号:1009-914X(2013)08-190-01
不同模型的不同变形层出不穷,对于一组失效数据,其估计的可靠性结果也不尽相同。选择一个最优模型就成了一个复杂难以决策的问题。模型组合是一个解决该问题的较好方法。
一、模型选择与模型组合的研究现状
可靠性模型的选择,是一个复杂的多准则决策问题。在现实使用软件可靠性增长模型的过程中,由于大量模型的存在,并且由于各模型的假设不相同所引起的应用不一致性问题,导致使用者往往不知道该如何选择适合实际情况的模型。每种可靠性模型都有其特定的理论假设,不同模型对于可靠性有不同的推导及计算方法,从而对同一组失效数据得到不同的可靠性评估结果。导致发生该状况的本质原因是实际项目中运用软件可靠性模型预测评估时,模型的假设往往与实际情况相违背。
此外,实际项目中往往还有模型没有考虑到的各种情况,例如:
1.软件的实际执行时间难于计算;
2.在测试阶段,代码会根据客户需要的变更进行不间断的修改;
3.各种模型均没有考虑错误的修复时间;
4.修复错误的过程往往不可避免要引入新的错误;
5.测试的效果在不同的时间段往往有着很大差异。
虽然存在着上述问题,但软件工程实践的历史过程证明软件可靠性增长模型是一种度量预测评估软件可靠性的有效手段。遗憾的是,现在没有一种通用的模型可用于所有软件系统的可靠性评估。一个模型可能对于特定环境数据效果很好,但是换一个环境之后,它往往得到一个不理想的结果;甚至对于一组失效数据,前期拟合预测的很理想,后期则拟合相差甚远,预测不准确,这种状况也是非常常见的。错误的选择模型往往带来一系列问题,甚至严重动摇用户对软件可靠性模型的信心。此外,人们一般无法根据先验知识事先知道特定的模型对于一个环境是否合适,这就使得选择恰当的模型成为一个更加困难的问题。
对于这样一个复杂的多准则决策问题,徐仁佐教授提出了可靠性专家系统的概念,定义模型选择为“根据用户提供的软件失效数据所作的预分析结果,在事先定义的一组判优准则约束下的一个优化问题。”目前软件可靠性模型的选择主要依据度量者个人的经验,并通过对实际软件系统测试情况的观察来对软件可靠性增长模型进行取舍和修改。但由于软件可靠性模型和实践运用的不一致问题,单个模型总不能理想的完成任务,故研究工作者提出一种综合各种模型的输出得到最终结果的方法,这种方法被称为模型组合。
二、基于分层混合专家网络的模型组合算法
在模型选择与组合的研究中,我们采用了一种基于混合专家(Mixture of Experts)网络的结构框架来进行模型组合,这种网络是基于“分而治之”的思想建立的结构。该网络利用各个“专家”的结果作为输入,然后通过门网将他们进行有效的整合,得到最后的输出。
人类在认识世界过程中是具有层次性的,先总体然后再细节,与模块化一样,层次性在感知系统中也是存在的,我们把上一节的混合专家模型进一步扩展为分层混合专家模型(HME),它是一个树结构的模型,把输入空间划分成两个区域,再对各区域的数据进行拟合,这一划分称为“软划分”,有的数据点可同时属于不同区域,各区域的边界可在学习过程中自行调整。
两层混合专家网络模型只是两个混合专家网络模型的输出结果作为另一个混合专家网络模型的输入从而得到最后输出结果的实现方式。根据这种思想,我们可以组合多个单个独立模型实现多层混合专家网络形式的组合模型。
与传统的线性组合相比,这种方法的权值函数是一个向量,因此可以适应比线性组合更加复杂的系統。这种分而治之的方法很大程度上依赖输入空间的划分,将最适应某个专家模型的子空间划分给相应的专家,能得到最好的结果。同时,由于我们采用的是一个软划分,能最大程度上保留各个模型的一些特性,使最终输出充分利用这些特性。
三、软件可靠性评估
实际上软件可靠性的评估过程已经渗透在模型的建立过程中,如若选择的模型适当,得到可靠性度量值后评估结束。如若模型不适合,需要选择新的模型再次建模,再次评估。评估流程图如下:
通过分别从数据结果角度和工具应用角度对独立模型的实现和基于混合专家网络的方法对软件可靠性组合模型进行自动选择进行验证。理论分析和实验结果表明,不同独立模型对同一组失效数据的评测结果是不一样的,虽然我们可以参考模型质量评价指标对模型的预测效果进行分析,但对于选出最优模型还是有一定的困难。实验数据表明,使用基于混合专家网络的组合模型进行模型选择符合通用的模型选择标准,具有较好的效果:首先,以输出误差最小为目标的训练算法可以保证模型的拟合度;其次,门网函数决定的权值连续变化使得选出的模型具有较稳定的特性;最后,在选择模型的过程中,近期的数据对于决定模型权重有较大影响,对于保障模型的预测能力有较大帮助。
四、发展方向
此模型仍有一些问题需要在以后的工作中解决。首先,本文的研究主要针对实践中常见的时间·失效数这种数据形式,如何将其应用于理论意义更加丰富、评价标准更加完善的失效间隔数据,值得进一步研究。其次,ME网络中选择模型的依据和某些模型评价标准存在一定的差异,如何进一步修改网络结构使其能更准确地选择模型也是需要考虑的问题。我们知道模型的选择方法始终是和模型选择标准相关联的,因此,对模型选择标准的深入研究将有助于对模型选择方法的进一步改进,这也是今后的研究方向之一。
总之,本文对软件可靠模型、及混合模型进行了一定深度的探索,基于分层混合专家网络的组合模型,在一定程度上是一种创新,虽然仍有很多不足,但是一种较好的混合模型。
作者简介:
高婷婷(1 9 81 一),教师,毕业于牡丹江师范学院,哈尔滨理工大学工程硕士。研究方向:计算机科学与技术。