软件可靠性模型及其评价工具的设计与实现

西安电子科技大学

硕士学位论文

软件可靠性模型及其评价工具的设计与实现

姓名:高晰

申请学位级别:硕士

专业:软件工程

指导教师:刘西洋;徐立新

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模型的代表,对软件可靠性模型

的发展产生了持续的影响。

八十年代后期以来,人们逐渐将软件可靠性增长模型的研究重点放到了具体

合集下载

基于Bayesian的软件可靠性评价方法研究

基于Bayesian的软件可靠性评价方法研究

第7卷第l1期 2oo8年l1月 软件导刊 

Software Guide VO1.7 NO.11 NOV.2008 

基于Bayesian的软件可靠性评价方法研究 

方 芳 

(中国人民解放军北京军区油料训练大队,北京102249) 

摘要:针对当前软件可靠性工程领域面临的主要问题,介绍了软件可靠性评价技术。讨论了传统的软件可靠性评 

价方法及其在应用中的局限性.然后介绍了基于统计理论的软件可靠性评价方法。主要介绍了基于假设检验的可靠 

性评价方法,并在其基础上做出改进,提出了一种基于贝叶斯理论的可靠性评价方法。 

关键词:软件可靠性;统计理论;假设检验;贝叶斯 

中图分类号:TP393.06 文献标识码:A 文章编号:1672—7800(2008)11-0020—03 

0 引言 

软件可靠性测试作为一个产业出现已有多年.然而,我国 

很多软件公司对软件可靠性测试仍然没有充分的认识。与其他 

软件产业发达国家相比较,我们在测试意识、测试理论的研究、 

大型测试工具软件的开发以及从业人员数量等方面均存在差 

距。其中测试意识上的差距又尤为突出。如何保证并提高我国 

软件产品的质量和可靠性,已成为我国计算机科学的一个重要 

研究领域。 

1传统的软件可靠性评价 

1.1软件可靠性的定义 

1983年。美国IEEE计算机学会软件工程技术委员会对软 

件可靠性的定义如下: 

(1)在规定的条件下,在规定的时间内,软件不引起系统失 

效的概率,该概率是系统输入和系统使用的函数,也是软件中 

存在的错误的函数;系统输入将确定是否会遇到已存在的错误 

(如果错误存在的话)。 

(2)在规定的时间周期内,在所述条件下程序执行所要求 

的功能的能力。 

1.2典型的软件可靠性模型 

上世纪50年代和60年代,国外就提出以建模的方式评价软 

件可靠性,并有相应模型产生。进入70年代后,软件可靠性建模 

的研究迅速发展,发表了上百种可靠性模型,但其中有相当一 

部分模型是另一部分的某种变形,或者是将一种模型的其中一 

软件可重用性的评估指标及方法研究

软件可重用性的评估指标及方法研究

软件可重用性的评估指标及方法研究

一、引言

近年来,软件开发已成为现代技术的重要组成部分。然而,随着软件规模和复杂度的不断增加,软件重复开发的情况也越来越普遍。为了提高软件开发的效率和质量,实现软件可重用性已成为软件开发的重要目标之一。软件可重用性评估是帮助开发人员和管理人员决策的重要工具,本文将深入探讨软件可重用性评估指标及其方法的研究。

二、软件可重用性

软件可重用性是指软件的模块和部分能够在不同的系统或不同的场合中得以重复使用的性质。软件可重用性能够提高软件开发的效率和质量,缩短开发周期和开发成本,而且还有利于开发人员之间的合作。

如何评估软件的可重用性是软件开发领域的热门问题之一。下面将介绍软件可重用性评估指标及其方法。

三、软件可重用性评估指标

软件可重用性评估指标是衡量软件可重用性的关键因素。通常情况下,软件可重用性评估指标可以分为三个类别:内部质量指标、外部质量指标和经济指标。 1.内部质量指标

内部质量指标是评价软件内部质量的指标。它们描述了软件的可维护性、可测性、可扩展性、灵活性、可定制性和可移植性等特性。例如:

(1)可维护性指标:包括代码的可读性、可维护性、可修改性和可测试性等。主要用于衡量系统的稳定性和可维护性水平。

(2)可测性指标:主要用于评估系统的测试效果和测试成本。它涉及到系统的可测试性、覆盖面和有效性等方面。

(3)可扩展性指标:主要用于评估系统的拓展性和改进性。它涉及到系统的适应性、灵活性和可扩展性等方面。

