失信因子对软件可信性的影响及其控制
【摘要】:随着信息产业的飞速发展,软件已无处不在地渗透到国民经济、科技发展及国防建设等各个领域,成为信息社会的重要基础和核心。然而,软件系统随着功能需求的增加而变得越来越庞大和复杂,缺陷和漏洞难以得到有效控制。在动态多变的运行环境下,系统显得异常脆弱,经常发生各种故障和失效甚至灾难,给人们带来不同程度的损失。因此,软件并不总是让人信任的,软件的可信性问题已引起国内外学术界和产业界的广泛关注。
软件开发过程和软件本身都是一个复杂系统,尽管目前的开发理论和技术得到快速发展,但因软件的可信性问题引发的事故却从未停止过。因此,须从更深的层次来分析软件为何不可信的问题。本文基于“导致软件不可信的根源因素——失信因子”这一基本概念,运用微分动力学理论、系统动力学理论、期望效用理论、排队论和Petri网等相关理论知识,探讨失信因子的作用机理、影响程度及其在开发过程中的控制问题,其主要的研究内容如下:
(1)失信因子的作用机理。通过分析一些与“失信”概念相关术语的内涵,提出失信因子的作用机理遵循“失信因子—错误—缺陷(故障)—失效—失信”的失信链,扩充了传统可靠性理论中的“失效链”。同时,利用相关数据提取失信因子与失信因子、缺陷、可信原则之间的关联关系,为清晰认识失信因子,丰富失信因子的概念体系提供了帮助。
(2)失信因子作用下的缺陷预测模型。针对某一类缺陷而言,从缺陷的生长过程角度,建立失信因子作用下缺陷潜藏、被发现和被修复三种状态的转移模型,通过模型的平稳解对潜藏缺陷进行预测,并用一实例验证模型的有效性。针对总体缺陷而言,从软件可靠性增长角度,在假设失信因子对缺陷的作用强度服从一负指数概率分布的前提下,建立失信因子作用下的G-O NHPP缺陷预测改进模型,实例表明改进后的模型与其它典型NHPP类模型相比,具有更好的拟合效果和预测能力。
(3)失信因子对软件过程产品质量的影响。软件质量只有在软件开发过程中得到保证,过程产品的质量又决定了最终产品的质量。以瀑布型开发过程为例,建立一些典型失信因子对过程产品质量影响的系统动力学模型。通过模型的仿真试验,观察和度量了不同失信因子对过程产品质量的影响范围和程度。
(4)失信因子作用下的软件可信性动态演化。首先,从故障的严重程度、持续时间和出现频数三方面对故障类进行综合评价;其次,基于期望效用理论,提出一种利用故障类的效用值度量软件可信性的新方法,并借助排队论思想,建立某一类故障在其持续时间内,软件可信性的度量模型;最后,分析当失信因子激发两类故障出现几种不同情形时,软件可信性的动态演化情况,并以某软件公司开发的一厂级监控管理信息系统(SIS)为例,对系统在试运行阶段的可信性演化进行实证分析。
(5)基于Petri网的失信因子控制过程模型。在失信因子的事前控制方面,选取“开发人员的经验和技能水平”这一失信因子,为控制开发人员的犯错几率,建立有色随机Petri网模型,分析企业进行人事培训的效果;在失信因子的事后控制方面,以“需求变更”为例,为控制需求变更的平均延迟时间,建立带模糊时间参数的随机Petri网模型,给出了模型的时间性能分析结果。
有研究资料表明,软件项目的失败大多都归因于管理方面,而非技术方面的问题。本文从管理学的角度,开展基于失信因子的软件可信性相关理论研究,为从软件失信这一新的视角探讨软件可信性提供研究思路,为可信性的度量和评估提供一种新的方法,为可信性的动态监测提供一种可行的途径,为软件项目的科学管理和持续的过程改进提供一些参考。