软件可靠性工程范文

软件可靠性工程范文
软件可靠性工程范文

软件可靠性工程

1.软件可靠性定义

1.1.广义

是指一切旨在避免、减少、处理、度量软件故障(错误、缺陷、失效)的分析、设计、测试等方法、技术和实践活动。于是有诸多相关术语,如软件可靠性度量、软件可靠性设计、软件可靠性建模、软件可靠性测试、软件可靠性管理等。

1.2.狭义

指软件无失效运行的定量度量,尤其是那些面向用户的定量度量。主要有:

?软件可靠度:表示软件在规定的运行环境中和规定的运行时间内无失效运行的机

会。软件无失效运行的机会多以概率度量,但也可以模糊数学中的可能性加以度量,有时也在数据域上将软件可靠度表示为软件成功执行一个回合的概率。

?软件失效强度:其物理解释是单位时间内软件发生失效的机会。在概率范畴内,它

与软件可靠度有明确的数学关系(R(t)=1-F(t),R(t)为可靠度,F(t)为失效强度)。

?软件平均失效时间(MTTF):表示软件投入运行到出现一个新失效的时间。

上述度量与硬件可靠性中的相应概念本质上是一致的。

“失效”是指程序的功能在某方面没有达到用户的需求。“没有像用户需求的那样工作”是一个很广的定义。因此,可靠性结合了与程序执行相关联的所有属性。例如,它包括正确性、安全性和可使用性的操作方面,以及对用户的友好性。请注意,安全性实际上是软件可靠性的一个特殊子类。

可靠性不包括可移植性、可修改性或文档的可理解性。

可靠性是面向用户的而不是面向开发人员的。可靠性与操作有关,而不是与程序的设计有关,因此可靠性是动态的,而不是静态的。可靠性考虑问题出现的频率,直接与操作经验和在经验中错误的影响相关。因此,可以很容易地将可靠性与成本联系起来。可靠性很适合检查发展趋势的重要性、设定目标和预测什么时候可以达到目标。可靠性使人们可以使用同样的术语对硬件和软件的系统可靠性进行分析,而在真实系统中硬件和软件都同时存在。所以,可靠性度量比错误度量要有用得多。

2.软件可靠性工程的研究范围

软件可靠性工程涉及以下四方面活动和有关技术:

2.1.软件可靠性分析

进行软件可靠性的需求分析、指标分配、故障树分析、失效模式和影响分析、软件开发过程中有关软件可靠性的的特性分析、……等。

2.2.软件可靠性设计和实现

进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计、软件可靠性增长、……等。

2.3.软件可靠性测量、测试和评估

在软件生存周期各阶段进行有关软件可靠性设计、制造和管理方面的属性测量,进行基于软件运行剖面的测试用例随机输入的软件测试、软件可靠性预计、软件可靠性估计、软件可靠性验证、……等。

2.4.软件可靠性管理

确定影响软件可靠性的因素,制定必要的设计和实现准则以及对软件开发各阶段软件可

靠性相关的过程和产品的要求,依据上述有关测量数据和分析结果控制和改进开发过程,进行风险管理(不仅考虑安全性等技术风险,而且考虑进度和经费方面的风险),改进费用效益关系,改进开发过程,对采购或重用的软件进行可靠性管理,……等。

实施软件可靠性工程要解决三个问题,即软件可靠性指标的确定与分配,软件可靠性要求的实现和软件可靠性的验证。

上面提到对有关属性的测量,涉及对软件可靠性测试、评估、预计、估计。

3.软件可靠性工程的思想

软件可靠性工程之所以有效,在于它运用了两个思想:

第一,通过定量描述产品的使用方式,可以更有效地开发产品的功能并且使用这些信息,以便:

?将资源精确地集中到最常用和最关键的功能上。

?使测试工作真实地反映实际条件。

第二,软件可靠性工程平衡用户对可靠性、开发时间和开发费用的需求,从而更加有效。为此,软件可靠性工程要像对开发时间和开发费用设置定量目标那样,对可靠性也设置定量目标,要制定策略来达到这些目标。最后,软件可靠性工程在测试过程中跟踪产品的可靠性,并用来作为产品是否可以发布的标准。通过软件可靠性工程,你可以交付“正好合适”的可靠性的产品,并且既避免了不必要的资金和时间成本,又避免了发生由不够可靠的产品导致的用户不满和问题。

4.软件失效的根源与机理

软件失效的根源在于设计错误,而硬件失效的主要根源通常在于物理变质。然而,为软件可靠性开发的概念和理论确实可以应用于任何设计活动,包括硬件设计。一旦软件(设计)缺陷被适当地修复,通常就被永久性修复了。失效通常只发生在当程序(设计)运行在并非它所开发和测试时面向的环境中的情况。尽管制造过程也可能影响物理组件的质量,但是软件(设计)的复制过程很简单,并且其质量水平很高。

软件失效机理可描述为:软件错误—>软件缺陷—>软件故障—>软件失效。各自具体含义为:

?软件错误(error):在可以预见的时间内,软件仍将由人开发。软件错误是指在

软件开发过程中出现的不希望或不能接受的人为错误,其结果是导致软件缺陷的产

生。

?软件缺陷(defect):软件缺陷是指存在于软件(程序、文档、数据)中的那些不

希望或不可接受的偏差,如少一逗点、多一语句等,其结果是软件运行于某一特定

条件时出现故障。当软件特指程序时,软件缺陷(defect)与软件(程序)污点(bug)

同义。

?软件故障(fault):软件故障是指软件运行时出现的一种不希望或不可接受的内

部状态,譬如,软件处于执行一个多余的循环时,我们说软件出现故障。此时若无

适当措施(容错)加以及时处理,便产生软件失效。

?软件失效(failure):软件失效是指软件运行时产生的一种不希望或不可接受的外

部行为结果。

5.软件可靠性工程测试分类

包括两种类型:可靠性增长测试和确认测试。

这两种类型与不同测试阶段无关,例如单元测试、子系统测试、系统测试或β测试,而是与测试的目标相关。可靠性增长测试的目标是找到并清除错误。

5.1.可靠性增长测试

包括特性测试、负载测试和回归测试。

?在特性测试中,操作都是独立运行的,运行场地环境的影响和交互作用被减小到最

低程度。有时通过在操作之间重新初始化系统来减小交互作用。

?负载测试是指同时运行很多操作,并且是以相同的频率,在其他现场将会出现的相

同环境条件下。这样就可以产生与在现场中可能出现的情况相同的交互作用和环境

条件的影响。验收测试和性能测试都属于负载测试。

?回归测试是在系统发生重要改变之后进行的,包括一些(通常是随机选取的)或全

部特性测试。在回归测试中应该包括所有关键操作。

5.2.确认测试

确认测试不包括调试过程,不会试图通过引起定位错误后再清除错误来解决所发现的失效。被测系统必须是稳定的,不能出现任何改变,不管是由于增加了新特性还是由于错误的清除。通过确认测试,得到一个二选一的结论:或者接受这个软件,或者拒绝它并把它退回给提供商。在确认测试中,所需要的失效数据样本的数量要少得多。事实上,如果无失效运行的时间足够长,那么可以在出现任何失效之前就作出结论。通常只在负载测试(不是特性或回归测试)中使用确认测试。

6.软件可靠性增长模型

软件可靠性增长建模实施于软件测试阶段,主要由软件开发人员完成,旨在从可靠性角度判断软件何时可以停止测试,以交付用户验收。在软件测试阶段,被发现的缺陷不断被剔除,因而可靠性呈增长趋势。软件可靠性增长建模的一个基本假设是测试用例选取代表着软件实际运行环境(剖面)。目前采用的主要方式是将软件视为黑箱功能系统,针对测试过程中收集的软件可靠性数据运用概率或模糊软件可靠性模型加以建模、分析,以获得软件可靠性定量指标的估计值或预测值。