(4)灵活性指标:主要用于评估系统的灵活性和可配置性。它包括系统的可定制性、可调整性和可适应性等方面。

(5)可定制性指标:主要用于评估系统的可定制性和可配置性。它包括系统的可定制性、可调整性和可适应性等方面。

(6)可移植性指标:主要用于评估系统的可移植性和可扩展性。它包括系统的可移植性、可扩展性和可移植性等方面。

2.外部质量指标

外部质量指标是评价软件外部质量的指标。它们描述了软件的可用性、可靠性、可维护性、可安全性和可适应性等特性。例如: (1)可用性指标:主要用于评估系统的易用性和可用性。它包括系统的易学性、易用性和易连通性等方面。

一种基于马尔可夫模型的软件可靠性评估方法

一种基于马尔可夫模型的软件可靠性评估方法

一种基于马尔可夫模型的软件可靠性评估方法

刘志祥;刘杰;李丹;云雷

【摘 要】针对目前软件可靠性不易评估的特点,建立一种基于马儿可夫链的软件可靠性评估模型.该模型在软件运行流程图的框架下,利用一定的统计学方法,使用线性代数方法来计算软件运行流程中各个状态的概率,建立软件可靠性评估模型,从而计算软件的可靠性;最后,利用软件设计时的判别准则来判断软件是否符合需求.

【期刊名称】《电子产品可靠性与环境试验》

【年(卷),期】2012(030)004

【总页数】5页(P38-42)

【关键词】软件可靠性;马尔可夫模型;可靠性评估

【作 者】刘志祥;刘杰;李丹;云雷

【作者单位】工业和信息化部电子第五研究所,广东广州510610;工业和信息化部电子第五研究所,广东广州510610;工业和信息化部电子第五研究所,广东广州510610;工业和信息化部电子第五研究所,广东广州510610

【正文语种】中 文

【中图分类】TP311.5

0 引言

软件可靠性的研究起源于Hudson等人的工作,早期的研究主要针对软件测试和现场运行阶段收集的软件失效数据,建立可靠性增长模型。对于软件可靠性模型 (SRM:Software Reliability Model)发展首次起到较重要作用的两个模型,发表于1971年。Shooman模型由M.L.Shooman发表,J-M模型由Z.Jelinski和P.B.Moranda发表。到80年代末,可靠性增长模型的研究达到高潮 [1-7]。

SRM的研究在20世纪70年代获得较大的发展后,很多可靠性模型已经投入使用。可以说,软件可靠性建模己经从研究阶段发展到了工程阶段。国内外已提出100多种软件可靠性评价模型,其中以J-M模型、G-O模型、Musa执行时间模型、LV模型和Seeding模型等为典型代表 [8-10]。David、Howden、Parnas等人提出了基于经典统计假设理论的测试方法,为安全关键软件的可靠性测评奠定了取样理论基础;而Little wood、Miller等人提出了基于Bayesian统计理论的测试方法。为了改善测试用例开销,Bojan Cukie提出了结合形式化证明和程序动态测试的转换方法。自1972年第一个软件可靠性分析模型发表后的20多年以来,见之于文献的SRM有近百种,与每个模型相应的假设又有几条甚至几十条。这些可靠性模型大致可分为种子法、失效率类、曲线拟合类、可靠性增长模型、程序结构分析模型、输入域分类模型、执行路径分析方法模型、非齐次Poisson过程模型、马尔可夫过程模型和贝叶斯模型等10类 [11-14]。

软件工程中的代码质量评价模型研究

软件工程中的代码质量评价模型研究

软件工程中的代码质量评价模型研究

在软件工程领域,代码质量评价是一项至关重要的任务。一个高质量的代码可以保证软件的可靠性、扩展性和可维护性。为了评估和改进代码质量,研究人员和开发者们不断地探索和提出各种代码质量评价模型。本文将介绍一些常见的软件工程中的代码质量评价模型,并分析其优缺点。

一、代码复杂度评价模型

代码复杂度评价模型是评估代码质量的一种常用方法。它基于代码的可读性和可理解性,通过度量代码中的复杂性来评判代码质量。其中一个著名的代码复杂度评价模型是圈复杂度模型。该模型通过计算代码中的控制流图中的边和节点数量来评估代码的复杂性。圈复杂度评价模型简单易懂,易于计算和使用。但是,它仅仅考虑了代码的控制流程,对于代码的大小、内聚性和耦合性等其他因素的评估较为有限。

