软件可靠性工程综述

软件可靠性工程综述
软件可靠性工程综述

收稿日期:2004207214;修回日期:2005202205.

作者简介:党涛立(1976-),男,主要从事鱼雷总体技术研究.

软件可靠性工程综述

党涛立1

,潘新祥2

,赵海涛

2

(1.西安鱼雷工程办公室,陕西西安710075;2.江苏自动化研究所军代室,江苏连云港222006)

摘 要:综述了软件可靠性工程研究和实践的内容和国内外现状,从软件可靠性模型、软件可靠性设计、软件可靠性测试几个方面进行了论述,指出了软件可靠性的重要性,并从工作实践出发阐述了软件可靠性测试过程和特点,最后对软件可靠性工程研究和实践进行了展望。

关键词:可靠性工程;模型;可靠性设计;软件可靠性测试

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

A Su mmary of Software Reli a b ility Eng i n eer i n g

DAN G Tao 2li ;PAN X in 2xiang;ZHAO Hai 2tao

(1.Xi ′an T or pedo Engineering Office,Xi ′an 710075,China;2.Rep resentative Office,J iang Su Aut omati on Research

I nstitute ,L ianyungang 222006,China )

Abstract:This paper intr oduces the s oft w are reliability engineering and its current situati on .It addresses the models,design,

test p r ocess and feature of s oft w are reliability and points out its i m portance based on p ractical engineering devel opment .

It als o

p resents the advances in engineering research and p ractice of this domain .

Key words:s oft w are reliability engineering;s oft w are reliability models;s oft w are reliability design;s oft w are reliability testing

0 引言

目前,大多数设备和系统的主要功能都是由软件规定的,技术与信息社会正越来越依赖于软

件。但较低软件的可靠性已日益严重地制约着软件产品更广泛的应用,甚至带来一些灾难性的后果。不管是对大工程系统还是小工程系统都越来越证明复杂软件是一个薄弱环节,即使是通过完备测试的软件也常受到错误的困扰。与此同时,一个前所未有日益增长的需求是:软件应具有检定合格的高(常常是很高)可靠性,例如,航天飞行器控制、军事C 3

I 系统和核电站安全控制等无不对软件可靠性提出了前所未有的高要求。

为解决软件危机而产生和发展起来的软件工程成功地解决了软件开发中存在的许多问题,它不仅对软件开发、设计和生产有着直接的影响,而且对于提高软件可靠性有着显著的成效。实践表

明,通过软件工程方法可达到一般的可靠性要求,

如失效率在λ=10-3数量级[1]

,但当软件可靠性要求更高时,单靠软件工程就无能为力了,就必须在实施软件工程的同时,采取一些专门的可靠性工程技术和方法来保证所要求的可靠性。

1 软件可靠性模型

软件可靠性模型是软件可靠性工程中倍受关注、研究最早、成果最多、目前仍然最活跃的一个领域。从Huds on 的工作开始,到1971年J 2M 模型的发表,直到今天,已公开发表了100余种模型[2]

。它不仅是软件可靠性预计、分配、分析与评价等基本问题最强有力的工具,更为软件可靠性设计提供指南,它旨在根据软件可靠性数据以统计方法给出软件的可靠性估计值或预测值。1.1 模型分类

模型分类是软件可靠性工程研究与实践的前

第13卷第2期2005年06月

鱼 雷 技 术T ORPE DO TECHNOLOGY

Vol .13No .2

Jun .2005

提。关于如何进行模型分类与选择,尚无明确的指导原则。一般是按数学结构、模型假设、参数估计、失效机理、参数形式、数据类型、建模对象、模型适用性和时域等进行分类[3]。但这些分类方法均缺乏足够的科学性、系统性和适用性。应当基于实用的目的,结合建模方法、适用范围、模型假设和模型特性等,在多维构架的基础上进行综合分类将是模型分类研究的方向。

1.2 模型建立

软件可靠性模型的建立是为了通过对所选择模型关联参数的统计估计来确定失效情况,以及可靠性目标和实现这一目标的时间,并利用可靠性模型制定测试策略,同时确定软件交付的预期可靠性。此外,它对于经费估算、资源计划、进度安排和软件维护等也是很重要的。软件可靠性建模可归结为模型的比较与选择、参数选择以及模型应用。模型参数取决于软件性能、过程特性、修改活动和程序变化等。但由于软件本身的特性,可靠性数据缺乏,建立完全满足这些因素的可靠性模型是非常困难的,且难以验证。