软件可靠性增长模型主要分以下三类。

6.1.缺陷播种模型

假设在软件内部预先设置一些缺陷,再通过分析测试过程中发现的预先设置的缺陷数目占发现的软件缺陷总数之比例,以估计软件缺陷残留数。目的是直接用程序中现存的错误数的多少来反映程序的可靠性。

优点:模型的结果直观。

缺点:不能反映可靠度与时间的关系。

6.2.基于数据域模型

认为软件的运行过程由一系列基本执行过程(称为回合)顺序组成,软件可靠性则由一个回合成功执行的概率来表示。目的是建立软件的可靠性与输入数据的联系,用程序运行中的失效次数与成功次数的比例作为软件可靠性的度量。

优点:概念清晰易懂,易于应用。

缺点:模型与时间度量没有直接的关系,在实现硬-软件系统综合时有一定困难,必须经过附加的数学处理,才能用时间尺度表示可靠度。

6.3.基于时间域模型

以时间作为基准,研究软件的可靠性特征随时间变化的规律。它关注的是一定时间内软件成功运行的机会,在时间域内度量软件可靠性。目前使用得最多的是基于时间域模型。

这类模型按其对数据的需求,可分为两个子类:

●失效时间间隔模型(TBF模型):模型所使用的数据使失效时间间隔,分析方

法建立在以失效时间间隔服从特定的概率分布的基础上。

●失效计数模型(FC模型):模型所使用的数据是一定的时间间隔中的失效数,

分析方法大多建立在Poisson过程理论的基础上。

?优点:模型建立的基础及模型得出的结果,完全符合软件可靠性定义的要求,且与

硬件可靠性的概念兼容,可以满足硬、软件系统综合分析的要求。因此备受青睐,是最重要、品种最多的模型。

?缺点:假设的条件很高,很难完全满足,影响了模型的准确性和人们对其的信心。

?前景:经过20多年的研究、发展,情况有了很大改善,加上模型的数量多,选择

余地大,因此应用前景广阔。

7.软件可靠性模型的另一种分类(随机性分类法)

8.软件可靠性确认(验收)模型

与硬件可靠性验收的情形类似,软件可靠性验收模型与软件可靠性验收的试验方案一一对应,其作用是根据软件可靠性验收的试验结果(收集的数据)给出软件可靠性的定量估计值,以便从可靠性角度判断是否接受该软件,在我们谈论具体的软件可靠性验收模型时,实际上包含着相应的试验方案。目前已提出的软件可靠性验收模型有Nelson模型、定时截尾寿命验收模型、序贯寿命验收模型和模糊模型。

9.许多软件可靠性模型有下列要素的解析描述

?任何时间点所经历的平均失效数

?一段时间间隔内的平均失效数

?任何时间点的失效强度

?失效间隔的概率分布

好的软件可靠性模型应该具有一些重要特性:

?给出未来失效行为的好的映射

?计算一些有用的量

?简单

?可广泛应用

?基于可靠的假设

10.评价可靠性模型的准则

通常认为,评价软件可靠性模型对一个给定项目的支持时应使用下列准则:

?预计有效性:每个模型的预计质量方面的性能和正确性。在这方面的度量是,准确

性、趋势、偏移和噪声。

?容易进行参数测定:测定每个模型的参数所产生的资源需求和影响,即:模型所需

要的参数数量以及估计这些参数的难度。

?假设的质量:该准则是指假设与真实情况的接近程度,以及对特殊环境的适应性。

?能力:能力指模型对与可靠性有关的量的估计能力如何。

?适用性:对软件在测试和运行环境中的演变和修改的处理能力。

?简单性:模型建模原理、数据采集、程序实现和确认的容易程度。

?对噪声的不敏感性:尽管在输入数据和参数中有小的差别,模型仍能产生结果,同

时对显著差别又不丢失相应的能力。

11.软件可靠性模型的假设存在的问题

从许多假设来看,有很多是与软件开发实际不相符合的,许多软件工程师与软件管理人员无法接受。

?许多现存模型(特别是那些早期的软件可靠性模型),考虑到排错引入新的错误会使

问题复杂化,于是假设排错不引入新的错误。这样做的结果虽然使理论上的处理简

单了,但与实际情况相距太远。

?软件的开发靠人完成,则排错问题要人完成,人类行为的不可预测性无论在开发还

是排错,同样要表现出来。事实上,由于排错时的某些处置失当,往往会产生许多

副作用,引入一些始料不及的新错误,是十分自然的。这也正好解释了我们在对软

件中出现的错误进行观察记录时,为什么经常会大幅度地振荡的原因。

?引入新错,另一方面的原因还在于软件产品各模块(指结构化的软件产品而言)间的

逻辑关系错综复杂、互为因果,故而使得局部的某些改动甚至可能产生牵涉全局性

的许多问题。

?随后的一些模型,虽然允许可以引入的错误数为1、2或其它,正是由于看到了这

一问题,才作了一些调整变动,但仍未能从根本上解决问题。

?关于测试时的输入空间“覆盖”使用空间的假设,也是不现实的。为了尽量保证测

试能充分反映出软件产品将来所有可能的使用情况,有必要在设计测试的数据和条件时,使它们能尽可能地反映出软件产品将来使用时的情况、条件和环境。但这并不意味着测试就一定是完全的。测试时的输入空间充其量也只能是从使用时的输入集合的全集合中选取的子集合。如果使用时的问题空间是无穷集合(大多数实际情况也正是如此),则这样选出的子集合,无论如何也不可能“覆盖”问题空间。假如一定要做到“覆盖”,只有使测试无限制地进行下去,而这也正是我们力图要避免的。

?由"覆盖"问题引伸出的测试环境与使用运行环境一致的问题,也是同样性质的,这

一假设也是人们一种良好愿望的反映。特别对于那些包括软件的无法进行试验的系统,则这一假设更显得不合实际。

?不同软件产品的开发过程,由于参加者不同,他们各自的训练、业务经历、程序设

计风格都不相同。因此,通过他们各自的大脑思维所产生出来的"逻辑产品",个性多于共性,这是一种必然现象,也正是软件工程所面临的一大难题。

?模型假设的局限性太多,势必影响到它们的应用范围。目前,软件工程界对于软件

可靠性模型的诸多疑虑,也多半来自于此。如何改进它们,是软件可靠性今后理论研究的重大课题之一。它的突破,也就会消除软件工程界的疑虑,使软件可靠性理论得到更广泛的应用,从而,必然反过来又促进软件可靠性理论的发展。

?软件可靠性模型没有普适性,一个模型可能仅对一个或几个软件做出较为准确的评

估和预计,因此,如何选择、评价模型就成为一个很有必要研究的课题。

12.当前软件可靠性领域面临的主要问题

12.1.软件可靠性设计

就是要大力发展以保证和提高软件可靠性为主要目标的软件设计技术的研究和实践,特别是:

?定性分析:就是要开发利用针对软件设计过程中的软件错误、缺陷的定性分析技术。

?容错实用技术:目前软件容错的基本方法是N文本技术和恢复块技术,但离工程

上简单实用的要求还有一定距离。

12.2.软件可靠性测试

软件可靠性测试是适用于软件确认阶段的一种测试形式,旨在给出软件可靠性的定量估计值,有别于其他测试形式。软件可靠性测试在软件开发过程中很重要,甚至必不可少,是对软件需求规范给出的软件可靠性定量目标的回答,但目前在这方面的研究很薄弱,急需开展。

12.3.软件可靠性建模的统一方法

尽管软件可靠性建模是软件可靠性领域研究最早、最多,成果也最丰富的一个方面,但也可能是争论最激烈的一个方面,至今无统一方法,即不能确定是用概率方法还是模糊方法,甚至连软件可靠度的定义也有时间域与数据域之别,所以应寻找软件可靠性建模的统一方法。寻找统一方法的一个途径是广泛开展现有软件可靠性模型的确认(验证)工作。

