论文部分内容阅读
从20世纪90年代开始,软件产业快速发展,软件迅速脱离“一切从零开始”的开发模式,转向高级复用技术。目前,基于构件的软件开发逐渐增多。与传统的软件开发模式相比,构件软件开发以集成已有的软件构件构造新的软件系统为目的。所集成的构件可能是由第三方开发,因此构件的内部信息对构件使用者来说是透明的。随着构件软件的应用日益广泛,人们对构件软件质量的要求也越来越高。可靠性作为衡量构件软件质量的重要特性,其定量评估和预测已成为人们关注和研究的焦点。在过去几十年中,软件可靠性工程领域主要集中在对非齐次泊松过程(non-homogeneous Poisson process,简称NHPP)类软件可靠性增长模型的研究上。NHPP模型已经成为软件可靠性工程实践中非常重要的工具。但是 NHPP模型是一类黑盒模型,不能适应基于构件的新型软件开发模式。传统的用于构件软件可靠性分析的基于体系结构的模型采用白盒方法估计构件软件应用的可靠性,得到的可靠性估计是一个单一的估计值,无法描述构件软件测试过程中随着故障的排除应用可靠性的动态增长过程。为了满足对构件软件测试阶段可靠性估计和预测的实际需要,本文研究如何将黑盒方法和白盒方法相结合来建立构件软件应用的NHPP模型。 可加模型是构件软件可靠性分析领域中的创新式尝试,建立了构件软件应用的 NHPP模型。但是可加模型中没有采用白盒方法分析构件软件应用的体系结构,并且它假设构件的 NHPP模型已知,而不考虑如何根据构件软件的实际测试过程来建立构件的 NHPP模型。本文针对可加模型存在的以上两个问题进行改进。利用仿真方法实现构件测试剖面到运行剖面的映射,建立构件的NHPP模型。然后采用基于状态的白盒分析方法将所有构件的 NHPP模型结合起来,建立整个应用的NHPP模型。改进后的可加模型符合构件软件的实际测试特征,实现了黑盒方法和白盒方法的结合。 鉴于NHPP类软件可靠性增长模型在实际应用中的优秀表现,近年来人们开始研究如何将其与白盒方法结合来建立构件软件应用的 NHPP模型。本文提出测试数据转换的方法来实现黑盒方法和白盒方法在构件软件可靠性分析中的结合。该方法采用白盒分析的方法建模构件软件测试过程,包括测试数据信息和测试剖面。基于测试模型,执行测试数据转换,实现构件软件应用的测试剖面到实际运行剖面之间的映射,从而建立NHPP类软件可靠性增长模型所需要的可靠性数据集。测试数据转换的方法充分利用构件软件应用整个测试过程中的测试数据信息来提高可靠性估计和预测的准确度。 传统的构件软件可靠性分析方法为了使模型易于求解,通常忽略构件集成测试中的故障排除过程,假设检测到的故障能够立即完全排除。这样会导致这些模型过于乐观的估计结果。为了得到实际的可靠性估计,需要修正立即完全修复这个不合理假设。基于排队论,本文提出一个混合无限服务员排队模型来描述构件软件集成测试中的故障排除过程,并考虑了不完全排错和集成测试中的故障排除策略。在集成测试过程中,根据故障排除策略组织对不同构件的故障排除活动的进行。分析求解该混合排队模型,可以得出集成测试中构件软件应用的可靠性增长过程。最后评估实验证明了该模型的有效性。 与传统的基于模型的构件软件可靠性分析方法相比,基于率的仿真方法由于可以灵活地跟踪软件动态失效过程,近年来开始用于分析构件软件的可靠性过程。但是目前已经提出的仿真方法对构件软件测试中的故障排除过程做了过分简化的假设,而没有能够描述软件系统实际的可靠性过程。针对这个问题,提出了一种新的基于率的仿真方法。该方法采用一个混合有限服务员排队模型建模集成测试中的故障排除过程,其中考虑到了故障排除策略和排错资源的局限性问题。在此基础上开发出仿真过程实现对构件软件可靠性过程的仿真。实验表明了该仿真方法的有效性。