软件可靠性模型的导出是在定义软件失效概率密度或分布函数或在确定危险函数的基础之上把它描述为一个随机过程或使它与Bayes估计、Markov过程或时间序列模型等相关联。目前, Schneide wind模型、Jelinski2Moranda模型、W eibull 模型、非齐次泊松模型、Seeding/Tagging模型、L it2 tlewood2Verrall模型、Mussa/Okumot o对数泊松时间执行模型、广义指数模型、Duane模型、Ya mada 、Ohba和O saki的S型可靠性增长模型、公理模型以及数据模型等是软件可靠性预计、分析和设计中所推荐的模型[4~6]。

值得注意的是,软件可靠性模型对于高可靠性的验证和测试策略的制定还存在着很大困难,虽然可以通过软件容错来克服这种困难,但其有效应用尚待深入研究。

1.3 模型统一

目前,种类和数量繁多的软件可靠性模型导致了理论研究和实际应用的困难,而模型的统一是这一问题最有希望的解决办法[4]。它试图为软件可靠性模型所涉及的范围、结构等建立一个统一的框架,通过它反应出现有模型在理论和实际应用中的差别,并能在对象和特性分析的基础上,为用户提供合适的模型。各类模型之间存在着密切的关系,通过模型合并,将有助于突出其关系。软件可靠性模型中,软件的故障行为常常被描述为随机过程,也可以用马尔可夫过程来描述。为了能导出模型的解析表达式,先验分布主要采用均匀分布、γ分布和β分布3种。

从现有模型来预计软件可靠性往往存在偏差。当给定或已知数据的基本分布时,极大似然估计是模型参数估计最基本的方法,它有利于对预计的改进。最小二乘法能很好地代替极大似然估计,对于中小样本具有较小的偏差和较快的收敛性,该方法是通过故障强度拟合来估计模型参数。Bayes分析方法提供了一种把先验知识综合到估计过程中的方法,为把不同数据源综合起来提供了有效的手段,但分析和计算极为复杂。

2 软件可靠性设计

软件可靠性工程的根本目的是设计可靠的软件,并通过采用相应的技术和工具,减少错误发生,尽量避错。避错设计是软件可靠性设计的基本方法,但只能达到一定限度,要进一步提高可靠性,只有采用容错技术。当然,按照软件工程原理进行软件开发是软件可靠性保证的基本方法。2.1 可靠性度量

1989年发表的39种度量都直接或间接与软件可靠性度量相关[7]。主要的度量有失效率、失效强度、残留缺陷、可靠度、平均无失效时间以及可用度等。现在,一般的做法是把它们按技术度量和管理度量落实到软件生命周期活动的每个阶段。但不论是哪个阶段或过程,其目的都是面向用户和开发人员并以用户和开发人员共同熟悉的形式对软件可靠性目标和任务加以度量。

软件故障和差错的分析与定义是软件可靠性度量的基础。软件故障是软件中能引起一个或一个以上失效的缺陷,它是在软件设计过程中形成的。软件故障在数据结构或程序输出中的表现即为软件差错。常见的软件差错包括非法转移、误转移、死循环、空间溢出和无理数据等。

在软件可靠性分析和设计中,常常利用故障模型对不同的故障表现进行抽象。故障模型可以在系统的各个级别上建立,建立的级别越低,进行故障处理的代价也越低,而模型所覆盖的故障也

41鱼雷技术

较少。如果在某一级上的故障模型不能包含故障的某些表现,则可以用更高一级的模型来概括。常用故障模型有基于逻辑级的故障模型、基于数据结构级的故障模型和基于系统级的故障模型。

2.2 可靠性指标分配

软件可靠性分配是将需求分析中所形成的可靠性指标分配到软件的各个部件,是软件可靠性工程设计的基础,它是在充分考虑软件及其开发过程特征并继承和发展可靠性工程现有成果的基础上发展起来的。目前,主要有快速分配法和基于重要度、运行时间和复杂度分配等方法。等量分配法、相似程序法和相似模块法等是一些传统的简单分配方法,而基于重要度、运行时间和复杂度的分配方法是目前被普遍使用的方法。