12.4.混合硬件-软件系统可靠性

软件不能独立起作用,如果硬件不可靠,软件可靠便失去意义。保证软件可靠性是为了保证混合硬件-软件系统可靠性,因此研究混合硬件-软件系统可靠性这一问题非常重要。但硬件可靠性行为与软件可靠性行为是否本质上一致?是将硬件-软件视为不加区分或不可分的一体还是将其视为硬件、软件两个子系统以某种方式(譬如串联方式)联结而成?类似问题均需回答。

12.5.软件可靠性管理

软件可靠性管理方面还没有建立起具有权威性的管理体系和规范。比如,如何描述软件可靠性、如何测试、如何评估、如何设计、如何提高等。由于目前国内外对于软件可靠性模型的研究多集中在软件的研制阶段,而很少有涉及测试与评估阶段的可靠性模型,所以从事软件可靠性测试与评估研究是一个有理论价值和实际意义、并且存在一定难度的课题。

可靠性软件评估报告

可靠性软件评估报告 目前,关于可靠性分析方面的软件产品在市场上出现的越来越多,其中比较著名的有以下3种产品:英国的ISOGRAPH、广五所的CARMES和美国Relex。总体上来说,这些可靠性软件都是基于相同的标准,因此它们的基本功能也都十分类似,那么如何才能分辨出它们之间谁优谁劣呢?根据可靠性软件的特点和我厂的实际情况,我认为应主要从软件的稳定性、易用性和工程实用性三个方面进行考虑,现从这几个方面对上述软件进行一个简单的论证,具体内容如下。 稳定性 要衡量一个可靠性软件的好坏,首先是要看该软件的运行是否稳定。对一个可靠性软件来说,产品的稳定性十分重要。一个没有经过充分测试、自身的兼容性不好、软件BUG很多、经常死机的软件,用户肯定是不能接受的。当然,评价一个可靠性分析软件是否具有良好的稳定性,其最好的证明就是该产品的用户量和发展历史。 ISOGRAPH可靠性分析软件已将近有20年的发展历史,目前全球已有7000多个用户,遍布航空、航天、铁路、电子、国防、能源、通讯、石油化工、汽车等众多行业以及多所大学,其产品的每一个模块都已经过了isograph的工程师和广大用户的充分测试,因而其产品的稳定性是毋庸置疑的。而广五所的CARMES和美国Relex软件相对来说,其用户量比较少,而且其产品的每一个模块的发布时间都比isograph软件的相应模块晚得多,特别是一些十分重要的模块。 例如,isograph的故障树和事件树分析模块FaultTree+是一个非常成熟的产品,它的发展历史已经有15年了。Markov模块和Weibull模块也具有多年的发展历史,这些模块目前已经拥有一个十分广泛的用户群,它们已经被Isograph的工程师和大量的客户广泛的测试过,产品的稳定性值得用户信赖。而Relex的故障树和事件树相对比较新,它大约在2000年被发布,而Markov模块和Weibull模块2002年才刚刚发布,这些模块还没有经过大量用户的实际使用测试,其功能的稳定性和工程实用性还有待于时间的考验。广五所的CARMES软件的相应模块的发布时间就更晚了,有些甚至还没有开发出来,而且其用户主要集中在国内,并没有经过国际社会的广泛认可。 易用性 对一个可靠性分析软件产品来说,其界面是否友好,使用是否方便也十分重要,这关系到工程师能否在短时间内熟悉该软件并马上投入实际工作使用,能否充分发挥其作用等一系列问题。一个学习十分困难、使用很不方便的软件,即使其功能十分强大,用户也不愿使用。 ISOGRAPH软件可以独立运行在Microsoft Windows 95/98/Me/2000/NT/XP平台及其网络环境,软件采用大家非常熟悉的Microsoft产品的特点,界面友好,十分容易学习和使用。该软件提供了多种编辑工具和图形交互工具,便于用户在不同的模块间随时察看数据和进行分析。你可以使用剪切、复制、粘贴等工具,或者直接用鼠标“托放”来快速的创建各种分析项目,你还可以将标准数据库文件,如Microsoft Access数据库、Excel电子表格以及各种格式的文本文件作为输入直接导入到isograph软件中,使项目的建立变得非常简单。另外,Isograph 各软件工具都提供了功能强大的图形、图表和报告生成器,可以用来生成符合专业设计要求的报告、图形和表格,并可直接应用到设计分析报告结果中。 ISOGRAPH软件的一个显著特性就是将各软件工具的功能、设计分析信息、分析流程等有机地集成在一起,其全部的分析模块可以在同一个集成界面下运行,这既可以保证用户分析项目的完整性,还可以使用户在不同的模块间共享所有的信息,不同模块间的数据可以实时链接,而且还可以相互转化。例如,你可以在预计模块和FMECA模块之间建立数据链接,当你修改预计模块中的数据时,FMECA模块中对应的数据会自动修改,这既可以节省

几种常见软件可靠性测试方法综述及应用对比(精)

几种常见软件可靠性测试方法综述及应用对比 上海交通大学陈晓芳 [摘要]软件可靠性测试是软件可靠性工程的一项重要工作内容,是满足软件可靠性要求、评价软件可靠性水平及验证软件产品是否达到可靠性要求的重要途径。本文探讨、研究了软件可靠性测试的基本概念,分析、对比了几种软件可靠性测试主要方法的优缺点。 [关键词]软件可靠性软件可靠性测试软件测试方法 引言 软件可靠性工程是指为了满足软件的可靠性要求而进行的一系列设计、分析、测试等工作。其中确定软件可靠性要求是软件可靠性工程中要解决的首要问题,软件可靠性测试是在软件生存周期的系统测试阶段提高软件可靠性水平的有效途径。各种测试方法、测试技术都能发现导致软件失效的软件中残存的缺陷,排除这些缺陷后,一般来讲一定会实现软件可靠性的增长,但是排除这些缺陷对可靠性的提高的作用却是不一样的。其中,软件可靠性测试能最有效地发现对可靠性影响大的缺陷,因此可以有效地提高软件的可靠性水平。 软件可靠性测试也是评估软件可靠性水平,验证软件产品是否达到软件可靠性要求的重要且有效的途径。 一、软件可靠性测试概念 “测试”一般是指“为了发现程序中的错误而执行程序的过程”。但是在不同的开发阶段、对于不同的人员,测试的意义、目的及其采用的方法是有差别的。在软件开发的测试阶段,测试的主要目的是开发人员通过运行程序来发现程序中存在的缺陷、错误。而在产品交付、验收阶段,测试主要用来验证软件产品是否达到用户的要求。或者说,对于开发人员,测试是发现缺陷的一种途径、手段,而对于用户,测试则是验收产品的一种手段。