二、代码可维护性评价模型

代码可维护性评价模型是用于评估代码易于维护和修复的能力的一种方法。它基于代码的可理解性、可修改性和可测试性等因素来评估代码的质量。一个著名的代码可维护性评价模型是代码行数模型。该模型通过计算代码中的总行数、注释行数和空行数等来评估代码的可读性和可维护性。代码行数模型简单直观,易于理解和使用。然而,它忽略了代码结构、命名规范和代码注释等其他因素对代码质量的影响。

三、代码规范性评价模型

代码规范性评价模型是评估代码是否符合代码规范和标准的一种方法。它基于代码的命名规范、缩进规范、注释规范和代码结构规范等因素来评估代码的质量。一个著名的代码规范性评价模型是代码一致性模型。该模型通过检查代码中的命名、缩进和注释等是否符合规范来评估代码的一致性和可读性。代码一致性模型可以帮助开发者提高代码的可维护性和可理解性。然而,它忽略了代码功能和性能等其他重要因素。

综上所述,软件工程中的代码质量评价模型涵盖了代码复杂度评价模型、代码可维护性评价模型和代码规范性评价模型等。每个模型都有其优点和局限性。为了更准确地评估代码的质量,可以将这些评价模型结合起来使用。同时,也应该注意到评价模型只是评估代码质量的工具,最终的代码质量还需要结合实际需求和团队经验来进行判断和改进。对于开发者而言,不断学习和掌握代码质量评价模型,积极参与代码质量改进工作,将有助于提高软件工程中的代码质量。

军工产品嵌入式软件可靠性评测技术

军工产品嵌入式软件可靠性评测技术

收稿日期:2007208212;修回日期:20072092

18.作者简介:

周华

(

1970-),男,工程师,主要从事鱼雷试验总体技术研究工作.军工产品嵌入式软件可靠性评测技术

周 华1, 刘建兵1, 杨进候2, 唐 恒1

(1.中国人民解放军91439部队,辽宁大连116041;2.中国船舶重工集团705研究所,陕西西安710075)

摘 要:软件可靠性是衡量软件质量的重要指标之一,软件可靠性评测是获取软件可靠性定量指标的关键手段和方

法,合理、有效地获取软件可靠性数据对评价软件质量具有重要意义。该文结合有关军工产品中嵌入式软件的开发过

程,较为详尽地分析了软件可靠性评测的全过程,在“测试-排错-新版本”的迭代过程中采用软件负载压力测试

方法和可靠性统计技术,跟踪故障强度的变化,并对软件失效数据进行采集与分析,从而达到软件可靠性评价的目

的,最后,对软件测试与软件可靠性测试进行了比较分析,提出了各自测试的侧重点。通过对软件实行可靠性评测,

可使软件产品在投入使用或装载在硬件产品之前就提高了其系统可靠性,使军工产品系统可靠性的提高有了更充分的

保证和支持。

关键词:嵌入式软件;可靠性测评;软件可靠性;软件测试

中图分类号:TP311.5 文献标识码:A 文章编号:167321948(2007)0520044204

ReliabilityEvaluationandTestofEmbeddedSoftwareforMilitaryProducts

ZHOUHua1, LIUJian2bing1, YANGJin2hou2, TANGHeng1

(1.91439Unit,ThePeople′sLiberationArmyofChina,Dalian116041,China;

2.The705ResearchInstitute,ChinaShipbuildingIndustryCorporation,Xi′an710075,China)

软件可靠性与安全性分析、评估方法及建议

软件可靠性与安全性分析、评估方法及建议

软件可靠性与安全性分析、评估方法及建议

一、背景介绍

随着产品技术的发展及数字化技术的应用,软件在产品中所占的比重越来越

大,其规模和复杂性急剧增加,对产品的可靠性、安全性工作提出了严峻的考验。

为保证软件可靠性,需要对软件进行可靠性测试和评估工作,从而尽早发现并改

进软件中影响产品质量的缺陷,有效提高软件可靠性。为保障软件安全性,需要

对软件进行安全性分析与验证工作。

目前,随着GJB Z 161-2012 军用软件可靠性评估指南、GJB 900A-2012 装

备安全性工作通用要求、GJB 102A-2012军用软件安全性设计指南、ARP4761与