由于各种不同软件在功能、性能、规模和结构等方面均存在很大差异,就每个具体的软件而言,是否需要进行可靠性分配、如何分配,必须对实施该软件的过程、环境和条件等加以分析。当然,实际分配过程中,可能会受到各种因素的制约。但无论如何都应遵循确保重点、难度均等、留有余地、逐步完善的分配原则。

2.3 重用设计

上世纪60年代的软件危机导致了软件重用设计的产生和发展。软件重用即所谓的“软件总线技术”是在软件设计过程中对现有成果进行充分的再利用,是提高软件生产率、降低开发成本和提高软件可靠性最有效的途径之一,特别是在面向对象程序设计方法获得广泛应用后,已逐渐成为可靠软件设计的重要方法。

软件的重用途径包括合成技术和生成技术。合成技术是利用组装方式来重用软件构件,采用这种技术时,对已有构件仅作少量修改或不作修改后“插装”在一起,构造出新的目标系统,如构件化软件。生成技术是由程序生成器获得软件重用,它是对模式的重用,由生成器导出模式的专有或定制版本实现模式重用。合成技术是更有前途的软件重用模式,如工业过程控制中的组态软件。合成技术的关键是组件的接口标准。现在构件接口标准有COM/DCOM、CORBA和EJB[5]。有了这些标准,软件开发人员就可以独立地开发或利用组件。从软件重用的层次来看,软件重用包括重用数据、重用设计、重用代码和重用规范说明等。但是,软件重用正面临着通用性与专用性、构件的分类与查找、理解、修改、规模、资金以及其他潜在的问题。为了避免和克服这些理论与实践的问题,目前的主要工作是找到能大幅度提高软件可靠性和开发效率又便于实际操作的方法。

目前,软件重用的构件涉及到领域分析、抽象、重用库的组织,可重用构件的分类、检索、定位和理解、接口、组织、环境、重用理论支持等理论、技术、方法和管理等问题,这些问题的克服与解决将是软件重用的重点和热点[6]。

2.4 形式化设计

软件复杂性通常掩盖了软件设计中的固有错误,因此,要获得较高的软件故障独立性往往很困难。越来越多的软件专家认为,由于软件太复杂,不能在现实世界中得到有效的测试,解决软件可靠性问题的最佳答案在于采用形式化的程序设计和形式化的编程系统以及形式化的验证方法。

使用以数学为基础的描述是解决软件设计的精确性和正确性的最好办法。为了使软件设计的每个阶段都得到有效的测试和验证,最高一级的技术要求即软件需求分析采用形式化的分析、说明和表达是可靠软件开发的前提。形式化方法是用严密的数学方程和形式化语言描述软件的需求,比如要使飞机机翼精确地沿90°角运动,采用形式化方法是列出所有完成任务所需的数学方程,而不是概念描述之上的编码。通过证明这些方程的基本逻辑是合理的,在代码编写之前就能指出软件将按人们的期望运行的可能以及问题的存在。

操作语义、数学语义和公理语义是目前3种主要形式化方法。操作语义为了描述语句在语言中的影响而使用一种按语言执行的假想机器,但它逐渐被数学语义所取代。数学语义是使一种已知语言的每一短语都与一个适当的数学目标如集合、函数等联系起来,使语义学形式化。短语即所联系的目标,而目标即为短语的标志。同样,这一方法也正逐渐被公理语义所取代。操作语义和数学语义为待定义的语言提供模型,对比之下,公理语义则以一组公理和推断规则隐式地定义一种程序语言,从而验证程序特性,特别是验证一给定程序的正确性,实现了一种给定的输入/输出关系。目前,许多形式化规范语言正在得到应用,也有许

51

党涛立,等:软件可靠性工程综述

多试图用于编程语言的语义学方面的尝试,但没有一种解决办法得到软件工程界的普遍认可。

3 软件可靠性测试过程和特点

软件测试是一种程序的执行过程,其目的是尽可能地发现并改正被测试软件中的错误,对软件可靠性保证具有极其重要的意义。在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下,软件测试在将来相当的一段时间内仍然是软件可靠性保证的有效方法。