二、软件测试方法 软件测试方法有以下几个主要概念:白盒测试、黑盒测试、灰盒测试。 白盒测试(W h ite-box testing或glass-box testing是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试(B lack-box testing是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件或某种软件功能的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。通常测试人员在进行测试时不仅使用肯定出正确结果的输入数据,而且还会使用有挑战性的输入数据以及可能结果会出错的输入数据以便了解软件怎样处理各种类型的数据。 灰盒测试(Gray-box testing就像黑盒测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的,甚至于还读过部分源代码,因此测试人员可以有的放矢地进行某种确定的条件或功能的测试。这样做的意义在于:如果你知道产品内部的设计和透过用户界面对产品有深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。 1、白盒测试 白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 白盒的测试用例需要做到: (1保证一个模块中的所有独立路径至少被使用一次; (2对所有逻辑值均需测试true和false;

浅谈软件可靠性工程的应用(一)

浅谈软件可靠性工程的应用(一) 摘要:本文就武器装备软件开发的现状和中存在的问题,介绍了软件可靠性工程的发展及其研究的内容,对软件可靠性工程如何在软件开发中应用进行了重点说明,并提供了成功应用软件可靠性工程的典型案例,指出软件可靠性工程研究的必要性。 关键词:软件可靠性工程随着科学技术的不断进步,计算机技术被越来越多地应用到武器系统中。计算机软件的复杂程度随着功能的增强,因而系统的可靠性也越来越与软件直接相关。例如AFTI/F-16飞机首航因软件问题推迟一年,事先设计的先进程序无法使用;海湾战争中F/A–18飞机飞行控制系统计算机500次故障中,软件故障次数超过硬件。软件可靠性成为我们关注的一个问题,本文仅就软件可靠性工程在软件开发过程中的应用谈谈自己的认识。 1、软件可靠性工程的基本概念及发展 1.1什么是软件可靠性工程 软件可靠性工程简单地说就是对基于软件产品的可靠性进行预测、建模、估计、度量及管理,软件可靠性工程贯穿于软件开发的整个过程。 1.2软件可靠性工程的发展历程 软件可靠性问题获得重视是二十世纪60年代末期,那时软件危机被广泛讨论,软件不可靠是造成软件危机的重要原因之一。1972年正式提出Jelinski—Moranda模型,标志着软件可靠性系统研究的开始。在70年代.软件可靠性的理论研究获得很大发展,一方面提出了数十种软件可靠性模型,另一方面是软件容错的研究。在80年代,软件可靠性从研究阶段逐渐迈向工程化。进入90年代后,软件可靠性逐渐成为软件开发考虑的主要因素之一,软件可靠性工程在软件工程领域逐渐取得相对独立的地位,成为一个生机勃勃的分支。 1.3软件可靠性工程研究的基本问题 软件可靠性工程的主要目标是保证和提高软件可靠性。为达到这一目标,首先要弄清软件为什么会出现故障或失效。只有这样,才有可能在软件开发过程中减少导致软件故障或失效的隐患,且一旦出现软件故障或失效,有可能采取有效措施加以清除。但是软件是开发出来的,满足可靠性要求的软件也是开发出来的,因此,软件可靠性工程的核心问题是如何开发可靠的软件。而有了软件,又该如何检验其是否满足可靠性要求?这是软件可靠性工程的又一个问题。 2、软件可靠性工程在软件开发中的应用 2.1项目开发计划及需求分析阶段 在项目开发计划阶段需根据产品具体要求作出软件项目开发计划,明确项目的目的、条件、运行环境、软件产品要求、人员分工和职责及进度,并估计产品的可靠性。需求分析阶段要根据项目开发计划阶段确定软件开发的主要任务、次要任务和其它任务,并设计软件程序的基本流程、软件结构、模块的定义和输入输出数据、接口和数据结构等同时应对项目开发计划阶段作出的可靠性预计进一步细化形成可靠性需求,建立具体的可靠性指标。这个阶段的可靠性工作一般应如下安排: ⑴确定功能概图 所谓功能概图就是产品的各种功能及其在不同环境条件下使用的概率。为确立功能概图必须定义产品的功能,功能定义不但包括要完成的任务,还包括影响处理的环境因素。 ⑵对失效进行定义和分类 这里应从用户的角度来定义产品失效,将软件和硬件失效及操作程序上的失效区分开,并将其按严重程度进行分类。 ⑶确定用户的可靠性要求 在这个阶段应由系统设计师、软件设计师、可靠性师、测试人员及用户方代表可靠性评估小组共同根据用户提出的系统可靠性来确定软件的可靠性。

《可靠性工程》教学大纲

《可靠性工程》教学大纲 课程代码:080642020 课程英文名称:Reliability Engineering 课程总学时:24 讲课:24 实验:0 上机:0 适用专业:安全工程 大纲编写(修订)时间:2017.7 一、大纲使用说明 (一)课程的地位及教学目标 随着科学技术的发展,产品的结构和功能日趋复杂化和多样化,致使对产品质量的要求逐渐从与时间无关的性能参数发展到与时间有关的可靠性指标,即要求产品在规定的条件下和规定的时间内,具有完成规定功能的能力。人们愈来愈认识到可靠性是保证产品质量的关键。尤其是我国加入WTO以后,机电产品将面临严峻的挑战,推行可靠性技术迫在眉睫。 通过该课程的学习,使学生掌握如下内容: (1)可靠性的基本概念、原理和计算方法等知识; (2)结合工程实际,使学生体会和掌握可靠性基本理论和分析解决工程实际问题的基本方法; (3)可靠性管理的基本知识,为可靠性工程理论的进一步研究和实际应用打下基础。 (二)知识、能力及技能方面的基本要求 1.基本知识:了解可靠性概念等基本知识。 2.基本理论和方法:掌握维修系统与不可维修系统等基本原理,熟悉计算维修系统与不可维修系统可靠度等基本方法。 3.基本技能: 可靠性试验的类型、试验方案设计等基本技能。 (三)实施说明 1.教学方法:课堂教学过程中,重点讲授基本原理、基本概念和基本方法的讲解,并通过以下三种方法进行教学: 第一层次:原理性教学方法。 解决教学规律、教学思想、新教学理论观念与学校教学实践直接的联系问题,是教学意识在教学实践中方法化的结果。如:启发式、发现式、注入式方法等。 第二层次:技术性教学方法。 向上可以接受原理性教学方法的指导,向下可以与不同学科的教学内容相结合构成操作性教学方法,在教学方法体系中发挥着中介性作用。例如:讨论法、读书指导法等。 通过以上的教学,使学生思考问题、分析问题和解决问题的能力大大提高,进而培养学生自主学习的能力,为以后走入社会奠定坚实的基础。 2.教学手段:本课程属于专业课,在教学中采用电子教案、CAI课件及多媒体教学系统等先进教学手段,以确保在有限的学时内,全面、高质量地完成课程教学任务。 (四)对先修课的要求 无。 (五)对习题课的要求 对习题课的要求(2学时):掌握可靠性基本概念、可维修系统与不可维修系统等基本知识。 (六)课程考核方式

软件可靠性模型综述(完整资料).doc

【最新整理,下载后即可编辑】 软件可靠性模型综述 可靠性是衡量所有软件系统最重要的特征之一。不可靠的软件会让用户付出更多的时间和金钱, 也会使开发人员名誉扫地。IEEE 把软件可靠性定义为在规定条件下, 在规定时间内, 软件不发生失效的概率。该概率是软件输入和系统输出的函数, 也是软件中存在故障的函数, 输入将确定是否会遇到所存在的故障。 软件可靠性模型,对于软件可靠性的评估起着核心作用,从而对软件质量的保证有着重要的意义。一般说来,一个好的软件可靠性模型可以增加关于开发项目的效率,并对了解软件开发过程提供了一个共同的工作基础,同时也增加了管理的透明度。因此,对于如今发展迅速的软件产业,在开发项目中应用一个好的软件可靠性模型作出必要的预测,花费极少的项目资源产生好的效益,对于企业的发展有一定的意义。 1软件失效过程 1.1软件失效的定义及机理 当软件发生失效时,说明该软件不可靠,发生的失效数越多,发生失效的时间间隔越短,则该软件越不可靠。软件失效的机理如下图所示:

1)软件错误(Software error):指在开发人员在软件开发过程中出现的失误,疏忽和错误,包括启动错、输入范围错、算法错和边界错等。 2)软件缺陷(Software defect):指代码中存在能引起软件故障的编码,软件缺陷是静态存在的,只要不修改程序就一直留在程序当中。如不正确的功能需求,遗漏的性能需求等。 3)软件故障(Software fault):指软件在运行期间发生的一种不可接受的内部状态,是软件缺陷被激活后的动态表现形式。 4)软件失效(Software failure):指程序的运行偏离了需求,软件执行遇到软件中缺陷可能导致软件的失效。如死机、错误的输出结果、没有在规定的时间内响应等。 从软件可靠性的定义可以知道,软件可靠性是用概率度量的,那么软件失效的发生是一个随机的过程。在使用一个程序时,在其他条件保持一致的前提下,有时候相同的输入数据会得到不同的输出结果。因此,在实际运行软件时,何时遇到程序中的缺陷导致软件失效呈现出随机性和不稳定性。 所有的软件失效都是由于软件中的故障引起的,而软件故障是一种人为的错误,是软件缺陷在不断的测试和使用后才表现出来的,如果这些故障不能得到及时有效的处理,便不可避免的会

可靠性工程B卷-试题及答案

东北农业大学成人教育学院考试题签 可靠性工程(B ) 1. 一种设备的寿命服从参数为λ的指数分布,假如其平均寿命为3700小时,试求其连续工作300小时的可靠度 和要达到R *=0.9的可靠寿命是多少? 2. 如果要求系统的可靠度为99%,设每个单元的可靠度为60%.需要多少单元并联工作才能满足要求? 3. 某型号电视机有1000个焊点,工作1000小时后,检查100台电视机发现2点脱焊,试问焊点的失效率多少? 4. 一个机械电子系统包括一部雷达,一台计算机,一个辅助设备,其MTBF 分别为83小时,167小时和500小时,求系 统的MTBF 及5小时的可靠性? 5. 比较二个相同部件组成的系统在任务时间24小时的可靠性,已知部件的/.010=λ小时 ①并联系统. ②串联系统. ③ 理想开关条件下的储备系统:1=SW λ,储备部件失效率/.*010==λλ小时.

6. 一个系统由五个单元组成,其可靠性逻辑框图如图所示.求该系统可靠度和画出故障树. 7. 某型号电视机有1000个焊点,工作1000小时后,检查100台电视机发现2点脱焊,试问焊点的失效率多少? 解:100台电视机的总焊点有 1001000105 ?= 一个焊点相当一个产品,若取 ?t =1000 小时,按定义: 8. 一个机械电子系统包括一部雷达,一台计算机,一个辅助设备,其MTBF 分别为83小时,167小时和500小时,求系 统的MTBF 及5小时的可靠性? 9. 比较二个相同部件组成的系统在任务时间24小时的可靠性,已知部件的/.010=λ小时 ①并联系统. ②串联系统. A C D B E 0.90.90.9 0.90.9

机械可靠性综述

机械可靠性设计综述 摘要:可靠性优化设计是在常规优化设计的基础上,结合可靠性设计理论发展起来的一种有效的优化设计方法。本文在总结现有文献的基础上对机械可靠性优化设计进行了综述,系统阐述了机械可靠性、可靠性设计、可靠性优化设计及可靠性试验的理论及方法。 关键词:可靠性;优化设计;可靠性试验 Review of Optimization Design of Mechanical Reliability REN Ju-peng (School of Mechanical Engineering and Automation, Northeastern University, Student ID: 1270174) Abstract:On the basis of traditional optimization design, combined with the theory of reliability design, reliability optimization design is an effective optimization design method. In this paper, the existing literatures are firstly summarized, then the theory and method of mechanical reliability, reliability design, reliability optimization design and reliability test are systematically reviewed. Key words:reliability; optimization design; reliability test 随着现代工业技术的飞速发展,机械产品日趋复杂化、大型化、高参数化,使产品发生故障的机会增多,因而,可靠性作为产品质量的主要指标,愈来愈受到工程界的重视。机械可靠性,是指机械产品在规定的使用条件、规定的时间内完成规定功能的能力。机械的可靠性是机械设计的主要目的之一,有效地增强产品质量、降低产品成本、减轻整机质量、提高可靠性和作业效率是可靠性设计的主要目标。随着工业技术的发展,机械产品性能参数日益提高,结构日趋复杂,使用场所更加广泛,产品的性能和可靠性问题也就越来越突出。机械可靠性设计的基本任务是在故障物理学研究的基础上,结合可靠性试验以及故障数据的统计分析,提供实际计算的数学力学模型和方法及实践。 科技研究人员和工程设计人员积极投入到可靠性工程的研究与实践之中,取得了可喜的成果。张义民[1]结合现代数学力学理论,系统地阐明机械可靠性设计、机械动态可靠性设计、机械可靠性优化设计、机械可靠性灵敏度设计、机械可靠性稳健设计等可靠性设计理论与方法内涵与递进。陈静等[2]阐述了机械产品优化设计及可靠性的相关理论,介绍了可靠性优化设计的应用及发展现状,并介绍了机械行业相关的软件应用情况。喻天翔等[3]对当前机械可靠性的特点和争议进行介绍,从Bayesian理论、FMECA和疲劳可靠性试验三个方面总结了机械可靠性试验技术相关的重要理论问题及其发展,并阐述了可靠性增长试验、加速试验和微机械可靠性试验技术的国内外发展,总结了机械可靠性试验技术研究存在的问题及其发展趋势。 本文将在上述文献的基础上对机械可靠性优化设计进行综述,系统阐述机械可靠性、可靠性设计、可靠性优化设计及可靠性试验的理论及方法。 1可靠性设计 1.1 可靠性设计 传统的机械设计方法认为零件的强度和应力都是单值,只要计算出的安全系数大于规定的安全系数,就认为零件是安全的,因而设计过程中忽略了各设计参数的随机性。可靠性设计将零件的应力和强度作为随机变量,认为应力受到各种环境因素(温度、腐蚀、粒子辐射等)的影响,具有一定的分布规律;强度受材料的性能、工艺环节的波动和加工精度等的影响,也是具有一定的分布规律。可靠性设计认为所设计的任一机械存在着一定的失效可能性,设计时根据需要预先控制的失效概率或可靠度,考虑各参数的随机性及分布规律,以反映出零部件的实际工作状况。 产品的可靠性表示产品在规定使用条件和使用期限内,保持其正常技术性能完成规定功能的能力。可靠性设计的一个目标是计算可靠度,可靠度是指产品在规定的条件下和规定的时间内,完成规定功能的概率。其表达式为: ()0 () x g X R f X dX > =? 式中f x(X)为基本随机参数向量 T 12 (,,) n X X X X =???的联合概率密度;g(X)为状态函数,可表示零件的不同状态:g(X)>0为安全状态,

19软件可靠性模型研究综述_王二威

软件可靠性模型研究综述 王二威 (北京理工大学珠海学院,广东 珠海 519088) 摘 要:本文对软件可靠性经典模型、模型选择、普适模型的研究进行了归纳和述评,提出了软件可靠性综合预测框架,给出了软件可靠性综合预测进一步的研究方向。 关键词:软件可靠性;经典模型;综合预测;框架研究 中图分类号:TP311 文献标识码:A Review of Research on Software Reliability Models WANG Erwei (Beijing Institute of Technology ,Zhuhai ,Zhuhai 519088,China ) Abstract:In this paper,the classical model of software reliability,model selection,and the research of the universal model were summarized and reviewed.The framework of software reliability comprehensive prediction was proposed.The further research directions of software reliability comprehensive prediction were proposed. Keywords:software reliability;classical model;comprehensive prediction;framework research 文章编号:2096-1472(2016)-02-01-02 1 引言(Introduction) 软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。自20世纪60年代“软件危机”出现之后,越来越多的学者开始关注软件可靠性的定量评估和预测。软件可靠性覆盖整个软件开发过程,与软件工程密切相关,它源于工程,又服务于工程。在新技术、新应用(如web软件、移动APP等等)不断涌现的当前,重新审视软件开发和应用环境,开展软件可靠性预测研究,有助于推动软件工程项目的实践,降低软件错误率,提升软件质量,从而保障软件所支撑的工程项目的高效完成,推动我国软件产业的持续发展。 本文对软件可靠性模型研究的相关文献进行了梳理,对前人的研究成果进行了归纳,构建了新计算范式下软件可靠性综合预测框架,提出了软件可靠性综合预测的研究方向。 2 经典软件可靠性模型(Classical software reliability model) 软件可靠性建模的基本方法是:以历史失效数据为基础,对软件失效规律进行趋势拟合,进而预测未来的失效可能。早期软件可靠性的研究是基于概率统计的思想,将软件失效过程看作一个随机过程,从Hudson的工作开始,到1971年J-M模型的发表,再到今天,已公开发表了几百种模型[1](此类模型称之为“经典模型”)。 经典模型存在两个明显的缺陷:第一,在对软件可靠性进行评估预测时都有些固定不变的假设,而这些假设无从证明;第二,模型只考虑输入的随机性,而软件在实际运行时却可能受到各种随机因素影响,使得软件失效出现的情况比较复杂多变。而用某一个固定的失效模式去解释复杂多变的情况,显然是不合适的。实践证明,经典模型的应用存在不 一致性的问题,对一个软件有很好的适用性而对其他的软件则效果很差[2,3],此外预测精度也不够理想。 针对经典模型的不一致性问题,研究者们从两个方面开展了进一步的研究:一是设计一套行之有效的模型选择方法,能够让工程人员从众多的软件可靠性经典模型中选择出最适合实施项目的模型,二是建立一个普适模型。 3 模型选择的研究(Research on model selection) 模型选择策略基本可以归纳为两类:一类是基于模型假设与软件环境的相似性,一类是基于对历史失效数据预测性能的评价。 (1)基于模型假设与软件环境的相似性的模型选择。Andersson、Goel、Sharma等人分别提出了模型假设相似性来选择合适模型的方法[4],基于假设矩阵的模型选择技术实践结果也并不理想[5]。 (2)基于对历史失效数据预测性能的评价。该类策略的模型选择技术依赖于对模型预测性能的评价,1983年,Musa 等人提出了“预测有效性、模型能力、假设质量、模型适用性、简单性”等五个软件可靠性模型评价准则,在学术界获得了较大范围的认可。之后的研究人员不断拓展软件可靠性的影响变量范围,提出了模型拟合性、模型偏差、模型偏差趋势、覆盖度、预测数量、模型噪声等等众多的评价准则,力图从多个角度对软件可靠性模型进行评价。 关于采用何种评价方法来选择模型,一是基于数据挖掘、机器学习的方法[6],汪浩等人提出了基于聚类思想的软件可靠性模型选择,吴勤、吴晨、朱磊等人采用Kohonen网络、BP神经网络、决策树等方法对汪浩等人的研究成果进行了改进,在一定程度上提高了分类系统的准确性,李克文等 软件工程 SOFTWARE ENGINEERING 第19卷第2期2016年2月 V ol.19 No.2Feb. 2016

如何开展软件可靠性工程

如何开展软件可靠性工程 随着科学高速发展,武器装备系统和自动化指挥系统等军用系统对软件的依赖程度越来越高。软件在武器装备、航空航天等要求高可靠性的系统中扮演着越来越重要的角色。 我公司主要从事航空发动机研制和生产等方面工作,随着航空发动机技术的逐代更新,燃油控制系统由以往的机械液压控制结构改成了控制精度更高的数字控制系统,而数字控制系统的核心就是软件控制,软件的质量将会直接影响发动机的性能和安全。因此,军用设备软件可靠性就成为确保军事系统质量的瓶颈和关键。软件可靠性是软件质量中最为重要的一项属性,软件可靠性设计技术是确保和提高软件质量的重要手段。 软件可靠性工程是以保证和提高软件可靠性为目标,采取系统化的技术,通过工程化方法加以实施并对其过程进行工程化管理的过程技术。软件可靠性工程是软件工程研究与实践的必然结果,是可靠性工程发展的必然选择,已经成为软件业界和可靠性工程界关注的焦点,研究的热点,实践的重点。 上世纪70年代中后期,以软件工程发展为契机,软件可靠性工程得以产生和广泛研究与实践,取得了一定成效:大量可靠性模型相继推出并不断改进;可靠性设计与测试技术得以开发并逐步应用于工程实践;可靠性分析、评估技术体系与标准得以建立并在一些重点工程项目中得到应用;可靠性工程管理技术开发倍受推崇,以过程、组织、

管理模式改进为重点的管理方法得以产生。尽管如此,软件可靠性正日益严重地制约着软件更广泛的应用,甚至造成灾难性后果,武器系统等大型复杂系统软件越来越证明是一个薄弱环节,即使是通过测试的软件也常常受到错误的困扰。与此同时,一个前所未有日益增长的需求是:软件应具有检定合格的可靠性,即使是工业和日常生活中的一般应用软件也无不对其可靠性提出了前所未有的高要求。况且,不能保证软件的可靠性水平哪怕是在一段时间的将来是足够的。 软件可靠性模型是软件可靠性工程界倍受关注、研究最早、成果最丰富、目前仍然最活跃的领域,模型验证与应用依然是软件可靠性工程的热点。软件可靠性建模是针对具体的软件特征,根据可靠性数据以统计方法给出软件可靠性的估计值或预测值,是一个在不同结构元素中不断分解其依赖关系的迭代过程,旨在评估软件所提供的服务以及软件过程之间的依赖关系,是从本质上理解软件可靠性行为的基础。 软件可靠性模型是软件开发过程、开发技术、测试技术、验证方法、设计语言、运行环境、开发人员素质等相关因素的函数。一个优秀的软件可靠性模型,应尽可能反映这些因素。但包含所有这些因素的模型可能是一个高阶多维方程,不便于工程应用。因此,可靠性建模时应作适当假设,简化模型。模型假设必须准确、合理、具有有效的数据支持和逻辑一致性。但大多数模型假设所固有的目的性制约了模型的有效性和适用范围。此外,假设质量尤其是那些未经验证或粗略的假设对模型的精确性具有显著影响。基于拟合优度检验的模型假设

软件可靠性模型综述

软件可靠性模型综述 可靠性是衡量所有软件系统最重要的特征之一。不可靠的软件会让用户付出更多的时间和金钱, 也会使开发人员名誉扫地。IEEE 把软件可靠性定义为在规定条件下, 在规定时间, 软件不发生失效的概率。该概率是软件输入和系统输出的函数, 也是软件中存在故障的函数, 输入将确定是否会遇到所存在的故障。 软件可靠性模型,对于软件可靠性的评估起着核心作用,从而对软件质量的保证有着重要的意义。一般说来,一个好的软件可靠性模型可以增加关于开发项目的效率,并对了解软件开发过程提供了一个共同的工作基础,同时也增加了管理的透明度。因此,对于如今发展迅速的软件产业,在开发项目中应用一个好的软件可靠性模型作出必要的预测,花费极少的项目资源产生好的效益,对于企业的发展有一定的意义。 1软件失效过程 1.1软件失效的定义及机理 当软件发生失效时,说明该软件不可靠,发生的失效数越多,发生失效的时间间隔越短,则该软件越不可靠。软件失效的机理如下图所示: 1)软件错误(Software error):指在开发人员在软件开发过程中出现的失误,疏忽和错误,包括启动错、输入围错、算法错和边界错等。 2)软件缺陷(Software defect):指代码中存在能引起软件故障的编码,软件缺陷是静态存在的,只要不修改程序就一直留在程序当中。如不正确的功能需求,遗漏的性能需求等。3)软件故障(Software fault):指软件在运行期间发生的一种不可接受的部状态,是软件缺陷被激活后的动态表现形式。 4)软件失效(Software failure):指程序的运行偏离了需求,软件执行遇到软件中缺陷可能导致软件的失效。如死机、错误的输出结果、没有在规定的时间响应等。

