论文-系统与软件可靠性定义的研究_第1页
论文-系统与软件可靠性定义的研究_第2页
论文-系统与软件可靠性定义的研究_第3页
论文-系统与软件可靠性定义的研究_第4页
论文-系统与软件可靠性定义的研究_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统与软件可靠性定义的研究崔倩楠,袁玉宇(北京邮电大学软件学院,北京 100876摘要:软件可靠性是软件质量的一个重要因素,但在可靠性理论方面尚缺乏系统而全面的理论研究,目前还没有一个相对于当前可靠性研究领域普遍适用的可靠性定义。基于此种情况,本文将结合软件工程实践,从一些已有的可靠性的定义出发并分别对其进行分析,在此基础上给出适合当今软件工程领域研究的软件可靠性的改进定义,并对改进定义进行详细的阐述,最后从软件可靠性与硬件可靠性的关系和软件可靠性工程过程的角度对改进定义进行深入分析,以证明改进可靠性定义的正确性。关键词:软件可靠性; 可靠性定义; 软件可靠性工程过程; 软件工程中图分类号:T

2、P311.5Research on the Definition of Reliability in System andSoftwareCui Qiannan1, Yuan Yuyu2(Beijing University of Posts and Telecommunications, Beijing 100876Abstract: Software reliability is specified as an important property of the software quality. But it is deficient in systemic and comprehens

3、ive research of reliability theory. There is not a definition of reliability which can be generally applied to present reliability research fields. So this paper will be based on introducing and analyzing the existing reliability definitions. And then educe a more exact definition of reliability. Fi

4、nally, in order to prove the correctness of the new definition, we will analyze the new definition in depth from the angles of the relation between the software reliability and the hardware reliability and the process of software reliability engineering.Key words: Software reliability; Reliability d

5、efinition; Process of software reliability engineering; Software engineering0引言近十几年来,随着软件工程的快速发展,软件的规模越来越大,系统越来越复杂,功能也越来越强大。然而随之产生的系统可靠性问题也日益突出,软件系统的失效给社会带来的影响也会越来越大。在软件质量的范畴内,软件可靠性是其中最重要的固有特性1,它关心的问题主要是存在于软件产品中的缺陷,而软件系统中的缺陷代表了程序设计过程中最大的成本因素。这不仅要求我们将软件可靠性问题在软件工程领域中进一步考虑和重视,而且要求我们在软件可靠性理论方面的深入探索和研究。目

6、前国内在软件可靠性领域的研究还存在空白,为此中国电子技术标准化研究所申请了系统与软件XX性系列标准,其中包括系统与软件可靠性。对软件可靠性进行研究的首要问题就是明确它的定义,本文的目的就是给出一个配合该国家标准研究的可靠性的定义。基于此种情况,本文将从一些已有的可靠性的定义出发并分别对其进行分析,在此基础上给出适合当今软件工程领域研究的软件可靠性的改进定义,并对改进的可靠性定义进行详细的阐述,最后从软件可靠性与硬件可靠性的关系和软件可靠性工程过程的角度对改进定义进行深入分析,以证明改进可靠性定义的正确性。作者简介:崔倩楠(1985-08-14,女,北京邮电大学计算机科学与技术专业研究生,主要研

7、究方向软件测试. E-mail: kristy62820041现有软件可靠性的定义及其分析1.1软件可靠性研究背景一个工程应用学科的发展,必然伴随着标准化的进程。该工程应用学科标准内容的准确性、概括性、实用性在一定程度上标志着该学科的发展程度。因此,标准化的程度也是该应用学科发展成熟度的重要因素。软件可靠性的标准化,早在80年代中期就已起步了。国际上从事这项工作的,主要是国际标准化组织(ISO及国际电工委员会(IEC。目前在我国获得广泛认可的主要标准包括:ISO 9126 软件工程-产品质量系列标准, GB/T11457-1995软件工程术语,以及最新发布的ISO CD3 25010 系统和软

8、件工程-软件产品质量需求和评估系列标准。1.2各可靠性定义的分析1.2.1GB/T 11457中软件可靠性定义的分析软件可靠性是描述和评价软件质量属性的一个特征量。它表明了一个软件系统按照用户的要求和设计的目标,执行其功能的正确程度。关于软件可靠性的确切含义,学术界有过长期的争论。曾经有人否认软件具有可靠性属性,把软件可靠性说成是科学家寻求的一种“神圣梦想”,也有人认为软件的正确性就是可靠性。现在仍然保持这种偏颇观点的认识已十分罕见。还有一些软件工程专家,认为软件具有与硬件不同的性质,不宜将硬件可靠性的定义引申到软件领域。经过长期的争论和研究,1983年美国IEEE计算机学会对“软件可靠性”正

9、式做出定义,GB/T-11457采用了这个定义:a在规定的条件下,在规定的时间内软件不引起失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在的缺陷的函数。系统输入将确定是否遇到已存在的缺陷(如果有缺陷存在的话。b在规定的时间周期内所述条件下程序执行所规定功能的能力2。其中a是一个定量的定义,而b则是一个定性的定义。软件可靠性的定义虽与硬件可靠性定义貌似雷同,却需要给定义中的要素赋予新的含义。下面着重分析定义中所述的规定的时间、规定的条件、规定功能及失效的概念。(1规定的条件在软件可靠性定义中,规定的条件是指:软件运行的软、硬件环境:软件环境包括运行的操作系统、应用程序、编译系统、数据

10、库系统等;硬件环境包括计算机的CPU,CACHE,MEMORY,I/O等。软件运行剖面:不严格的说,是指软件运行的输入空间及其概率分布。软件的输入空间是指所有可能的输入值构成的空间。按照欧空局标准的定义,软件的运行剖面是指“对系统使用条件的定义。即系统的输入值用其按时间的分布或按它们在可能输入范围内的出现的分布来定义”。(2规定的时间规定的时间是指软件的工作周期。软件可靠性只是体现在其运行阶段,所以将“运行时间”作为“规定的时间”的度量。“运行时间”指软件系统一旦投入运行后的计算机运行挂起(开启但空闲和工作的累计时间,不包括停机占用的时间。常用的时间概念有:软件执行时间、日历时间和计算机使用时

11、间。(3完成规定的功能完成的功能是指软件不出现失效。由于要完成的任务不同,软件的运行剖面会有所区别,则调用的子模块就不同,其可靠性也就可能不同。所以要准确度量软件系统的可靠性必须首先明确它的任务和功能。但是即使完成了规定的功能而对软件产品原有的其他性质产生影响,那也将直接影响软件产品的可靠性。(4失效的含义任何软件开发出来都要履行某特定的功能。这些功能通常在“软件需求规格说明书”中得到充分而详尽的阐述。软件失效是指程序运行中出现偏离预期正常状态的事件。即偏离了“软件需求规格说明书”的要求。不引起系统失效是指软件可靠性不仅要有正确性,还应包含健壮性。所谓健壮性是指万一硬件发生故障或输入数据不合理

12、等意外条件时系统能做适当工作。综上所述,从对“规定的功能”及“失效”的分析可以得出,“软件的失效”即没有完成“规定的功能”,故1995年我国国标这个可靠性定义两个方面的唯一区别就在于强调软件可靠性具有定性的和定量的两层含义。但是仅仅用“执行规定功能”就来表征软件的可靠性显然是不够全面的,应强调在不影响软件的其他性质的同时软件产品能执行要求的功能来表征软件的高可靠性。1.2.2ISO 9126 中软件可靠性定义的分析根据国际标准ISO 9126 软件工程-产品质量-第一部分质量模型,软件可靠性的定义为:在指定条件下使用时,软件产品维持规定的性能级别的能力3。注:1、软件不会损耗或老化。可靠性的种

13、种局限是由于需求、设计和实现中的故障所致。由这些故障引起的失效取决于软件产品的使用方式和所选择的程序选项,而不是经时时间;2、在ISO/IEC 2382-14:1997中可靠性的定义是“功能单元完成所需功能的能力”。在本部分中,功能性仅是软件质量诸特性之一。因此,可靠性的定义已被扩展为“维持规定的性能级别”,而不是“完成所需功能”。该定义直接把软件可靠性定义成了一种能力,是一种定性的描述,而去掉了GB/T 11457中对可靠性定量内容的描述。下面来对定义中的几个重要概念进行深入分析。(1指定条件在该软件可靠性定义中,指定条件是指:规定的时间、软件运行的软硬件环境及软件运行剖面三方面的内容。此处

14、只指明“在指定条件下使用”而没有指明“在规定的时间内”,而实际上时间对于软件可靠性来说具有重要的作用。因为软件可靠性只是体现在其运行阶段,如果没有运行时间的限制那所有软件最终都会出现失效、都不能保证其可靠性。那样的话软件的可靠性将变得不可描述其优劣。故该定义中的“指定条件”应理解为包括“规定的时间”这一重要条件。另外,理解“指定条件”时仍然应包括软件运行的软、硬件环境及软件运行剖面两方面的内容。对于这两方面的具体内容上文已有详细分析,这里不再赘述。(2性能级别对于软件产品的“性能级别”,ISO 9126-1中给出的定义是:要求被满足的程度,它由一组质量特性的特定值来表示。“性能”的定义为机械、

15、器材、物品等所具有的性质和功能。由定义可看出“性能”包括所描述对象的性质和功能两方面的内容,用“性能”来定义可靠性比前一定义中的“功能”更全面。综上所述,在ISO 9126.1对可靠性的定义中去除了对软件可靠性定量的描述,只保留了对其定性的描述,这样的描述是不够全面的。另外,该定义中用“指定条件”囊括了“规定的时间”这一重要概念,使其成为一个隐含条件,而实际上时间条件应该作为一个前提条件。个人认为这种概括方式使定义表述不够清晰明确,没有突出强调时间这一重要条件。最后,该定义用“维持规定的性能级别”取代了“执行所规定功能”,扩大了可靠性的范围,可理解为在不影响该软件产品原有性质的基础上实现软件需

16、求规格说明书中的软件功能。这样使软件可靠性的定义更全面、准确。1.2.3ISO FCD 25010中软件可靠性定义的分析根据软件质量最新的国际标准ISO FCD 25010系统及软件工程-软件产品质量需求及评估-第一部分质量模型,软件可靠性的定义为:在规定的时间周期内,规定条件下,一个系统或组件执行所需求的功能的程度4。与以上分析的两个软件可靠性定义相比较,该定义的变动之处主要是将GB/T 11457 及ISO 9126.1中的“能力”在这里被表述为一种“程度”。该定义中摒弃了之前定义所一直使用的“能力”一词而使用了“程度”。“程度”一词在保留了“能力”所表达出的可靠性定性的概念外,又隐含了部

17、分定量的含义。使可靠性的定义更加完善。1.2.4其他软件可靠性的定义(1软件可靠性工程的创始人之一John D. Musa在其著作软件可靠性工程一书中给出的软件可靠性定义为:可靠性是指在规定时间周期内,软件无失效工作的概率5。该定义是可靠性的一个早期的定义,Musa认为软件可靠性是一种概率。定义中没有指出测试软件可靠性的前提条件,只是给出了“在规定时间周期内”。并且在该定义中也没有明确给出“无失效工作”中“工作”的具体含义。故该定义是不够清晰、明确的。(2何国伟在软件可靠性一书中对软件可靠性给出的定义为:在规定环境下,在规定时间内,软件不引起系统失效的概率。或在规定时间区间和规定条件下,软件实

18、现所要求的功能的能力6。该定义与GB/T 11457中的可靠性定义很相似,都是强调软件可靠性具有定性的和定量的两层含义,即可靠性既可以用“概率”来描述,也是一种实现要求功能的“能力”的体现。故两定义无明显区别,这里不再重复对该定义进行深入分析。2改进的软件可靠性定义2.1改进的可靠性定义的提出基于2.2节中对以上三个广为认可的国际/国家标准的分析比较,以及我们对软件可靠性的理解,现对软件可靠性定义进行了改进,给出以下定义:规定的时间内,在规定的条件下使用时,软件产品维持规定的性能级别的程度。注:1、这里的“规定的时间”是指软件的工作周期;2、这里的“规定的条件”是指软件运行的软、硬件环境及软件

19、运行剖面条件;2.2改进的可靠性定义的详述对于新的可靠性定义给出以下几方面的说明:(1规定的条件及规定的时间对于这两方面内容的理解在分析GB/T 11457-1995中的可靠性定义时已给出详细说明,这里不再赘述。简言之,规定的条件是指软件运行的软、硬件环境及软件运行剖面两方面的内容。规定的时间是指软件的工作周期。需强调的是,规定时间一般采用“运行时间”作为时间的尺度。规定的时间既是指广义时间。也是因对象不同而用诸如次数、周期等变量来表征时间。(2性能级别此处可靠性定义中用“性能级别”代替了GB/T 11457及ISO 25010中所使用的“规定的功能”。对于“性能级别”前文已略有分析,作为新的

20、可靠性定义的一个重要组成要素,此处对性能级别进行更深入的分析,以阐明为何采用其来定义软件可靠性。对于软件产品的“性能级别”,ISO 9126-1中给出的定义是:要求被满足的程度,它由一组质量特性的特定值来表示。首先来说明为何用“性能”来替代之前定义中出现的“功能”一词。“性能”的定义为机械、器材、物品等所具有的性质和功能。由定义可知,性能包括两方面的内容,即一个产品所具有的性质和功能这两方面的内容。可见用“性能”来定义可靠性比“功能”更全面。放在具体的定义中可理解为在不影响该软件产品原有性质的基础上实现软件需求规格说明书中的软件功能。比如软件产品的容错性、易恢复性,这些都是产品的性能指标而非功

21、能指标,一个软件产品即使实现了需求说明书上的全部功能,但它的容错性、易恢复性很差,那该产品的可靠性也是不高的。因此,可靠性定义中采用“性能”比“功能”更为准确。接下来说明为何用“性能级别”一词。软件可靠性是软件系统固有特性之一,它表明了一个软件系统按照用户的要求和设计的目标,执行其功能的正确程度。软件可靠性与软件缺陷有关,也与系统输入和系统使用有关。理论上说,可靠的软件系统应该是正确、完整、一致和健壮的。但是实际上任何软件都不可能达到百分之百的正确,故用“级别”来表征软件产品维持规定性能的程度。因此,我们在新的定义中可把“可靠性”广义地理解为“可靠性能”,以此表征一个软件产品所具有的与可靠性相

22、关的性质和功能。(3程度对“程度”一词的理解介乎前文所分析的“能力”和“概率”之间(见GB/T 11457及ISO 9126.1中可靠性定义,如采用“能力”的可靠性定义描述一个软件产品时可以用能力“好”、“坏”来定性地形容;采用“概率”的可靠性定义描述一个软件产品时可定量地给出这个概率的具体数值。而采用“程度”,则既可以用程度“高”、“低”来定性地描述软件产品可靠性,又可以定量地给出这个“程度”的具体量化值。可见“程度”兼具“能力”与“概率”两层含义。故使用“程度”一词使可靠性的定义更加完善。3改进的软件可靠性定义的分析本章主要通过研究软件可靠性与硬件可靠性的关系来明确软件可靠性的研究内容,以

23、及区别软件可靠性与硬件可靠性,从而使得可靠性的本质更加突出,并体现在改进的软件可靠性定义中。而通过引入可靠性的软件工程过程,可以从整个软件工程过程角度帮助我们理解软件可靠性。中国科技论文在线 3.1 软件可靠性与硬件可靠性的关系 系统是由系统软件与硬件共同构成的, 故系统的可靠性是由系统软件可靠性与硬件可靠 性共同决定的。 硬件可靠性的研究及技术发展已较为成熟, 而软件可靠性是近三十年才兴起 的研究方向, 所以很多软件可靠性的研究内容都是基于硬件可靠性的研究的, 二者之间既有 区别又有联系。 (1 硬件可靠性定义 根据国家标准的规定,产品的可靠性是指:产品在规定的条件下、在规定的时间内完成 规

24、定的功能的能力。 (2 两者的区别 软件作为一种产品与硬件有许多不同, 但从可靠性的角度来看, 它们间的主要不同点在 于:软件是逻辑实体,始终不会自然变化,只是其载体可变;其不可靠问题基本是由于开发 过程中的人为差错所造成的缺陷而引起的;程序是指令序列,即使每条指令都正确, 但由 于在执行时其逻辑组合状态千变万化,不一定完全正确;系统数学模型是离散型的,其输入 在合理范围内的微小变化可能引起输出的巨大变化, 故障的形成无物理原因, 失效的发展取 决于输入值和运行状态的组合,无前兆。而硬件是物理实体,每件同规格产品的质量特性之 间有散布,会随时间和使用而老化磨损以至失效;其不可靠问题不只是设计问

25、题,在生产和 使用过程中也会产生新的故障; 硬件失效总是由其零部件或其结合的故障所引起的; 系统在 正常工作条件下其行为是渐变的,故障的形成和失效的发生一般都有物理原因,有前兆。 总的说来,软件可靠性与硬件可靠性的本质差别是智力失效与物理失效之间的差别。 (3 两者的联系 从宏观上讲, 软件可靠性和硬件可靠性是没有严格区别的, 因为软件和硬件统一组成系 统,系统的可靠性就包括软件可靠性和硬件可靠性,对此,可靠性的研究就直接转入系统可 靠性的研究,使用统一的定义。 从微观上讲,任何一个软件产品需要在硬件上运行,其可靠性应考虑硬件可靠性因素。 同样,任何一个硬件产品也包含软件因素,例如产品的设计,

26、自动控制程序等。从这种层面 上讲没有绝对的软件和绝对的硬件,因此研究方法是相同的。 可见软件可靠性与硬件可靠性是相互作用相互联系的, 软件可靠性的研究可以借助于现 有成熟的硬件可靠性研究成果, 这其中也包括软件可靠性的定义, 但软件可靠性又不等同于 硬件可靠性。 因此软件可靠性的定义应当不仅仅只是对硬件可靠性定义的简单重复, 因为评 价软件的可靠性不仅包括度量软件实现所需功能的能力, 还应包括在完成功能的同时软件性 能的表现。所以软件可靠性定义中应该包括对软件维持规定性能级别的定义。 3.2 软件可靠性工程过程 软件可靠性工程不仅仅是用数理统计的方法来详细说明设计、 预计、 估计和评价基于软

27、件的系统可靠性,还包括软件可靠性的需求、分析、设计、实施、售后及维护、工程管理活 动。因此,我们可以定义软件可靠性工程为:获得软件可靠性而进行的一系列开发、维护软 件产品的活动。 其内涵涉及以下四方面活动和有关技术: 1.软件可靠性分析:进行软件的可靠性需求分析、指标分配、故障树分析、失效模式和 影响分析以及软件开发过程中有关软件可靠性的特性分析等,从而确定软件可靠性目标; 2.软件可靠性设计和实现:进行防错设计、容错设计、纠错设计、故障恢复设计和软件 可靠性增长等; -6- 中国科技论文在线 3.软件可靠性测量、测试和评价:在软件生存周期各阶段进行有关软件可靠性设计、制 造和管理方面的属性测量,进行软件可靠性测试、软件可靠性预计、软件可靠性评估和软件 可靠性验证

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论