软件可靠性测试分为以下阶段。(1)制定测试计划。该阶段识别软件功能需求,触发该功能的输入和对应的数据域;确定相关的概率分布及需强化测试的功能,编写测试平台需求、可靠性测试计划和测试用例。(2)分析功能需求。分析各种功能需求,识别触发该功能的输入及相关的数据域(包括合法与不合法两部分)。(3)定义失效等级。首先判断是否存在出现危害度较大的1级和2级失效的可能性,如果存在,就应进行故障树分析,标识出所有可能造成严重失效的功能需求和其相关的输入域,以及外部条件和发生的可能性。对引起1级和2级失效的功能需求及其相关的输入域必须进行严格的强化测试;对引起3级失效的功能可按其发生概率选择测试实例。一般失效等级定义如下:等级1表示造成重大损失,用户认为不允许出现的失效;等级2表示造成较大损失,用户认为发生率必须很低的失效;等级3表示损失不大,但需查找原因,进行统计;等级4可不查找失效原因,并不做统计。(4)确定概率分布。确定各种不同运行方式的发生概率,给出各种运行方式下各数据域的概率分布,判断是否需要强化测试某些功能。(5)整理概率分布的信息。

(6)编写测试平台需求、测试计划和测试用例,确定测试内容和测试顺序,分配测试资源。

软件可靠性测试不同于一般的软件功能测试。首先,软件失效是由设计缺陷造成的,其输入数据决定了是否会遇到软件内部存在的故障,所以,软件可靠性测试强调按实际使用的概率分布随机选择输入数据,并强调测试需求的覆盖度。因此,它必须按照使用的概率分布,随机地选择测试实例。第2,在软件可靠性测试过程中,要比较准确地记录软件的运行时间,其输入覆盖一般也要大于普通软件功能测试的要求。第3,软件可靠性测试对使用环境的覆盖要求高,测试时应覆盖所有可能影响程序运行方式的物理环境。尤其是一些特殊的软件,如容错软件、实时嵌入式软件等,其中对意外情况的处理,在一般的使用环境下很难进行有针对性的测试,这时常常需要有多种测试环境。

近些年软件可靠性测试获得了很大的发展,但同时也存在着一些问题,甚至还存在着认识上的问题。目前,主要是缺乏有效的原则指导,使得软件可靠性测试具有一定的盲目性。以软件工程思想和构件化软件开发方法为背景的软件测试技术和方法在软件技术日新月异的今天,其适用性和有效性受到了前所未有的挑战。例如,在构件化软件设计被广泛使用的今天,继续使用传统的软件测试方法显然是不合适的。

4 结束语

软件可靠性工程研究的目标是如何应用理论知识、科学方法和工程规范来指导可靠软件的开发,以期达到用较少的时间和投入获得高可靠的软件产品。它的诞生标志着软件质量管理进入了一个新的里程碑,它使得软件可靠性的分析、评价、设计和验证以及管理水平迈向了系统化、规范化和全员化的进程。

参考文献:

[1]Cai K.Y.,A Citical Revie w on Soft w are Reliability

Modeling[J].Reliability Engineering and Syste m Safe2

ty,Vol.32,1991.

[2]Thayer T.,E.Nels on.Soft w are Reliability Study[M],

RADC2762238,1992.

[3]Shanthiku man J.G.,Soft w are Reliability Models:A

Revie w,M icr oelectr onics and Reliability[M].Vol,23,

No.25,1993.

[4]孙志安.软件可靠性工程综述[J].计算机世界,1997(11):13.

[5]P Emerald Chung,Yennun Huang.DCOM and CORBA Side by

Side,Step by Step,and Layerby Layer[EB/OL],HTTP:// https://www.360docs.net/doc/b517642716.html,/~Y mwang/Papers/HT ML/DCOM2 MnCORBA/S.ht m l,1997.09.03.

[6]孙志安.软件重用进展[J].计算机世界,1998(2):15.

[7]I EEE Standard,D ictionary ofMeasure to Pr oduce Reliable Soft2

ware(ANSI)[J].I EEE Std-982,1-1989.

(责任编辑 杨力军)

61鱼雷技术

《软件工程发展概述》