系统可靠性习题

系统可靠性习题 学号___________ 姓名___________ 第一章习题 1-1如图所示,有三个阀门连在一起。阀门如发生故障,水便不能通过。设三个阀门发生故障的概率均为p。求水能流过a、c的概率。 图1-1 1-2判断系统是否正常工作,采用“多数表决”,即有两个或三个单元正常工作,系统就可正常工作。如各单元的可靠工作概率为R,表决器可靠工作概率为1,求系统的可靠工作概率。 工作单元 图1-2 2/3多数表决系统 1-3信号机灯泡使用时数在1000小时以上概率为0.2,求三显示信号机三个灯泡在使用1000小时后最多有一个坏了的概率。 1-4在某个车站电气集中设备中有800个继电器。设在某段时间里每个继电器的故障率为0.005。求在这段时间内不多于10个继电器故障的概率。 1-5某产品先后通过A、B、C三种机器加工,这些机器的偶然故障及人为原因将影响产品质量。产品是否合格只有在生产全过程终了时才能检查出来。根据统计资料,三种产品的合格率分别为30%,40%和20%。假设机器独立运转,求产品的合格率。 1-6计算机内第K个元件在时间T内发生故障的概率等于P K(K=1,2……n)。所有元件的工

作是相互独立的,如果任何一个元件发生故障计算机就不能正常工作。求在时间T内计算机正常工作的概率。 1-7电路由电池Ⅰ与两个并联的电池Ⅱ、Ⅲ串联而成。设电池Ⅰ、Ⅱ、Ⅲ损坏的概率分别为0.3、0.2和0.2,各个电池损坏与否是独立的。求电路由于电池损坏而发生故障的概率。 1-8 电路由五个元件联接而成,设各个元件发生故障是独立的,已知元件1、2发生断路故障的概率各为0.2,元件3、4、5发生断路故障的概率为0.5,求: ⑴由于元件1或2发生断路故障而电路断路的概率; ⑵由于元件3、4、5都发生断路故障而电路断路的概率; ⑶由于任何元件发生断路故障而电路断路的概率。 第二章习题 2-1有两种零件,一种寿命分布呈指数型,平均寿命为1000小时;另一种寿命分布呈正态型,平均寿命为900小时,标准离差为400小时。现打算在100小时的使用时间内尽量不发生故障,问选择哪一种零件为宜? 2-2某种产品的寿命服从指数分布,λ为5*10-4/小时,求100小时内与1000小时内的可靠度。 2-3失效服从指数分布时,为使1000小时的可靠度在80%以上,失效率必须低于若干? 2-4某产品寿命服从指数分布,投入运用到平均寿命时,产品可靠度为多少?说明什么问题? 2-5某铁路机车信号系统可靠度服从指数分布,投入运用后,平均四年,35,040小时失效一次,若调好后用一个月(720小时),问可靠度是多少?若调好后用了四年,可靠度又是多少? 2-6一种晶体管的使用寿命(单位:小时),分布密度为: 100/x2x≥100 Φ(x)= 0 x<100 设某种仪器内装三个上述晶体管,求: ①使用的最初150小时内设有一个晶体管损坏的概率; ②这段时间只有一个晶体管损坏的概率; ③ε0的分布函数及其图形。 2-7某设备平均故障时间为4000小时,试求其连续使用500小时的可靠度。如要求该设备连续运行的可靠度为95%,问可期望其运行多少时间(设备失效服从指数分布)。 2-8在可靠性试验中,产品损坏概率为0.05,试验100件产品,求:

