西安电子科技大学
硕士学位论文
软件可靠性模型及其评价工具的设计与实现
姓名:高晰
申请学位级别:硕士
专业:软件工程
指导教师:刘西洋;徐立新
20080101摘要
随着计算机及软件在人们生活中应用范围的扩大,软件的质量问题逐渐引起人们的关注。软件可靠性是软件质量的重要属性。作为软件可靠性定量评估技术
核心的软件可靠性模型技术,为软件质量的提高、软件开发过程的合理控制以及资源的有效管理提供了定量和客观的依据,因而具有重要的学术研究和工程应用
价值。
在理论研究方面,本文从软件可靠性的基本理论出发,阐述了软件可靠性模
型预选的流程,从模型假设、基本公式、参数推导等方面对随机类模型中典型的三个模型进行了研究,分析了性能度量参数的选取原则。
在实际应用方面,本文设计完成了一个基于失效数据的软件可靠性评价工具。
该工具嵌入了三种可靠性模型,实现了四个主要功能,包括数据管理功能、失效数据趋势分析功能、可靠性评估功能以及预测准确性分析功能。虽然目前在国内
外已有不少的软件可靠性分析工具,但是大多忽略了对失效数据的趋势分析和预
测的准确性分析功能。因此,这也是本文实现的评价工具与其他可靠性分析工具
最大的不同。最后,结合实际收集的数据对以上四种功能进行了实例验证,结果表明该评价工具采用的方法比较完整,评价预测的结果较为可信,具有较好的实用性。
关键词:软件可靠性软件可靠性模型可靠性预测软件可靠性评价工具Abstract
Withtheincreasingextensionofso讯valeapplicationinthelife,peoplehavepaid
Ⅱlorea吮ntiontosoftwarequality.Softwarereliabilityisallimportantcharacterof
softwarequality.Asthekernelofsottwarereliability,thetheoryofreliabilitymodel
playsallimportantroleinqualityimprovement,rationalprocesscontrolandeffective
resourceallocationofsoftware.Sotheresearchonthetheoryandtheapplicationof
thesoftwarereliabilityengineeringshouldbeimperative.
Intheaspectofacademicstudy,atfirst,basictheoryofsoftwarereliabilityisstudied
andtheflowpathofmodelselectionisproposed.Then,togiveaquantitativeanalysis
oftypicalmodels,modelassumption,fundamentalformulaeandparameterestimation
arestudied;rulesformetricsselectionalealsoproposed.Intheaspectofpractice,areliabilityestimationtoolwhichbasesonfailuredatais
designedanddeveloped.Thistoolisinlayedwiththreetraditionalreliabilitymodels
andiscapableofperformingfourfunctionswhichaledatamanagement,datatrend
analysis,reliabilitypredictionandmodelevaluation.Themajordifferencebetween
thistoolandmostofothersoftwarereliabilitytoolsathomeandabroadisthatthelatter
neglectthefunctionsoffailuredatatrendanalysisandmodelevaluation.
Atlast,failuredatacollectedinpracticeisappliedwiththefourfunctions.It
Sho、vStIlattllemeasurementusedinthetoolisrelativelycomplete,acomparatively
trustworthypredictionresultCanbederivedandthepracticabilityofthistoolisproven·
Keywords:softwarereliabilitysoftwarereliabilitymodelreliabilityprediction
softwarereliabilityestimation
tool创新性声明
本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究
成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不
包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或
其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。
本人签名:
关于论文使用授权的说明
本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究
生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。
学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全
部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。
本人签名:宣幽
导师签名:主塑址第一章绪论
第一章绪论
随着计算机及软件在人们生活及工作中的广泛应用,软件的质量逐渐受到人
们越来越多的关注。软件可靠性是软件质量的重要属性。在软件可靠性领域,作
为软件可靠性定量分析基础的软件可靠性模型技术也成为了受关注最多,研究成
果最丰富的一个方面【¨。
1.1课题背景
20世纪60年代计算机投入使用之后,其迅猛发展为人们带来了前所未有的便
利,但与此同时计算机由于其软件的失效也为人们带来了诸多灾难。例如,1963
年,美国用于控制火星探测器的计算机软件中的一个“,"号被误写为“.",而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失;美国空军的范登堡中
心在60年代后期发生过多次导弹试射失败的事故等等。计算机软件导致的重大事
故屡屡出现。随着“软件危机’’的出现,软件的质量问题逐渐引起了人们的关注。软件的可靠性是软件质量的基本特性之一【2J,它表明了一个软件系统按照用户
的要求和设计的目标,执行其功能的正确程度。软件的可靠性获得重视始于“软
件危机”,1972年Jelinski.Moranda模型的正式提出标志着软件可靠性系统研究的
开始。软件可靠性工程是为适应软件产品的高可靠性要求发展起来的新兴学科,旨在开发利用以保证和提高软件可靠性为主要目标的软件技术【3】。软件可靠性工程主要研究三个基本问题:软件为什么失效;如何开发高可靠性软件;如何评测软
件的可靠性。对软件的可靠性进行评测就是对软件可靠性进行评估和预测。软件可靠性模型是可靠性评测应用的核心和关键,可用于软件生命周期的不同阶段,定量地估
计和预测软件可靠性行为。软件可靠性模型不仅具有较强的理论性,也具有较强
的实践性。软件可靠性模型的用途包括以下方面【4J:(1)定量评估为完善软件开发过程而提出的软件工程(实施)准则;
(2)评估项目测试过程中的开发状态和可靠性度量,例如失效密度,较许多传统度
量如测试覆盖率等更具有实际的工程意义,有助于测试过程的控制;
(3)监控软件操作性能,控制软件系统的设计改变和功能添加;
(4)有助于管理人员更好地了解软件产品和软件开发过程,利于决策的实施;
(5)应用软件可靠性模型有助于未来软件系统的开发。软件可靠性评测的历史信息及经验都是指导未来软件开发的宝贵财富。
由此可见,软件可靠性模型的应用为软件质量的提高、软件开发过程的合理2软件可靠性模型及其评价工具的设计与实现
控制及资源的有效管理提供定量和客观的依据。因而软件可靠性模型的应用研究有着重要的意义。
基于软件失效数据的软件可靠性分析工具,目前在国内外已有不少。比如在
国外,由美国空军喷气动力实验室开发的计算机辅助软件可靠性工程工具(CASI也),美国NavalSurfaceWarfareCenter开发的统计建模和软件可靠性估计工具(SMEI心S);在国内,武汉大学、北京航空航天大学自动控制系、航天204
所等单位也都开发了软件可靠性评估软件。这些工具都各有其特点,但是有的开
发年代相对较早,功能尚不够完善,有的则存在着缺少趋势分析或预测质量分析
和改进等帮助用户获得较为可信的预测结果的功能。因此针对这些工具的不足,开发出功能全面的可靠性评测系统具很高的实用价值。
1.2软件可靠性模型的发展历史及研究现状
软件可靠性模型基本的研究方法是对过去失效数据建模,以预测未来【l】。软件
可靠性建模最早可以追溯到1967年Hudson的工作【5】,他当时以随机生灭过程描述软件缺陷的引入和剔除过程,并证明被剔除的缺陷数服从二项式分布,其均值时
间函数具有Weibull形式。接着软件可靠性模型技术围绕着七十年代初期的先驱工作者Jelinski、
Moranda、Shooman和Coutinbo等的工作逐渐展开161。Jelinski.Moranda模型7J于1972年正式提出。这一模型首次将硬件可靠性的基
本概念(可靠度、失效强度等)系统地引入软件可靠性领域;确立了软件可靠性
建模的黑箱方法,即不涉及软件内部结构,仅依据软件外部行为(输入输出关系)刻画软件可靠性行为;给出了软件可靠性建模的两个主要假设,即测试用例的选
取代表软件实际运行剖面,不同软件失效独立发生。Littlewood.Verrall模型8】于1973年发表,其主导思想是将软件失效强度视为
随机变量,从而开创了软件可靠性建模的Bayes方法。此模型也间接考虑了发现的缺陷不被完全剔除的可能性。随着人们对软件失效行为的不断研究,新的可靠性模型逐渐涌现出来。Musa
于1975年发表了执行时间模型【9J,它引入了一系列新的显示参数,如测试压缩因子、关于软件系统的初始MTTF以及与日历时间相对的执行时间概念。同年,
Moranda发表了几何泊松模型,他认为故障率随时间的增加以几何级数下降。1976
年,Shooman和Natarajan首次发表了考虑到排错时引入新错的模型。1979年发表的关于连续时间的Goel.Okumoto模型【10l是NHPP模型的代表,对软件可靠性模型
的发展产生了持续的影响。
八十年代后期以来,人们逐渐将软件可靠性增长模型的研究重点放到了具体