软件工程发展概述 计算机工业发达国家在发展软件的过程中曾经走过不少弯路,受过许多的挫折,至今仍然经受着“软件危机”的困扰。人们开发幼稚软件的能力大大落后于计算机硬件日新月异的进展和社会对计算机软件不断增长的需求,这种状况已经严重妨碍了计算机技术的进步。 为了摆脱软件危机,一门新的学科产生并发展起来—软件工程,几十年来软件工程的发展大致如下几个阶段。 第一阶段—软件危机。 20世纪中期,计算机刚被从军用领域转向民用领域使用,那时编写程序的工作被视同为艺术家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序。程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的聪明才智。 到了20世纪60年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。这就是所谓的“软件危机”。 早期出现的软件危机主要表现在: ①软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。 ③生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。 软件危机不仅没有消失,还有加剧之势。主要表现在: ①软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。

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

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

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

软件工程发展概述

软件工程发展概述 摘要:本文简单介绍了软件工程。分别从软件工程的定义、发展历程、现在发展动态以及未来发展趋势做出简单分析,使我对软件工程的过去、现在和未来有了进一步的了解和认识。 关键词:定义;过程;动态;趋势 1.引言 随着计算机的广泛应用,信息产业悄然兴起,越来越成为经济发展中的先导产业。目前,信息化已从整体上引导着世界经济和社会发展,信息处理技术已成为现代社会生产力、竞争力的关键,具有十分重要的战略位置。这一期间,计算机软件以其独特的知识形态,广泛渗透于国名经济建设的各行各业中,对信息采集、信息处理、信息交换以及生产过程、社会生活的变革产生了深远的影响。计算机软件,尤其是软件工程作为软件产业的依托学科已经成为信息技术的核心之一。 2.软件工程概述 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。 2.1软件工程定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。概括地说,软件工程是指导计算机软件开发和维护的工程学科。 根据各位学者、组织机构给出的软件工程定义,我简单的将软件工程理解为:软件工程是按照工程学的管理方式,有组织、有计划的在成本限额以内按时完成开发且能在实际机器上可靠有效地运行的软件,并不断对软件进行优化、维护及管理的工作过程。 2.2软件工程方法和技术

串并联可靠性模型的应用及举例

上海电力学院 选修课大型作业 课程名称:机电系统可靠性与安全性设计报告名称:串并联可靠性模型的应用及举例院系:能源与机械工程学院 专业年级:动力机械140101 学生姓名:潘广德 学号:14101055 任课教师:张建平教授 2015年4月28日

浅谈串并联可靠性模型的应用并举例 摘要 详细阐述了机械可靠性工程中串并联可靠性模型的应用,并详细的举例说明。系统可靠性与组成单元的数量、单元可靠性以及单元之间的相互联接关系有关。以便于可靠性检测,首先讨论了各单元在系统中的相互关系。在可靠性工程中,常用可靠性系统逻辑图表示系统各单元之间的功能可靠性关系。在可靠性预测中串并联的应用及其广泛。必须指出,这里所说的组件相互关系主要是指功能关系,而不是组件之间的结构装配关系。 关键词:机械可靠性串联并联混联应用举例 0前言 学技术的发展,产品质量的含义也在不断的扩充。以前产品的质量主要是指产品的性能,即产品出厂时的性能质量,而现在产品的质量已不仅仅局限于产品的性能这一指标。目前,产品质量的定义是:满足使用要求所具备的特性,即适用性。这表明产品的质量首先是指产品的某种特性,这种特性反应这用户的某种需求。概括起来,产品质量特性包括:性能、可靠性、经济性和安全性四个方面。性能是产品的技术指标,是出厂时产品应具有的质量属性,显然能出厂的产品就赢具备性能指标;可靠性是产品出厂后所表现出来的一种质量特性,是产品性能的延伸和扩展;经济性是在确定的性能和可靠性水平下的总成本,包括购置成本和使用成本两部分;安全性则是产品在流通和使用过程中保证安全的程度。在上述产品特性所包含的四个方面中,可靠性占主导地位。性能差,产品实际上是废品;性能好,也并不能保证产品可靠性水平高。反之,可靠性水平高的产品在使用中不但能保证其性能实现,而且故障发生的次数少,维修费用及因故障造成的损失也少,安全性也随之提高。由此可见,产品的可靠性是产品质量的核心,是生产厂家和广大用户所努力追求的目标。 1串联系统可靠性模型的工作原理 如果一个系统中的单元中只要有一个失效该系统就失效,则这种系统成为串联系统。或者说,只有当所有单元都正常工作时,系统才能正常工作的系统称为串联系统。 设系统正常工作时间(寿命)这一随机变量为t,则在串联系统中,要使系统能正常工作运行,就必须要求每一个单元都能正常工作,且要求每一单元的正常工作时间都大于系统正常工作时间t。假设各个单元的失效时间是相互独立的,按照概率的乘法定理和可靠性定