软件可靠性工程范文

软件可靠性工程 1.软件可靠性定义 1.1.广义 是指一切旨在避免、减少、处理、度量软件故障(错误、缺陷、失效)的分析、设计、测试等方法、技术和实践活动。于是有诸多相关术语,如软件可靠性度量、软件可靠性设计、软件可靠性建模、软件可靠性测试、软件可靠性管理等。 1.2.狭义 指软件无失效运行的定量度量,尤其是那些面向用户的定量度量。主要有: ?软件可靠度:表示软件在规定的运行环境中和规定的运行时间内无失效运行的机 会。软件无失效运行的机会多以概率度量,但也可以模糊数学中的可能性加以度量,有时也在数据域上将软件可靠度表示为软件成功执行一个回合的概率。 ?软件失效强度:其物理解释是单位时间内软件发生失效的机会。在概率范畴内,它 与软件可靠度有明确的数学关系(R(t)=1-F(t),R(t)为可靠度,F(t)为失效强度)。 ?软件平均失效时间(MTTF):表示软件投入运行到出现一个新失效的时间。 上述度量与硬件可靠性中的相应概念本质上是一致的。 “失效”是指程序的功能在某方面没有达到用户的需求。“没有像用户需求的那样工作”是一个很广的定义。因此,可靠性结合了与程序执行相关联的所有属性。例如,它包括正确性、安全性和可使用性的操作方面,以及对用户的友好性。请注意,安全性实际上是软件可靠性的一个特殊子类。 可靠性不包括可移植性、可修改性或文档的可理解性。

