(计算机软件与理论专业论文)基于olc算法的软件可靠性预测分析.pdf_第1页
(计算机软件与理论专业论文)基于olc算法的软件可靠性预测分析.pdf_第2页
(计算机软件与理论专业论文)基于olc算法的软件可靠性预测分析.pdf_第3页
(计算机软件与理论专业论文)基于olc算法的软件可靠性预测分析.pdf_第4页
(计算机软件与理论专业论文)基于olc算法的软件可靠性预测分析.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要 论文题目:基于o l c 算法的软件可靠性预测分析 学科专业:计算机软件与理论 研究生:许宁签名: 指导教师:张毅坤教授签名: 摘要 软件可靠性工程可以应用于任何基于软件产品的任一版本,可以开始于任一版本周 期。它是对于软件产品质量保证的一门科学。应用于软件工程的整个生命周期。而软件可 靠性增长模型在这个过程中起到的作用是至关重要的。通过合理的预测我们可以得出一些 积极的软件可靠性指标,得以很好地控制软件过程中进行相关的预测活动。众所周知,软 件可靠性的预测分析是建立在大量缺陷数据上的,而通过对大量的软件可靠性增长模型的 静态趋势分析得出,个别异常数据点对软件可靠性预测过程中的扰动是极其明显和普遍 的,并且这些数据不能完全的遵从于分布曲线。产生这些现象的原因有:在不同功能区选 取测试用例进行测试会得到不同的失效数据分布:软件可靠性测试的输入域数据的分布与 选取也影响时间域内的失效数据分布趋势等等。在软件可靠性过程中,原始假设门槛过高, 对于并不能均匀分布但是却具有代表性,且覆盖性大的缺陷数据并不能做到极大地拾取, 另外对于异点扰动数据显得无能为力。 本文讨论并分析了现有经典模型( j m 模型) 在进行软件可靠性指标分析中的局限性, 提出了基于o l c 算法的可靠性模型的预测分析,也提出了正交聚类结构,同时结合传统 模型,在积累软件缺陷数据的基础上,进行预测分析。在阐述该结构体系时分为三大部分: a _ 传统软件可靠性模型预测分析的局限性和提出的问题;b 正交结构聚类算法的提出以及 基于此算法的改进模型的提出;c 预测分析的实现和数据分析比较。在a 部分,以传统 j - m 模型为依托,介绍基于传统模型的软件可靠性预测分析的过程,引入传统预测模型的 相关概念,分析出其中的不足并提出问题。在b 部分,以传统的正交结构和聚类“1 理 论为依托,提出正交聚类结构体系,分析解决a 部分提出问题的原因,并给出相关的概念。 c 部分讨论了基于新算法运用于j m 模型,并以k i s h o rs t d v c d i 提出”1 的传统的缺陷积 累数据进行实际的软件可靠性预测分析。 本文提出的算法在改进的j m 模型上,进行软件可靠性预测分析,深入介绍了j m 模型缒选取和概念,针对其预测中存在的不足,提出基于o l c 算法的预测。同时发现该 体系结构煮不少地方值得进一步改善和深入研究,因此在本文的最后讨论了该体系结构的 不足和展望 关键词:软件可靠性增长模型;正交分层聚类算法;失效数据集 a b s t r 8 c t t i t l e :t h er e s e a c ho nr e l i a b i l l t yp r e d i c t i o nb a s e do n o r t h o g o n a ll a y e rc l u s t e r l n ga l g o r l t h m m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y n a m e :n i n gx u s u p e r v i s o r :p r o 骨y i k u nz h a n g a b s t r a c t t h es o f t w a r er e l i a b i l i t yp r o j e c tm a ya p p l yi na n yb a s e do ns o f t w a r ep r o d u c ta n ye d i t i o n , m a ys t a r ti na n ye d i t i o nc y c l e i ti sr e g a r d i n gas o f t w a r ep r o d u c tq u a l i t yg u a r a n t e es c i e n c e a p p t i n si nt h es o f t w a r ee n g i n e e r i n ge n t i r el i f ec y c l e b u tt h es o f t w a r er e l i a b i l i t yg r o w t hm o d e l p l a y s a l li m p o r t a n tr o l ei n t h i sp r o c e s s t h r u u 曲r e a s o n a b l ef o r e c a s tw em a yo b t a i ns o m e p o s i t i v es o f t w a r er e l i a b l et a r g e t ,w h i c hc a nc o n t r o li nt h es o f t w a r ep r o c e s st oc a r r yo nt h e c o r r e l a t i o nf o r e c a s tw e l l i ti sw e l lk n o w n ,t h es o f t w a r er e l i a b l ef o r e c a s ta n a l y s i si sb a s e do nt h e m a s s i v ef l a wd a t a ,b u tt h r o u i g ht h es t a t i cs t a t et r e n da n a l y s i so fm a s s i v es o f t w a r er e l i a b i l i t y g r o w t hm o d e l ,t h ei n d i v i d u a lu n u s u a ld a t ap o i n t i n gt oi nt h es o f t w a r er e l i a b i l i t yf o r e c a s tp r o c e s s p e r t u r b a t i o ni se x t r e m e l yo b v i o u sa n du n i v e r s a l ,a n dt h e s ed a t ac a n n o tt h ec o m p l e t ed e f e r e n c e i nt h ed i s t r i b u t i o nc u r v e h a st h e s ep h e n o m e n o nr e a s o nt oi n c l u d e :d o e sn o tc a r r yo nt h et e s ti n t h ea n a l o g ye n e r g yr e 酉o ns e l e c t i o nt e s tw i t ht h ee x a m p l et ob ea b l et oo b t a i nt h e d i f f e r e n t e x p i r a t i o nd a t ad i s t r i b u t i o n ;t h es o f t w a r er e l i a b i l i t yt e s t i n gi n p u tt e r r i t o r yd a t ad i s t r i b u t i o n sa n d t h es e l e c t i o na l s oa f f e c ti nt i m ed o m a i ne x p i r a t i o nd a t ad i s t r i b u t e dt e n d e n c ya n ds oo n i nt h e s o f t w a r er e l i a b l ep r o c e s s ,t h ep r i m i t i v es u p p o s i t i o nt h r e s h o l de x c e s s i v e l yi sh i g h ,b u th a v e r e p r e s e n t a t i v ea l s ot h es p r e a da b i l i t yb i gf l a wd a t ar e g a r d i n gc a n n o tt h eu n i f o r md i s t r i b u t i o n c a n n o ta c h i e v et h ee n o r m o u sc o l l e c t i o n ,m o r e o v e r r e g a r d i n g d o e sn o tc o n f o r mt ot h i s s u p p o s i t i o nr e q u e s tp e r t u r b a t i o nd a t at oa p p e a rh e l p l e s s l y t h i sa r t i c l ed i s c u s s e dt h el i m i t a t i o n so ft h et r a d i t i o n a lm o d e li ns o f t w a r er e l i a b i l i t ya n a l y s i s , p r e s e t san e wp r e d i c t i o na n a l y s i sm e t h o do fs o f t w a r er e l i a b i l i t ym o d e lb a s e do no l c a l g o r i t h m , a n dt h eo r t h o g o n a lc l u s t e rs t r u c t u r e t h ed i s c u s s i o no fa r c h i t e c t u r eo fa n a l y s i si s c o m p o s e do ft h r e es e c t i o n s :f i r s t , t h el i m i t a t i o n so fp r e d i c t i o na n a l y s i so ft r a d i t i o n a ls o f t w a r e r e l i a b i l i t ym o d e la r ed e s c r i b e d s e c o n d l y , t h eo r t h o g o n a ic l u s t e rs t r u c t u r ea l g o r i t h mi s i n t r o d u c e da n dt h ei m p r o v e dm o d e lb a s e do nt h i sa l g o r i t h mi sp r e s e n t e d a tl a s t ,t h ep r e d i c t i o n a n a l y s i si si m p l e m e n t e da n dd a t ai sa n a l y z e d i nt h ef i r s ts e c t i o n ,b a s e do nt h et r a d i t i o n a lj - m m o d e l , t h ep r o c e s so fp r e d i c t i o na n a l y s i so fs o f t w a r er e l i a b i l i t ym o d e la n di t sr e l a t i v e h l 西安理工大学硕士学位论文 c o n c e p t i o ni si n t r o d u c e d ,t h el i m i t a t i o n so ft h i sm e t h o di sd i s c u s s e d i nt h es e c o n ds e c t i o n ,a m e t h o db a s e d0 1 1o r t h o g o n a lc l u s t e rs t r u c t u r e 【1 2 la l g o r i t h mi sp r e s e n t e di no r d e rt os o l v et h e p r o b l e m sr a i s e di nt h et r a d i t i o n a lm e t h o da n dr e l a t i v ec o n c e p t i o n sa r ea l s oi n t r o d u c e d i nt h e t h i r ds e c t i o n ,t h en e wa l g o r i t h m 【”i sa p p l i e dt ot h ej mm o d e l ,a n dt h et r a d i t i o n a la c c u m u l a t e d d e f e c t i v ed a t ai su s e di na c t u a ls o f t w a r er e l i a b i l i t yp r e d i c t i o na n a l y s i s t h i sa r t i c l ew h i c hp r o p o s e st h ea l g o r i t h mc a r r y i n go nt h es o f t w a r er e l i a b i l i t yi nt h e i m p r o v e m e n tj - mm o d e lt of o r e c a s tt h ea n a l y s i sh a ss o l v e dt h ep r o b l e mw h i c ht h ef i r s tp a r t p r o p o s e d ,e n h a n c e d t h ef o r e c a s t e f f i c i e n c y a n dt h e a c c u r a c y , t h eu s a b i l i t y i s s t r o n g s i m u l t a n e o u s l yh a sv e r ym a n yp l a c e st ob ew o r t hf u r t h e ri m p r o v i n ga n dt h et h o r o u g hr e s e a r c h , a n df i n a l l yd i s c u s s e dt h i sa r c h i t e c t u r ei n s u f f i c i e n c ya n dt h ef o r e c a s ti nt h i sa r t i c l e k e yw o r d s :s o f t w a r er e l i a b i l i t yg r o w t hm o d e l ;o r t h o g o n a ll a y e r - c l u s t e r i n ga l g o r i t h m f a i l u r ed a t af l e l d :f a l l u r ed a t as e t 、 i v 独创性声明 秉承祖国优良道德传统和学校的严谨学风郑重申明:本人所呈交的学位论文是我个 人在导师指导下进行的研究工作及取得的成果。尽我所知,除特别加以标注和致谢的地 方外。论文中不包含其他人的研究成果。与我一同工作的同志对本文所论述的工作和成 果的任何贡献均已在论文中作了明确的说明并已致谢。 本论文及其相关资料若有不实之处,由本人承担一切相关责任 p南 论文作者签名:! l兰濞月“b 学位论文使用授权声明 本人! :ii在导师的指导下创作完成毕业论文。本人已通过论文的答辩,并 已经在西安理工大学申请博士硕士学位。本人作为学位论文著作权拥有者,同意授权 西安理工大学拥有学位论文的部分使用权,即:1 ) 已获学位的研究生按学校规定提交 印刷版和电子版学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的 学位论文,可以将学位论文的全部或部分内容编人有关数据库进行检索;2 ) 为教学和 辩研耳的,学校可以将公开的学位论文或解密后的学位论文作为资料在图书馆、资料室 等场所或在校园网上供校内师生阅读、浏览。 本人学位论文全部或部分内容的公布( 包括刊登) 授权西安理工大学研究生部办 理。 ( 保密的学位论文在解密后,适用本授权说明) 论文作者签名:7 年月“日 喈 名签师导 暇 蚜十 1 绪论 1 绪论 1 1 立题背景 随着软件行业的迅速发展,软件作为产品,其产品质量也越来越多地被关注。于是软 件可靠性度量随之发展起来。软件度量可以分为三大类”1 :产品度量,过程度量和项目 度量。其中产品度量是用来描述软件产品的特征,例如规模大小,软件设计特征,软件质 量以及质量水平。而软件作为成熟的产品,其质量水平的度量是我们所关注的。在软件产 品质量度量中,往往是通过根据成熟的软件可靠性经典模型,在积累的缺陷数据的基础上, 得出软件的可靠性趋势,从而估计出软件可靠性指标:缺陷率,趋势图等 自软件作为产品被提出以来”“1 ,软件可靠性模型预测分析随着这个概念也迅速发 展起来。随着软件工程在各行各业的普遍应用,对于软件的质量和可靠性有了越来越高的 要求,特别是在航天,军事等对控制,及时性要求较高的过程控制软件,可靠性显得尤为 的重要。而且随着软件的销售量和使用量呈几何级数增长,软件的规模也越来越大,复杂 性急剧提高。这样以几何倍数增长的复杂的软件系统对于可靠性的要求也是有目共睹的。 而软件在需求,设计,开发过程中暴露出来的缺陷要由测试等技术手段来保证软件的可靠 性,同时,根据已经积累的缺陷数据,软件可靠性模型要预测分析出软件产品可靠性趋势 和软件可靠性指标。这也就是软件可靠性定量评估过程。 软件可靠性的定量评估及预测关系到软件何时进行测试,何时投放市场的最佳时机。 而软件可靠性增长模型( s r g m ) 在这个过程中起到的作用是至关重要的。通过合理的预测 我们可以得出一些积极的软件可靠性指标,碍以很好地控制软件过程中进行相关的预测活 动。软件可靠性模型分为两个主要类别:故障间隔时间模型( t i m eb e t w e e nf a i l u r e sm o d e l ) 和故障数目模型。其中故障时间模型中又以j - m 模型为代表。众所周知,用软件可靠性 模型进行预测时,是通过积累的缺陷数据进行预测的。其中包括两方面的因素:1 对于 各种类型的建模,输入数据越精确,输出就越好。2 采集数据点越多,采集的数据越接近 实际,代表各个可能发生的情况,模型就越有效。于是问题随之而产生,经典模型对缺陷 数据的提取过于理论化,不具现实代表性,这样测试工作量很明显是不均匀的,那么就需 要某种归一化( n o r m a l i z a t i o n ) :在尽可能多的采集缺陷数据的前提下,尽可能将采集的缺 陷数据在时间间隔上分布均匀,减少异点的扰动,这样通过可靠性预测模型估计出的趋势 和可靠性指标就更有效,更接近于现实的软件环境。 可靠性模型试图用精确的统计术语来概括复杂的现实情况。然而建模的实际过程往往 不能达到非常精确,所以在模型的开发中就需要非常明确的假设陈述。在应用中,当能够 符合基本的假设时,模型就能更好的发挥作用;反之亦然。换句话说,假设越合理,缺陷 数据选取越接近于现实,模型就越好。缺陷假设基本假设如下:1 钡0 试间隔彼此相互独立。 1 西安理工大学硕士学位论文 2 间隔之间的测试是均匀的。3 在不重叠的间隔中检测到的缺陷数目彼此之间相互独立。 如同前面所讨论的,缺陷数据测试工作量均匀分布的假设是模型的关键,假如不能满足这 个假设,就要进行某种归一化或统计调整,以此得出的软件可靠性缺陷数据即为预测研究 的蕉础。 传统的j m 模型预测一般是在积累的经典的缺陷数据( 并不做上述的归一化) 的基础 上进行分析,具有很大的弊端:数据不做归一化聚类调整对分析的干扰很大,同时在具有 复杂模块耦合的软件系统中,并不做任何结构上的设计,那么模块间和模块间具有比较大 的转移概率,独立性不高,进而影响整体可靠性下降,不利于软件可靠性的整体预测,那 么设计出一种行之有效的系统一级的体系结构对于软件系统的预测是很有帮助并能提高 效率。 所以在以上提及的两大方面进行继续的研究和分析,能为软件系统可靠性分析打下良 好的基础。 1 2 国内外研究现状 软件可靠性是软件工程学与可靠性工程学结合产生的前沿科学。它的兴起和发展源于 三个方面的因素。首先,需求的拉动力:持续了二三十年的软件危机与上世纪九十年代软件 故障引发的许多重大事故大大损害了客户满意度:其次,技术的推动力:信息技术( 硬件技 术、软件技术) 的迅猛发展有力推动软件可靠性发展:最后,可靠性工程的理论和方法对软 件可靠性的支撑力,见图卜1 。 软件可 l 能篙 靠性 l 技术推动力 l 理论的支撑力 图1 1 可靠性发展 f i g 1 1t h eg r o w t ho f r e l i a b i l i t y 软件可靠性的发展伴随着信息技术和可靠性工程的发展而成长。软件可靠性发展至今 可分为下列三个阶段: 第一阶段:( 1 9 5 0 1 9 6 7 年) ,软件可靠性学科萌芽时期 2 1 绪论 在软件发展过程的这个原始阶段中,完全没有软件可靠性的概念没有公认的规则可供 遵循。1 9 5 7 年,美国国防部电子设备可靠性顾问团( a g r e e ) 的报告是公认的可靠性工程 的奠基性文件,但是,完全没有提及软件和软件可靠性的问题可靠性( r e l i a b i l i t y ) 的定义 是:产品在规定的条件下和规定的时间内完成规定功能的概率。 第二阶段:( 1 9 6 8 1 9 8 7 年) ,软件可靠性学科的形成时期。 在1 9 6 8 一1 9 7 8 年间。以集成电路为主体的小型机逐渐得到了广泛的应用,在硬件技 术迅速发展的推动下,以及在软件危机带来的用户对软件可靠性需求的紧迫性的拉动下, 软件可靠性学科和软件工程学科得以建立和发展。这个时期的特点是:以软件可靠性为主 题的国际学术会议频频召开,吸引了各界人土的关注。软件可靠性的数学模型尤如雨后春 笋般地大量涌现。著名的je l i n s k i - - m 0 2 r a n d a 模型、s h o o m a n 模型、n e l s e n 模 型、m i l l s b a s 矾模型都是在这个阶段推出的。此外,软件失效数据的积累和分析工 作也有了初步发展。在1 9 7 8 一1 9 8 7 年闻。由于大规模集成电路的出现,对软件技术的发 展产生了深刻的影响。这个时期的特点:各种验证和试用的软件可靠性模型相继推出:软件 可靠性管理技术的开发已列入日程;软件可靠性标准化工作开始起步。国际电工委员会制 定了可靠性的标准,硬件可靠性和安全性分析中所采用的故障树分析法( v i a ) ,故障模式 效应分析法( f m e a ) 和潜藏回路分析法( s c a ) ,已在软件安全性分析中使用,取得可喜成 果。 第三阶段:( 1 9 8 8 年至今) 软件可靠性向工程应用过渡的时期。 关于软件可靠性预测分析的工作主要在国外展开,国内到目前为止该项研究还处于起 步阶段。其中可靠性软件的设计,缺陷数据的收集都是预测分析工程中的重点:在这些方 面国外做的主要工作和问题有: 在软件设计过程中,为了提高软件可靠性,经常采用一些专门的技术将可靠性“设计” 到软件中去。提高软件可靠性的技术主要有两类:一类是避免故障,即在开发过程中,不让 缺陷和差错潜入软件的技术;另一类是容错技术,其中最常用的设计技术就是恢复块技术 和n 一版本程序设计技术。f b e l l e 等人从可靠度优化、费用优化等方面考虑了软件的容 错技术“1 。在此基础上,将上述诸技术结合起来,b e l l e 等人提出了一致性恢复块、接受表 决、n 自检程序设计以及考虑版本间失效相关的容错技术,但目前这些技术仍处于理论上的 研究,其工程上的实践尚有待于进一步探讨。软件可靠性数据的收集是估测软件可靠性的 基础,所收集的数据是否有效,是否满足模型的要求,直接影响到软件可靠性评估的准确性 和可靠性。通常收集的软件可靠性数据有两类:失效计数数据和失效间隔数据。但由于软 件中一个相同的错误可能会导致许多失效,并且若干个错误之间有时存在相关性,从而会 降低所收集到数据的精确度,因此收集软件可靠性数据时,首先要制订出详细的计划和标 准,如人力资源、时间的分配,所收集数据的形式、记录方式、存储方式等问题。其次,应 对数据作具体的分析处理后方可应用,如数据的提取、合并、相关性分析等,采用的主要技 术有e m 算法、分段拟合技术等另外。当应用某一具体的软件可靠性模型时,可能会出现 3 西安理工夫擘硕士学位论文 需要的是其中的一类失效数据,而收集到的却是另一类,这时需进行失效数据间的转换”1 。 目前虽己开发出了一些自动收集软件可靠性数据的支持工具,但局限性很大,因此,如何准 确而高效地自动收集各种软件可靠性数据,还是一项有待于进一步研究和实践的课题。传 统的软件可靠性预测模型大多通过拟合已收集到的软件失效数据来预测软件在未来时间 的失效数。考虑到不同时期软件失效数据对软件可靠性预测的影响会有所不同,d o w n st , g a l - r o n ep 提出了一个双指数平滑软件可靠性预测模型“”,即对近期所观察到的软件失效 数据赋予一个较大的权值,与传统的预测模型相比,该模型简单易行且准确程度高。对于软 件可靠性预测中的不一致问题,k a r u n a n i t h i 等人在1 9 9 1 和1 9 9 2 年这两届的i e e e 关于软 件可靠性工程的国际会议上,提出了利用神经网络来解决该问题。在训练人工神经网络阶 段,使用执行时间作为输入,而将观察到的累积错误数作为目标输出,在训练结束时,输入 一个附加的、未来的、执行时间的区间段,并考察人工神经网络对累积错误数的估计精度 t i l l 。s o nh s ,s e o n gph 等人利用熵论针对软件开发阶段由于开发方法的差异而引起的 软件可靠性预测问题作了定量分析“。 1 3 本文的目标和主要工作内容 软件可靠性工程贯穿于软件工程的整个生命周期,当然需要从需求设计阶段就进行可 靠性设计,在开发阶段,用适当的可靠性度量模型提取缺陷数据进而对这些数据进行分析。 软件可靠性模型是软件可靠性定量分析技术的基础。以软件可靠性模型为支撑的软件可靠 性定量分析技术,在软件开发过程中具有重要的作用。可靠性度量模型的建立以及建立合 适的可靠性模型来分析数据是重中之重,而其中度量的分析构造又尤为重要,为立题的重 点。 本文针对1 1 节中介绍的问题,分析研究基于现有的软件可靠性预测模型预测软件可 靠性趋势和软件可靠性指标时所存在的不足。以尝试在原有理论和分析的基础上找出能够 比较接近于实际缺陷数据和能处理干扰点缺陷数据的算法,结合改进的软件可靠性模型来 对软件可靠性趋势和指标进行预测。为达到此目标需要完成的主要工作内容如下: ( 1 ) 传统可靠性模型预测的概念,分析及其存在的问题。 对于软件定量的评估方法,其重点是用模型进行评估预测,所以介绍可靠性概念, 模型表达式以及存在的前提假设,模型预测的步骤和分析。在研究现有模型和可靠性预测 分析的基础上比较出存在的问题。得出立题的基础。 ( 2 ) 正交结构聚类算法及改进模型的提出。 本文根据以上阐述的问题知道:传统的模型预测分析时,理论缺陷数据不能很好的反 映实际的情况;缺陷数据在实际的时间间隔内分布不均匀等问题造成了缺陷数据对预测的 “扰动”,那么对于缺陷数据必须要选择某种算法对缺陷数据进行归一化:即就是尽可能 多的进行实际的具有各种代表性的缺陷数据地拾取,使得缺陷数据在时间间隔上分布均 4 1 绪论 匀,减少扰动。o i c 算法的提出能解决这些问题。同时在此部分提出与o l c 算法结合的 改进的j m 模型。重点介绍正交,聚类以及o l c 算法的基本思想及其使用步骤,作为实 验验证的基础和前提。 ( 3 ) 实验验证。 以第二部分提出的模型和算法,利用k i s h o rs t r i v e d i 提出的传统的积累的缺陷数据 进行实际软件可靠性的预测分析。包括介绍缺陷数据归一化的步骤和详细说明,得出归一 化后的数据聚类,作为实验验证的数据前提。最后,分别计算出在改进基础上预测出的结 果和经传统模型预测出的结果,将得出的预测结果及其趋势曲线做一对比分析,得出结论。 5 西安理工大学硕士学位论文 2 传统模型预测及存在的问题 本章首先介绍传统的基于时间间隔的可靠性增长模型一1 一m 模型,以及根据模型所 进行的可靠性预测分析方法和具体步骤,最后提出存在的问题。 2 1 可靠性定义及影响可靠性评估的因素 2 1 1 可靠性定义 软件可靠性有定性和定量两层含义。其定性的含义是指在规定的条件下和规定的时间 内,完成规定功能的能力。“规定的条件”是指对输入数据的要求和计算机当时的状态( 软 件运行环境) ,即软件的用法。一个软件的可靠性随着用法的不同而不同。有些用法可以 揭露软件的故障而有些却不能。因此,如何定义软件的用法以及如何度量用法对软件失 效的影响,是软件可靠性研究中的一个主要课题。“规定的时间”是指软件的工作周期。 软件的可靠性是一个时间函数,失效的概率随着系统工作周期的长度而增加。常用的时间 概念有软件执行时间、日历时间和计算机使用时间。“完成的功能”是指软件不出现失效。 如果系统不能完成其功能,说明它已经失效。为了识别是否失效,必须明确要求它完成的 功能是什么。规定的功能通常在软件需求规格说明书中定义。从定量的含义出发,工程上 常用软件可靠度代替软件可靠性。软件可靠性模型是软件可靠性定量评估的主要手段。软 件可靠性也被作为衡量软件质量最重要的指标和软件开发的最终目的。 可靠性是软件的一个质量要素。明确这个观点,可以避免可靠性工作与质量保证工作 相对立。另一方面,如果在软件的开发过程中,仅限于泛泛提及软件质量,忽视软件可靠 性的特殊性,在许多情况下是不妥当的。软件如果不具有足够的可靠性水平,使用过程中 将频繁失效,其后果轻则给用户带来麻烦,造成经济损失,重则导致安全事故发生。这样 的软件不仅没有使用价值,而且非常危险。 关于可靠性的确切含义“1 ,学术界有过长期的争论。曾经有人否认软件具有可靠性 属性,把软件可靠性说成是科学家的一种“神圣理想”,也有人认为软件的正确性就是可 靠性。经过长期的论证和研究,1 9 8 3 年美国i e e e 计算机学会对“软件可靠性”一词正式 做出如下定义: ( 1 ) 在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统 输入和系统使用函数,也是软件中存在的错误的函数;系统输入将确定是否会遇到已存在 的错误( 如果错误存在的话) 。 ( 2 ) 在规定的时问周期内,在所述条件下程序执行所要求的功能能力。 定义中所指的“条件”,是指环境条件。环境条件包括了与程序存储,运行有关的计 算机及其操作系统。例如计算机型号,字长,内存容量,外存介质的数量及容量,输入和 输出设备的数量及其它支持软件。这些因素显然对程序运行有着重要的影响。但是这些因 6 2 传统模型预测及存在的问题 素在使用中一般没有变化。定义中的环境条件还包括软件的输入分布。程序在启动运行时, 需要给变量赋值,即给程序提供输入数据。输入数据可能是由外部设备输入,也可能早已 存储于计算机内等待读取。程序运行一次所需的输入数据构成程序输入空间的一个元素, 这个元素是一个多维向量,全体输入向量的集合构成输入空间。一组输入数据经过程序处 理后,得到一组输出数据。这些输出数据构成一个输出向量,全部输出向量的集合构成程 序的输出空间。程序输入空间元素数量非常庞大,程序运行每个元素被选用的概率不相同, 构成一定的概率分布,我们称这个概率分布为程序的运行剖面。程序不同的运行状态,对 应于不同的运行剖面。而在软件可靠性预测中,缺陷数据即为输入域的输入。图2 - 1 发生概率 0 1 0 0 0 5 输入状态 ( a ) 离散型运行剖面 发生概率 输入空间 ( b ) 连续型运行剖面 图2 1 离散型运行剖面图与连续型运行剖面图 f i g 2 - 1t h es e c t i o np r o f i l ea n dc o n t i n u a lp r o f i l e 为离散型运行剖面图和连续型运行剖面图。反映了根据输入缺陷数据的不同,软件系统失 效发生的概率。 2 1 2 影响可靠性评估的因素 根据调查问卷,对整个软件开发过程的5 个主要阶段( 分析、设计、编码、测试和运行) 进行分析,从分属不同阶段的因素对软件最终产品的可靠性影响进行等级评分,利用相关 性加权方法排序。其中,软件复杂性、程序员的技能、测试努力度、测试覆盖率、测试环 境和程序规格说明书是影响软件可靠性的主要因素。软件可靠性定量评估一般只是对软件 可靠性测试后的失效数据进行分析,而忽略了软件开发过程中的大量有用信息。研究人员 意识到从软件开发过程中的各种可靠性因素、软件应用特性、软件测试过程中收集到的失 效数据、软件应用环境等信息中可以挖掘到隐含的有用知识,并将其用于软件可靠性定量 评估过程,以得到更加可信、准确的软件评测结果。软件可靠性定量评估过程如图2 - 2 所 示。针对与软件开发过程中的各个阶段,影响软件可靠性的主要因素如下: 软件可靠性是关于软件能够满足需求功能的性质,软件不能满足需求是因为软件中的 7 西安理工大学硕士学位论文 差错引起了软件故障。 差错影响了软件可靠性,而差错主要是因人为因素造成的: 1 需求分析定义错误。如用户提出的需求不完整,用户需求的变更未及时消化,软件 开发者和用户对需求的理解不同等等。 2 设计错误。如处理的结构和算法错误,缺乏对特殊情况和错误处理的考虑等。 3 编码错误。如语法错误,变量初始化错误等。 4 测试错误。如数据准备错误,测试用例错误等。 5 文档错误。如文档不齐全,文档相关内容不一致,文档版本不一致,缺乏完整性等。 从上游到下游,错误的影响是发散的,所以要尽量把错误消除在开发前期阶段。 图2 - 2 可靠性定量评估过程 f i g 2 - 2t h ep r o c e s so f r e l i a b i l i t ym e a s u r a b l ea s s e s s m e n t 除了影响可靠性引起差错的人为因素外,还有软件产品自身的因素,软件产品是由某 一计算机语言写成的语句有序集合,也就是计算机程序。它的作用是将输入转换成相应的 输出,可以用一映射函数f 表示。软件可靠性是指在给定时间内,特定环境下软件无错运 行的概率。从这个角度讲,影响软件可靠性的因素主要包括: 1 ) 软件规模; 2 ) 软件对实际需求的表述上的符合度; 8 2 传统模型预测及存在的问题 3 ) 软件的运行剖面; 4 ) 软件的内部结构,郎软件复杂度: 5 ) 软件的开发方法; 6 ) 软件开发人员的能力和经验; 7 ) 软件开发的支持环境; 8 ) 软件可靠性设计技术; 9 ) 软件的测试与投放方式等。 软件规模是指软件系统的复杂程度,程度越复杂模块耦合程度越大越影响软件可靠性。 软件的运行剖面是指在特定的时问下,软件系统的状态,而软件系统在时间点上是由无数 个软件剖面构成的,所以每一时刻的软件剖面都会对软件系统造成一定的影响。在所有的 影响软件可靠性程度的因素中,如何准确评价预计软件的使用可靠性是软件工程的重大 问题之一。在根据一定积累的缺陷数据的基础上,可以用固定的定量评估方法对软件系统 的趋势做一预计,可以了解软件系统的可靠性指标,并指导软件管理人员对软件的趋势进 行了解,对软件何时投放市场,何时测试做出正确的判断。 2 2 可靠性模型及模型的预测过程 2 2 1 可靠性模型的概念 软件可靠性模型是软件可靠性定量分析的基础。以软件可靠性模型为支撑的软件可靠 性定量分析技术在软件开发过程中具有重要作用。 软件可靠性工程所用的模型有两大类型:可靠性预计模型和可靠性结构模型。 ( 1 ) 可靠性预计模型 可靠性预计模型本质上是一些描述软件失效与软件错误的关系,描述软件失效与运行 剖面的关系的数学方程。借助这类模型,可以对软件的可靠性特征做出定量的预计或评估。 例如,可以预计开发过程中的可靠性增长,预计或评估软件在规定工作时间的可靠度,预 计软件在任意时刻发生的失效数的平均值,软件在规定的时间间隔内发生失效次数的平均 值,软件在任意时刻的失效率,软件失效时间间隔的概率分布和软件预期交付时间等。评 估和预计是两个有区别又有联系的概念。评估是指对软件现有的可靠性水平做出评价。预 计是指对软件未来的可靠性特征进行预测。预测未来的前提是认识现状,所以二者难以截 然分开。必须指出,在使用数学模型进行预计时,蕴含的假定是,事物发展规律在未来的 一段时间保持不变。对于短期预测这个假设是合理的。但是,随着预测期的延长,其近似 性减弱。用可靠性模型进行预计时,为了得到比较准确的结果,如果发现软件的失效规律 有明显改变,应该对参数加以修正或重新收集失效数据。重新确定模型参数。 ( 2 ) 可靠性结构模型。可靠性结构模型是指用于反映系统结构逻辑关系的数学方程。 借助这类模型,在掌握软件单元可靠性特征的基础上,可以对系统的可靠性特征及其发展 9 西安理工大学硕士学位论文 变化规律做出评价。软件可靠性结构模型包括串联系统模型,并联系统模型,以及复合系 统模型等。软件可靠性结构模型是软件系统可靠性分析的重要工具。 其中,可靠性增长模型j c l i n s k i m o r a n d a ( j m ) 模型是最早的软件可靠性预计模型之 一,它对软件可靠性定量分析技术的建立和发展做出了重要的贡献。 2 2 2 可靠性模型的作用 软件可靠性模型是软件可靠性定量分析技术的基础。以软件可靠性模型为支撑的软件 可靠性定量分析技术,在软件开发过程中具有重要的作用。 借助软件可靠性定量分析技术,可以对各种软件开发技术的优劣做出定量的评估。为 了提高软件质量,2 0 多年来陆续出现了许多软件开发技术。但是对这些技术使用的实际 效果,人们无法定量评定,致使优劣难辩。这种状况造成了部分人对使用新开发技术持观 望态度,若干新技术在软件开发中的应用进展迟缓。可靠性定量分析技术的应用,为评估 软件开发技术的价值提供了判断依据,增加了新技术实用价值的透明度,有助于提高人们 开发和应用新技术的积极性。例如,设计评审是保证软件质量的重要手段,设计评审的效 果则可以用评审前后软件失效率的变化来定量反映。 软件可靠性定量分析技术的应用,使项目管理人员能够在软件的测试阶段,进行可靠 性增长分析,及时评估软件的开发水平。在软件可靠性定量分析技术出现之前,用来评价 测试进程的方法只有直观判断法,完成测试百分比分析法和关键功能测试法,它们没有一 个能够真正满足软件开发水平评估的要求。使用可靠性预计模型得出的,以测试数据为基 础的软件可靠性参数( 例如软件失效率) ,为评估开发进程提供了定量的,客观的依据。在 测试过程中,伴随测试进展和测试资源投入,软件可靠性将呈现出增长的趋势,使用软件 可靠性模型,可以对软件可靠性增长趋势进行分析,预计。软件的可靠性增长与项目开发 进度和资源消耗有紧密的联系,从可靠性增长分析中得到的信息,将成为项目决策的重要 依据。 借助软件可靠性定量分析技术,可以监控软件的运行性能,控制软件的设计变更,控 制软件的功能扩充。扩充软件功能和对程序做大幅度的修改,都会降低软件的可靠性。采 用可靠性定量分析技术,观察软件可靠性指标的变化,可以确定软件的设计变更和软件的 功能扩充是否合理,可行。 采用软件可靠性定量分析技术,项目主管和设计师对软件质量实施定量的监控,找出 影响产品的质量的因素。软件可靠性定量分析所提供的这些信息,深化了项目主管和设计 师对软件开发过程的认识。当需要就开发过程中的重大问题做出决策时,项目主管和设计 师能够从软件定量分析的结果中得到帮助。 2 2 3 可靠性模型预计的正确使用 1 0 软件可靠性预计模型,虽然具有诱人的定量分析能力,但是必须指出其模型仅仅是用 2 传统模型预潮及存在的问题 来反映软件可靠性特征的数学工具,各种数学模型只有当它们能够正确地反映真正的客观 规律时,才具有存在和使用的价值。而现在的各种模型实际上多少都具有经验色彩,只有 谨慎,正确使用,避免失误,才能充分发挥模型的作用。 正确使用软件可靠性预计模型,需要一个指导项目开发的可靠性大纲。这个大纲应包 括软件开发周期各个阶段可靠性工作的内容和要求。可靠性模型的应用必须从属于大纲的 要求。在开发过程中,具有潜力应用可靠性模型的阶段是测试阶段和维护阶段。在测试阶 段模型用来评估软件的可靠性水平,预计交付的使用日期,调整资源分配,判断软件是否 已经达到规定的可靠性要求。在维护阶段,模型用来监控使用中的可靠性水平,评估软件 的维护质量。 正如上面阐述中所提及,使用软件可靠性模型进行评估和预计,必须对模型中的未知 参数做出估计。测试数据是模型参数估计的基础,所以数据采集工作的质量对模型应用, 具有关键性的影响,数据采集是一项非常复杂的,要求很高的工作。要适应软件开发的特 点,建立起一个有效的数据采集系统,制定出一套有效的管理办法,设计出合理的数据登 记表格,对从事数据采集的人员进行培训,只有这样才能保证数据采集的广泛性和准确性。 所以缺陷数据是本文研究的重点,数学模型的分析就是从数据按一定的算法的定量分析开 始的。 在使用可靠性模型进行正确分析的过程中,还应该遵循正确的规程,才能有统计的意 义和结果。图2 - 3 为模型使用的规范流程。 西安理工大学硕士学位论文 失效数据 i 假设放障模型软件系统特

温馨提示

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

评论

0/150

提交评论