软件可靠性模型地的综述

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

存在的,只要不修改程序就一直留在程序当中。如不正确的功能需求,遗漏的性能需求等。3)软件故障(Software fault):指软件在运行期间发生的一种不可接受的内部状态,是软件缺陷被激活后的动态表现形式。 4)软件失效(Software failure):指程序的运行偏离了需求,软件执行遇到软件中缺陷可能导致软件的失效。如死机、错误的输出结果、没有在规定的时间内响应等。 从软件可靠性的定义可以知道,软件可靠性是用概率度量的,那么软件失效的发生是一个随机的过程。在使用一个程序时,在其他条件保持一致的前提下,有时候相同的输入数据会得到不同的输出结果。因此,在实际运行软件时,何时遇到程序中的缺陷导致软件失效呈现出随机性和不稳定性。 所有的软件失效都是由于软件中的故障引起的,而软件故障是一种人为的错误,是软件缺陷在不断的测试和使用后才表现出来的,如果这些故障不能得到及时有效的处理,便不可避免的会造成软件失效。而一个软件中存在的软件错误和缺陷总数是无法确定的,也不可能被完全排除掉,有时候排除掉一个故障甚至会引起更多的故障。 所以在软件开发周期中,软件错误是不可避免的,但可以通过学习改进,不断吸取经验教训,尽量减少程序中的错误特别是重大错误的数量。在测试阶段,测试人员应尽可能多的检测并排除掉软件中的故障,从而减少软件失效强度,提高软件的可靠性和质量。 1.2提高软件可靠性的途径 软件中的故障会导致软件功能不能正常实现,降低了软件的可靠度。软件故障一般是软件开发各阶段人为造成的,大概包括需求分析定义错误、设计错误、编码错误、测试错误和文档错误等。 因此要想获得高可靠性的软件,就要和软件中的故障做斗争。有以下三种直接的方式来

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

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

浅谈软件工程技术现状和发展趋势