民用机载系统安全性评估流程及DO-178B/C机载系统合格审定过程中的软件考

虑等标准的颁布实施,以及空军航定〔2012〕4号《航空军用软件定型测评进入

条件评估准则》中明确提出关键软件在进入定型测评前必须具备《软件失效风险

分析报告》;空军装型〔2010〕131号《空军重点型号软件工程化要求》中也明

确提出在软件研制阶段中,必须要开展软件安全性分析与验证工作等规定。美国

在70年代研制F/A-18飞机期间首次引入软件安全性技术。在研制F-22和F-35

飞机时,则明确要求按照MIL-STD-882和DO-178B开展机载软件安全性工作。

在民机领域,波音和空客均严格按照ARP-4761及DO-178B/C标准开展了软件

安全性分析与验证,并作为适航审定的核心要素。在高铁、核工业、汽车、医疗

等领域,同样要求按照IEC 61508、EN50128、IEC60880、IEC 61513、ISO 14971

等标准,对构建高安全性软件做出严格规定。

从上述可以看出,当前世界各国对于软件产品的可靠性评估、安全性分析验证工作都提高了一个新的高度,都提出了具体的要求。

二、何为软件可靠性评估

根据国家标准GB11457,软件可靠性评估或软件可靠性评价是指“确定现有

系统或系统部件可靠性所达到的水平的过程”。在国际标准IEEE Std.1633,软件

软件可靠性

软件可靠性是个大问题

闵应骅

如果说计算机体系结构描写了计算机的躯体,那么,软件就是计算机的灵魂。软件可靠性对可信计算起着举足轻重的作用。几十年来,硬件技术特别是集成电路技术飞速发展,但软件技术在产品质量、生产力、成本及性能等众多方面都滞后于硬件技术的发展。随着软件系统规模和复杂性的增加,其开发成本以及由于软件故障而造成的经济损失也正在增加,软件质量问题已成为制约计算机发展的关键因素之一。

软件可靠性是个大问题

不要认为,软件仅仅是一个计算机指令序列,它是为用户提供所需信息处理能力的逻辑上的信息处理设备。用户需要的是一个满意的软件产品。但是,不要把软件的产品实现和开发管理混为一谈,或者顾此失彼。产品实现包括从需求描述、系统设计、系统实现、测试验证到运行维护的整个生命周期。但是,几十年的经验表明,要实现一个高质量的软件产品,开发管理极其重要。软件生命周期定义了软件过程的框架和原则,但没有描述软件过程的活动、组织形式、工具和操作规程,以及开发方针和约束。这些正是当下所谓软件过程技术要研究的。由于当今的软件,无论是系统软件、中间件或应用软件,都不是一个单位、一个人能够完成的,需要合作和协同,因此,软件产业需要国际标准。20世纪80年代,卡内基-梅隆大学的软件工程研究所在美国国防部的支持下,提出了评价软件供应商过程能力的能力成熟度模型(CMM)。一个软件组织的能力成熟度的高低,就看该组织是否能站在比软件项目更高的层次上考察其实施软件开发所使用的软件过程。能够定义该软件过程者为成熟度三级;如能度量和管理,则达到成熟度四级;如果还能优化该过程,则达到了成熟度五级。只有在成熟的软件过程管理之下,才能生产出高质量的软件产品。CMM模型现在还在不断地丰富和改进。质量和生产率是软件工程的两个核心目标。CMM等已被公认为软件质量保证方面的事实标准。它强调软件过程的管理与控制,忽略软件人员个人的主动性和创造性。所以,进入二十一世纪,在美国成立了Agile联盟,提出了敏捷软件开发方法,以适应那些需求不够确定、软件开发团队不是很大的软件开发项目。在2000年,美国政府和商业机构公布了CMM水平评估结果。在第一、二级者超过一半,30%达到第三级,只有17%达到第四、五级。实际情况可能比这还要糟。CMM现在正发展成CMMI,以更广泛地评估一个单位创造复杂软件系统的能力。一个信息技术(IT)项目经理最重要的责任是为各种活动分配资源。其他责任还有项目计划和评估、控制、组织、合同管理,质量管理,风险管理,通讯和人力资源管理。项目经理的错误决策也许是今天软件失效的主要原因。技术管理的失误引起技术差错,但可以纠正,而错误的项目管理决策,例如雇用程序员太少或合同类型的错误,可能引起全盘皆输。

