论文部分内容阅读
随着计算机技术的日益成熟,硬件成本的迅速降低,各种结构复杂、功能强大的计算机系统被广泛应用到航空航天、交通运输、核电能源和医疗卫生等安全关键领域。一旦这些系统失效,将造成人类生命财产的重大损失或者环境的严重破坏,系统可信性日益成为被关注的焦点。鉴于这类系统应用的特殊性,其配置的软件必须具备很高的可信性,因而被称之为高可信软件。但事实上,与硬件可靠性快速提升相比,软件发展相对滞后,已成为制约系统可信性水平进一步提高的瓶颈。软件测试在系统可信性工程中扮演着重要的角色:一方面,软件测试可以定位并排除错误,切实地提高软件的可信性水平;另一方面,通过软件测试,可以获得对软件当前可信性水平的评估与验证。如何通过软件测试的方式有效地增强软件的可信性水平并对软件当前可信性水平作出客观的评估,是相关学术界和工业界研究的热点问题。 本文详细地剖析了可信性概念的起源与内涵,对可信性基本属性之间的区别与联系作了细致的研究,并对导致系统可信性降低的因素——缺陷、错误及失效之间的关系以及高可信保障技术作了梳理和归纳。 由于不同应用领域对软件可信性关注的侧重不同,本文主要基于安全关键领域针对可靠性和防危性的测试与评价方法作了系统而深入的研究,所作出的主要贡献如下: 1.由于所需测试用例量大、测试持续期长,导致软件的一些高可靠性指标的验证成为不可能。为了在不降低可靠性验证测试结果可信性的前提下减少测试用例量、缩短验证测试持续期,本文提出了一种先验知识动态整合的贝叶斯统计推断验证测试方法;并分离散执行软件和连续执行软件两种情况予以详细阐述。数值仿真证明,该方法在不降低验证测试结果可信性水平的前提下,能有效地减少测试用例量、缩短验证测试持续期。 2.为切实确保高可信软件获得规定的可靠性指标,本文提出了一种基于软件体系结构的高可信软件可靠性测评框架。该测评框架的基本思想是建立软件可靠性模型,把系统可靠性设计指标优化分配到各个软件模块,从模块级对软件的可靠性进行跟踪和控制,然后再在系统级进一步对软件的可靠性指标进行确认和验证。同时,基于最大熵原则,本文着重解决了如何在缺少失效数据的