可靠性是面向用户的而不是面向开发人员的。可靠性与操作有关,而不是与程序的设计有关,因此可靠性是动态的,而不是静态的。可靠性考虑问题出现的频率,直接与操作经验和在经验中错误的影响相关。因此,可以很容易地将可靠性与成本联系起来。可靠性很适合检查发展趋势的重要性、设定目标和预测什么时候可以达到目标。可靠性使人们可以使用同样的术语对硬件和软件的系统可靠性进行分析,而在真实系统中硬件和软件都同时存在。所以,可靠性度量比错误度量要有用得多。 2.软件可靠性工程的研究范围 软件可靠性工程涉及以下四方面活动和有关技术: 2.1.软件可靠性分析 进行软件可靠性的需求分析、指标分配、故障树分析、失效模式和影响分析、软件开发过程中有关软件可靠性的的特性分析、……等。 2.2.软件可靠性设计和实现 进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计、软件可靠性增长、……等。 2.3.软件可靠性测量、测试和评估 在软件生存周期各阶段进行有关软件可靠性设计、制造和管理方面的属性测量,进行基于软件运行剖面的测试用例随机输入的软件测试、软件可靠性预计、软件可靠性估计、软件可靠性验证、……等。 2.4.软件可靠性管理 确定影响软件可靠性的因素,制定必要的设计和实现准则以及对软件开发各阶段软件可

软件可靠性的评价准则

软件可靠性的评价准则 迄今为止,尚无一个软件可靠性模型对软件的不同特性和不同使用环境都有效。已公开发表的100余种软件可靠性模型,表达形式不同,适应性各异,与实际的软件开发过程有较大差异。而且,新模型还在不断发表。因此,在进行软件可靠性预计、分析、分配、评价和设计之前,对软件可靠性模型进行评价及选择与软件项目相符或相近的模型非常重要。通过建立有效的评价准则,在考虑它们与各种软件的关系的基础上,对拟评价的可靠性模型就有效性、适应性和模型能力等进行评价,判定它们的价值,比较它们的优劣,然后选择有效的软件可靠性模型。另一方面,在可接受的模型之间无法做出明确的选择时,可根据模型的使用环境等,在模型评价准则的基础上,进行模型择优。当然,软件可靠性模型的评价不仅依赖于模型的应用,还依赖于理论的支持和丰富的、高质量可靠性数据的支持。软件可靠性模型的评价最早始于1984年Iannino、Musa、Okumoto和Littlewood所提出的原则。根据这一原则,结合后人的工作,形成了基本的软件可靠性评价准则集。它们是软件可靠性模型比较、选择和应用的基础。 准则一:模型预测有效 软件可靠性模型最重要的评价指标是模型预测的有效性。它根据软件现在和过去的故障 行为,用模型预测软件将来的故障行为和可靠性水平。它主要通过能有效描述软件故障随机过程特性的故障数方式对模型进行描述与评价。基于软件故障时间特性的随机过程也是一种常用的方法,而且这两种方法相互重叠。 要确定软件可靠性模型预测的有效性,首先要比较模型预测质量。这种比较通常通过相 对误差法、偏值、U图法、Y图法、趋势法等方法进行。故障数度量是一种在工程上被广泛应 用的方法。此外,还可以通过比较不同数据集合所做出的中位线图形来评价模型预测的有效性。如果一个模型产生的曲线最接近于0,则该模型是最优的。而且,这种有效性测定方法有效地克服了规范化图形评价与具体软件项目之间的联系,保证了它的独立性。 用给定可靠性数据对软件可靠性模型进行比较时,必须考察拟合模型与观察数据的一致 性和符合性。当然,根据拟合模型进行采样,是否可以获得足够的观察数据非常重要。拟合优度检验是一种系统地表达并证明观察数据和拟合模型之间全局符合性的方法,使用最广泛的是x2检验。 1.准确性 软件可靠性模型预测的准确性可用前序似然函数来测定。设观察到的失效数据对应于软 件相继失效之间的时间序列t1,t2,..,ti-1,并用这些数据来预测软件在未来可能的Ti,即希 望得到Ti的真实概率密度函数Fi(t)的最优估计值。假设以t1,t2,...,ti-1为基础预测Ti的 分布Fi(t)的概率密度函数 @@42D11000.GIF;表达式1@@ 对Ti+1,Ti+2,...,Ti+n的这种向前一步预测,即进行了n+1次预测之后的前序似然函数为 @@42D11001.GIF;表达式2@@ 由于这种度量常常接近于0,所以常用其自然对数进行比较。假定比较的两个软件可靠性 模型分别为A和B,则对它们进行n次预测之后的前序似然比为 @@42D11002.GIF;表达式3@@