软件可靠性模型研究进展

第37卷第9期 2010年9月 计算机科学 Computer Science Vo1.37 No.9 Sep 2010 软件可靠性模型研究进展 楼俊钢江建慧帅春燕靳昂 (同济大学计算机科学与技术系 上海2O1804) 摘要软件可靠性模型旨在根据软件失效数据,通过建模给出软件的可靠性估计值或预测值。它不仅是软件可靠 性预计、分配、分析与评价的最强有力的工具,而且为改善软件质量提供了指南。对近年来提出的多种不同的软件可 靠性模型进行分类剖析,讨论了部分模型的预测能力和适用性,分析了多个模型适用性差的原因,还对未来的研究趋 势进行了展望。 关键词软件可靠性模型,随机过程,未确知理论,机器学习,贝叶斯推断,混沌理论 Software Reliability Models:A Survey LOU Jun-gang JIANG Jian-hui SHUAI Chun-yan JIN Ang (Department of Computer Science and Technology,Tongji University,Shanghai 201804,China) Abstract The software reliability model is one of the best approaches to predict.This parer analyzed and evaluated software reliability quantitatively.It is very important to infer software reliability by reasonably modeling and incorpora— ring software failure data as well as other prior information.The basic concepts of software reliability models were pres— ented.More than thirty different models proposed recently were analysed.Their predictive validity and applicability were discussed in detail.Finally,future research directions and potential applications of software reliability models were pointed out. Keywords Software reliability models,Stochastic process,Unascertained theory,Machine learning,Bayesian inference, Chaos 可靠性是衡量所有软件系统最重要的特征之一。不可靠 的软件会让用户付出更多的时间和金钱,也会使开发人员名 誉扫地。IEEE把软件可靠性定义为在规定条件下,在规定时 间内,软件不发生失效的概率[1]。该概率是软件输入和系统 输出的函数,也是软件中存在故障的函数,输入将确定是否会 遇到所存在的故障。 软件可靠性模型是软件可靠性研究中备受关注、成果最 多、最活跃的一个领域_2]。从Hudson的工作开始,到1971 年Jelinski—Moranda(J—M)模型的发表,直到今天,已公开发表 了几百种模型l_3]。软件可靠性模型旨在根据软件失效数据, 通过建模给出软件的可靠性估计值或预测值。它不仅是软件 可靠性预计、分配、分析与评价的最强有力的工具,而且为改 善软件质量提供了指南。 软件可靠性建模可以基于规模、结构及复杂度等计量,如 Halstead提出程序规模和复杂度计量l4]、McCabe提出两种程 序复杂性测度I5]、分布式软件的可靠性建模[63、基于结构的软 件可靠性建模l7 等。本文主要关注上述第三方面的内容, 所考虑的软件可靠性模型主要是基于软件失效数据,包括时 间和计数数据进行建模。近年来,研究人员提出了许多基于 软件失效数据的软件可靠性建模方法。按照建模理论(随机 过程、混沌理论、机器学习、未确知理论及模糊理论等)的不 同,可以对软件可靠性模型进行分类。 软件可靠性建模的研究尽管已经取得了一定的成效,但 还存在许多关键问题没有解决,与实际项目的要求还有较远 的距离。Musa[ 、Lyu[”]、蔡开元[5]等人已经对软件可靠性 模型的研究做了比较完整的总结。在他们的基础上,本文系 统地分析了软件可靠性建模方法的最新研究进展,讨论了部 分模型的预测性能和适用性等,分析了多个模型通用性差的 原因,最后对未来的研究趋势进行了展望。 本文在第1节对可靠性建模做了一般表述。基于随机过 程模型的各种扩展方法在第2.1节中进行综合介绍。第2.2 节将介绍混沌理论可靠性建模,混沌是数学科学和物理科学 两栖的边缘学科,是丰富的非线性物理背景和深刻数学内涵 相结合的现代学科。第2.3节将介绍软件可靠性建模领域出 现的一些新的方向,如人工神经网络和支持向量机(Support Vector Machine,SVM),它们与贝叶斯推断的共同特征是研 究计算机怎样模拟或实现人类的学习行为,以获取新的知识 或技能,重新组织已有的知识结构使之不断改善自身的性能, 这些均可归于机器学习范畴。第2.4节讨论了未确知理论用 于可靠性建模。关于模糊可靠性建模,文献[5]已经有比较完 整的描述,这里不再赘述。 1 软件可靠性模型的一般表述 令(£ ,t 一, ),(z , 。,…, )分别表示失效计数数据 到稿日期:2009—10—12返修日期:2009—12—29 本文受国家高技术研究发展计划课题(2007AAO1Z142),上海市科学技术委员会信息技术领 域重点科技攻关计划项目(04DZ15032和06DZ15003)资助。 楼俊钢(1982一),男,博士生,主要研究方向为软件可靠性工程、性能评估等,E-mail:1oujungangO21O@hotmail.corn。 ・ 

软件可靠性模型综述

WORD格式可编辑

专业知识整理分享 软件可靠性模型综述

可靠性是衡量所有软件系统最重要的特征之一。不可靠的软件会让用户付出更多的时间和金钱, 也会使开发人员名誉扫地。IEEE 把软件可靠性定义为在规定条件下, 在规定时间内, 软件不发生失效的概率。该概率是软件输入和系统输出的函数, 也是软件中存在故障的函数, 输入将确定是否会遇到所存在的故障。

软件可靠性模型,对于软件可靠性的评估起着核心作用,从而对软件质量的保证有着重要的意义。一般说来,一个好的软件可靠性模型可以增加关于开发项目的效率,并对了解软件开发过程提供了一个共同的工作基础,同时也增加了管理的透明度。因此,对于如今发展迅速的软件产业,在开发项目中应用一个好的软件可靠性模型作出必要的预测,花费极少的项目资源产生好的效益,对于企业的发展有一定的意义。

1软件失效过程

1.1软件失效的定义及机理

当软件发生失效时,说明该软件不可靠,发生的失效数越多,发生失效的时间间隔越短,则该软件越不可靠。软件失效的机理如下图所示:

1)软件错误(Software error):指在开发人员在软件开发过程中出现的失误,疏忽和错误,包括启动错、输入范围错、算法错和边界错等。

2)软件缺陷(Software defect):指代码中存在能引起软件故障的编码,软件缺陷是静态存在的,只要不修改程序就一直留在程序当中。如不正确的功能需求,遗漏的性能需求等。