浅谈软件工程技术现状和发展趋势 发表时间:2019-08-15T15:07:31.650Z 来源:《信息技术时代》2018年11期作者:董庆森[导读] 随着科学技术的不断发展,信息产业已经逐渐成为了现代化产业中不可或缺的重要一环,信息产业在发展的过程中不断与传统行业进行交互与发展,促进了传统行业的变革与发展也为当前的经济发展注入了新的活力。(郑州工商学院工学院,河南省郑州市 450000) 摘要:随着科学技术的不断发展,信息产业已经逐渐成为了现代化产业中不可或缺的重要一环,信息产业在发展的过程中不断与传统行业进行交互与发展,促进了传统行业的变革与发展也为当前的经济发展注入了新的活力。软件工程作为信息产业的重要支柱学科,其随着信息产业的发展也迎来了发展的黄金时期,软件工程凭借其在数字信息时代的重要意义,也成为了当前信息产业中不可缺少的重要学科。本文将对软件工程技术的发展现状进行分析就技术未来的发展趋势进行简要的判断。关键词:软件工程技术现状;发展趋势 一、引言 信息产业的发展极大的改变了传统行业的发展面貌也使得现代化产业呈现出新的发展局面,软件工程作为信息产业中的重要基础学科,其在计算机学科领域有着十分重要的作用。随着经济社会的不断发展,信息产业还有着广泛的发展前景,软件工程顺应着信息产业的发展趋势也将迎来进一步的创新和提升,因此对于软件工程技术的发展现状和发展趋势进行分析判断有着十分重要的价值和意义。 二、软件工程概述 软件工程作为一门利用工程建设的手段来对软件进行分析维护的学科,其在学科内容上包括有软件的开发工具、程序设计语言以及数据库的内容,随着信息技术在人们生活中应用的越来越广泛,软件工程也在诸多领域得到了施展和应用,随着计算机学科领域的不断丰富与拓展软件工程也逐渐转变为计算机领域的一门重要独立学科。软件在种类和内容上十分丰富其一般包括有操作系统、数据库、社交软件以及游戏软件等,这些软件被广泛应用于传统工业、金融行业以及人们的日常生活当中,软件的不断丰富与拓展极大的改变了人们的日常生活,为人们的工作学习提供了诸多便利,对促进社会经济的发展与进步,改善人们的生活质量有着十分积极的影响。通常对软件质量的评价标准上往往会根据软件自身的实用性、安全性以及功能性等作为质量评判的重要依据。 三、软件工程技术发展现状 从20世纪末开始我国软件行业就呈现出良好的发展态势,自21世纪以来我国软件业务盈利更是以超过10%的增长速度逐年递增,而软件外包营收更是一度超过了80%的增长速度。软件产业有着良好的市场发展前景和广阔的市场空间,国家方面更是出台了一系列的政策来鼓励软件工程技术的发展。就目前而言,软件工程技术良好的发展前景具体表现为:软件工程技术人员有着良好的就业环境和就业形势。随着信息行业发展的不断增速,越来越多的互联网信息产业开始呈现出跨越式的扩增态势,随着信息产业发展规模都不断扩大,对于软件工程专业人才的需求也在逐年提升。同时相比传统行业,软件工程技术人员有着较为良好的工作环境和薪资待遇。 软件工程技术人员有着较为广泛的就业方向。软件工程学科对于从业人员有着较为严格的专业技能水平要求,这是由于软件工程在技术上包括了软件研发、测试以及应用等一系列内容,正是由于软件工程的复杂性和高要求性也使得软件工程的专业性人才有着较为广泛的就业渠道,随着信息化时代的到来,无论是互联网企业还是金融企业和政府部门都急需软件工程领域的专业性人才,软件开发和性能维护已经成为了当前现代化企业经营发展的必然趋势,因此一旦掌握了软件工程专业知识技能就能够拥有十分广阔的就业方向。 软件工程技术人员待遇丰厚。近年来随着软件技术人才的短缺,使得软件工程技术人员更容易受到企业的青睐和追求,在这样的发展背景下软件工程从业者往往能够获取更高的薪资待遇水平。 四、软件工程技术发展趋势 软件工程技术全球化。随着经济全球化进程的不断加快,软件工程技术全球化已成为了未来发展的重要趋势,软件工程凭借其专业技能上的广泛性和共通性,期待工程技术上的发展不仅仅局限于某一个地区或者国家,而是需要结合全球软件发展交互的共同性逐渐促使软件工程发展更为成熟。全球化的软件工程发展趋势符合当前经济发展的重要趋势,各国之间通过实践软件系统框架网络的建设,实现全球软件交互和通力协作,在全球化的软件工程概念下,软件工程的发展能够吸取不同地区和国家的先进经验,从而构建出更加符合人们需求的软件产品。 软件工程技术开放性。开放计算式当前软件工程技术发展的必然趋势和未来方向,通过开放计算能够提升企业之间软件开发研究的效率,通过实现企业软件的交互应用,能够简化未来软件工程在软件开发上的投资消耗,提升软件工程开发的灵活性和简易程度。在软件工程技术开放性的发展过程中需要个国家最先进的软件开发技术经验实现共享,以此来作为后续软件开发和投资的重要关键技术保障。 软件工程技术模板化。随着信息化时代的到来软件市场的竞争也不断加剧,面对日益复杂的软件开发和维护环境,为了能够在激烈的市场竞争中占得先机提升软件开发和维护的效率,企业需要加强其在业务能力上的灵活性通过以模板化的思维来提升企业在软件开发运用上的效率。模板化思维在企业经营发展中的应用能够有效的帮助企业对现有的软件实行分解组装,结合当前的软件系统根据不同的软件资源需求针对企业的业务来进行更加灵活的变动,使得软件工程技术的发展更加符合企业的利益。 五、结语 计算机技术的迅速发展也使得软件工程技术得到了进一步的提升,软件工程技术在发展的过程中不断向全球化、开放性以及模板化迈进,在这一过程中必须严格恪守软件开发所需要遵循的相关规律,结合软件工程技术的发展特征不断深入研究,共同促进我国软件工程技术的发展与提升。 参考文献 [1]刘宇洋.浅析软件工程的发展趋势[J].科学技术创新,2017(1):180-180. [2]施少杰.浅析软件工程技术的发展[J].明日风尚,2017(14):299-299. [3]冯勃达.浅谈软件工程标准化的现状[J].中国新通信,2017(20):52.

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

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

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