软件安全性综述、林建国、1407142119

“计算机导论”小论文论文题目软件安全性综述所在院系计算机与信息工程学院 专业班级 2014级软件工程(工程技术) 姓名学号林建国(17407142119) 任课教师翁伟

软件安全性综述 专业:软件工程(工程技术)姓名:林建国学号:1407142119 摘要:软件安全性已逐渐成为软件工程和安全工程交叉领域的研究热点之一。对软件安全性的内涵与外延进行了剖析,给出了软件安全性定义。讨论了软件安全性的度量模型。通过分析软件安全领域存在的问题,以软件工程思想为基础,运用系统安全工程的原则,提出一个软件安全性保障框架。在软件开发生命周期过程中,将软件安全保障集成到需求分析,设计编码,测试,维护四个环节中,详细阐述了每个环节要进行的安全性处理的任务,采用一系列安全预测和分析技术,确保软件开发的安全性和可靠性。 关键字:软件工程;软件测试;系统安全工程;软件安全性保障框架。 一引言自从互联网普及后,软件安全问题愈加突显。由互联网上的病毒和攻击者引起的身份窃取、数据丢失以及一般性的混乱已经随处可见。单单2008年第一季度,就有1474个不同的软件脆弱点报告上来,只有64个发布了相应的解决方案。也就是说解决率大约只有4%[1]。不少安全专家都认为应用软件安全将成为信息系统安全的下一个热点。软件安全一般分为应用程序级别的安全性和操作系统级别的安全性。应用程序级别的安全性,包括对数据或业务功能的访问,在预期的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据等。操作系统级别的安全性是确保只有具备系统平台访问权限的用户才能访问,包括对系统的登录或远程访问。 同时软件在SCS中的应用规模也与日俱增。比如,在F-22战机的综合航电系统中,软件实现的航电功能高达80%,软件代码达到170万余行。而在F-35战机的先进综合航电系统中,软件代码达到500~800万行。这表明,越来越多的SCS日益软件密集化,逐渐形成安全性关键的软件密集型系统。另一方面,由SCS软件引发的事故或事件却频发不断:发生在20世纪90年代的Ariane5运载火箭、SOHO太空船等5起航天器事故的罪魁祸首是软件;2004年12月20日,一架F-22因飞行控制软件故障而坠毁;2007年2月11日,12架F-22在穿越国际日期变更线时又因软件缺陷问题造成导航故障,战机被迫在无导航和通信能力下危险返航。 由此可知,软件安全已经是社会稳定不可或缺的重要因素之一。

国内外项目管理软件综述(推荐文档)

国内外项目管理软件综述 商旅学院工商管理 200081040001 陈鑫 项目管理是运用各种相关知识、技能、方法与工具,为满足或超越项目有关各方对项目的要求与期望,所展开的各种计划、组织、领导和控制等方面的活动。 目前企业对项目管理水平和方法越来越重视,而合适的项目管理软件在其中起了极其重要的作用!主要有工程项目管理软件和非工程项目管理软2大分类。 现在国外项目管理软件有: Primavera 公司的P3、Artemis 公司Artemis Viewer、NIKU 公司的Open WorkBench、Welcom 公司的OpenPlan等软件, 这些软件适合大型、复杂项目的项目管理工作; 而Sciforma 公司的ProjectScheduler (PS) 、Primavera 公司的SureTrak、Microsoft 公司的Project、IMSI 公司的TurboProject 等则是适合中小型项目管理的软件。值得一提的是, SAP 公司的ProjectSystems(PS)Module 也是一种不错的企业级项目管理软件。国内的工程项目管理软件功能较为完善的有: 新中大软件、邦永科技PM2、建文软件、三峡工程管理系统TGPMS、易建工程项目管理软件等,基本上是在借鉴国外项目管理软件的基础上, 按照我国标准或习惯实现上述功能, 并增强了产品的易用性。 非工程类项目管理软件全球知名的有微软project系列PM软件,目前最新版project 2010已经推出,功能很强大,国内项目管理软件企业中发展比较快的有深圳市捷为科技有限公司的iMIS PM等软件,而更值得一提的是8thmanagePM项目管理软件,他们公司是跨国企业,客户遍布中国,东南亚,北美。美国洛克西德.马丁公司,美国首都医疗集团,加拿大蒙特利尔银行, Forida Limited ,ParaDM,新加坡地铁公司,和记环球电讯,中国移动,安利,中联集团,清华大学。 Primavera Project Planner 是美国Primavera 公司的一个工程项目计划管理软件。它是由从事工程计划管理的土木工程师开发的管理软件,该软件比较切合工程的实际,可操作内容多,功能完备。P3软件得到了国外工程界的推崇并被广泛采用,是世行贷款项目推荐使用的项目管理软件之一,目前P3的最新版本是Windows 下的2.0版。 80年代中期P3开始进入我国,最初是在煤炭部的常村煤矿和水电部的水口电站两个世行贷款项目上使用,效果较好。现在,P3在我国已有近百个用户单位,正应用于包括山西引黄工程在内的几十个国家重点工程。 P3是进行项目计划管理的软件,因此它依据的基本原理就是网络计划技术,P3使用该技术来计算进度,进行进度计划管理。P3依据进度计划和资源投入的曲线分布原理,进行资源计划和成本/投资(统称费用)计划管理。它提供了多种组织、筛选、比较和分析工程数据的方法,并可以制作符合工程管理要求的多种类型的数据图形和报表。 缺点:P3只能管理单一的大型项目,难以使企业在优化有限的、共享的资源(包括人、材、机等)的前提下来对多项目进行预算、确定项目的优先级、编制项目的计划并且对多个项目进行管理。它不能给企业的各个管理层次提供广泛的信息,各个管理层次难以分析、记录和交流这些可靠的信息并且不能及时地做出有充分依据的符合公司目标的决定。不能在同一时间跨专业、跨部门,在企业的不同层次上对不同地点进行的项目进行管理。 优点:提供世界领先的项目组合管理解决方案来帮助企业获得和保持战略优势,提供与项目相关的所有活动的单一、准确且集成的视图,为项目及项目组合管理的整个生命周期提供支持,提供全面的方案模拟和“假设”分析方法来协调和优化项目组合,支持多种货币、语言和业务部门,从而使公司能够实施全球性项目和计划,提供单一的全球项目信息库——为团队的所有成员提供全面、可靠及个性化的项目信息,能够有效钻 职场生存攻略提高工作效率的8大必备软件Photoshop word Excel Dreamweaver

相关文档
最新文档