3)软件故障(Software fault):指软件在运行期间发生的一种不可接受的内部状态,是软件缺陷被激活后的动态表现形式。

4)软件失效(Software failure):指程序的运行偏离了需求,软件执行遇到软件中缺陷可能导致软件的失效。如死机、错误的输出结果、没有在规定的时间内响应等。 WORD格式可编辑

面向服务架构软件实现前的可靠性评价方法

第31卷第9期 2011年9月 计算机应用 Journal of Computer Applications Vo1.3l No.9 Sep.2011 

文章编号:1001—9081(2011)09—2436—04 doi:10.3724/SP.J.1087.2011.02436 

面向服务架构软件实现前的可靠性评价方法 

吕堂祺 ,黄 宁 ,贾晓光 ,王 东 

(1.北京航空航天大学可靠性与系统工程学院,北京100191;2.北京航空航天大学计算机学院,北京100191) 

(1vtangqi@126.corn) 

摘要:为了在软件实现前评估其可靠性,针对基于面向服务架构(SOA)设计的软件提出了一种可靠性评价方 

法:用OWL-S描述软件的需求和设计信息,利用Maude为OWL—S过程模型的控制结构定义形式化语义,使用分布函 

数构建软件的操作剖面,在Maude中增加软件的操作剖面信息和体系结构信息如何参与可靠度计算的描述,在Maude 

系统的支持下,通过重写得到软件的可靠度,并基于此方法设计开发了一个软件可靠性预计工具——sRPr。所提出 

的软件可靠性评价方法综合考虑了数据流、控制流、构件和软件操作剖面信息以及体系结构信息对软件可靠性的影 

响,能够在软件实现前根据软件设计预测其可靠度,为软件的开发设计提供了工程指导。 

关键词:面向服务架构;OWL—S模型;重写逻辑;操作剖面;可靠性评价 

中图分类号:TP3l1.521 文献标志码:A 

Reliability evaluation before the accomplishment of 

service.Oriented architecture software 

LU Tang—qi ,HUANG Ning ,JIA Xiao-guang ,WANG Dong 

(1.School ofReliability and Systems Engineering,Beihang University,Beijing 100191,China; 2.School ofComputer Science and Engineering,Beihang University,Beijing 100191,China) 

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档