《可靠性工程》教学大纲

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

软件工程发展史及发展趋势

软件工程发展史及发展趋势 一:软件工程定义 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作和生活效率 二:软件工程的发展历史 随着人类的发展,计算机作为第三次科技革命的主要代表产品,极大的推动了人类社会发展。与此同时,软件作为现代计算机的重要支撑部分,伴随着计算机的发展不断发展。 早在20世纪50年代,有关软件的编程语言就已经出现,但是关于软件工程这个概念却要远远晚于软件发展。据资料显示,软件工程这个概念最早出现在20世纪60年代末期。在软件工程发展的半个多世纪内,软件工程所使用的程序语言不断发展,而且有关于软件四六七零零四零二二号码论文写作工程的模型不断发展,从最早的瀑布模型到现在光为人所知的云计算,软件工程几乎每隔5-10年就会获得一次突破性发展,而且有关软件语言从最早的面向程序结构转向为面向对象,极大的提升了软件编程的效率。目前,软件工程经过50多年的发展,已经深入到社会生活的各个层面,可以说,现代社会生活,几乎在每一个方面都涉及到软件工程。1.软件工程开发过程 软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。程序设计阶段 程序设计阶段出现在1946年~1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。软件设计阶段 软件设计阶段出现在1956年~1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。软件工程阶段 自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。此阶段的特定是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。2.软件工程的各个阶段

机械可靠性综述

机械可靠性设计综述 摘要:可靠性优化设计是在常规优化设计的基础上,结合可靠性设计理论发展起来的一种有效的优化设计方法。本文在总结现有文献的基础上对机械可靠性优化设计进行了综述,系统阐述了机械可靠性、可靠性设计、可靠性优化设计及可靠性试验的理论及方法。 关键词:可靠性;优化设计;可靠性试验 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为安全状态,

可靠性工程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

软件工程开发的现状及发展

软件工程开发的现状及进展 随着科学技术的持续进展,计算机应用得到了前所未有的普及与深化。在过去的几十年里,软件工程在应用领域得到广泛推广,促使计算机 领域的理论研究、软件开发、技术进展等加快了进展的脚步,同时也 提出了新的挑战。 1我国软件工程的发体现状 1.1我国软件开发的进展我国的软件技术进展的相对比较落后,相比 先进的国家还存有着非常大的差别。但是,我国软件工程的进展却是 非常迅速的,短短几年的时间就形成了属于我们自己知识产权的软件 技术。软件工程进展到现在,我国不但研发了属于我们自己的开发工具,还制定了符合我国实际情况的研发技术方案。 1.2我国软件开发工程中存有的不足随着科技和计算机技术的快速进展,软件工程在计算机技术中来说是一项核心技术,市场需求量也在 随着计算机的普及而持续递增,软件工程从上世纪60年代开始兴起, 最早出现在西方国家,在软件工程的初期进展中欧美国家投入了大量 的资金和详细的规划,最终取得了快速完善的进展,随着科学技术的 持续推动和进展,软件工程向着高集成、智能化的方向持续进展。当 前来说,国外的软件工程技术已经得到了充分的进展,但是我国常用 的主流软件的开发内容以及开发工具都是国外设计和研究的,我国当 前来说还是较为落后,因为进展时间晚,进展时间短,这就给我国软 件工程提出了更高的要求,要保质快速的进展,除了在快速进展的要 求下,我国软件工程还需要注重一些问题的解决,首先是软件工程治 理体制方面的,因为进展起步较晚,在软件方面的体制没有明确的规定,这就造成软件开发团队的工作没有一个可靠的依据,团队之间不 能高效的协调合作,这就造成开发周期较长,开发质量有待提升,整 体团队效率较低,这种情况下就需要对于开发体制持续的完善,真正 做到在开发过程中有据可依有法可循,另外软件开发人员对于开发进 度不够重视,这就造成在开发过程中不能保证研发人员的稳定性,造

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

相关文档
最新文档