(管理科学与工程专业论文)基于nhpp的软件可靠性模型研究.pdf_第1页
(管理科学与工程专业论文)基于nhpp的软件可靠性模型研究.pdf_第2页
(管理科学与工程专业论文)基于nhpp的软件可靠性模型研究.pdf_第3页
(管理科学与工程专业论文)基于nhpp的软件可靠性模型研究.pdf_第4页
(管理科学与工程专业论文)基于nhpp的软件可靠性模型研究.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(管理科学与工程专业论文)基于nhpp的软件可靠性模型研究.pdf.pdf 免费下载

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

文档简介

武汉理 大学硕士学位 文 摘要 在软件可靠性工程中,软件可靠性增长模型具有非常重要的地位。目前为 止,软件可靠性增长模型种类非常多,但基本上都是基于一些随机或非随机过 程,因此基于分类的软件可靠性模型研究是非常有必要的。 本文第一部分首先介绍了软件可靠性以及软件可靠性模型的发展历史与国 内外现状,接下来阐述了软件可靠性与可靠性模型的相关概念,包括软件可靠 性影响因素分析、软件可靠性特点、仿硬件的可靠性指标以及软件可靠性模型 研究的意义,为本文的研究提供了理论基础。 第二部分首先介绍了软件可靠性模型研究中常用的一些概率分布( 两点分 布与二项分布、泊松分布、几何分布、指数分布,w 啪u 1 1 分布、极值分布、正 态分布) 、随机过程( 泊松过程,非齐次泊松过程,马尔可夫过程) 和参数估计 方法( 最大似然法、最小二乘法、贝叶斯估计) ,为本文的研究提供了数学基础: 接着在上述数学基础之上,简要介绍了几种经典的n h p p 类软件可靠性模型, 包括g o e lo k u m o t o 模型、g o m p e r t zg r o w t hc u r v e 模型、l o g i s t i cg r o w t hc u r v e 模型、g e n e r a l i z e dg o e ln h p p 模型、y a m a d ad e l a y e ds - s h a p e d 模型、i n f l e c t e d s - s h a p e d 模型、m o d i f i e dd u a n e 模型、t w o - e r r o r - t y p e 模型。为本文的研究提供 了研究对象;然后根据算术均值方法、几何均值方法和调和均值方法,构造一 个综合权重均值函数,为本文的研究提供了数学方法。 第三部分将所构造的综合均值函数引入非齐次泊松过程中,结合n h p p 过 程的特点,以离散( 固定权重和变化权重) 和连续两种形式推导出一个比具体 n h p p 类软件可靠性模型更为广义和一般的基于n h p p 过程的软件可靠性模型, 并在这两个一般形式的基础之上,对综合均值函数赋予不同的具体函数值,可 以推导出上述几个经典的n h p p 类软件可靠性模型,即发现了几个n h p p 类软 件可靠性模型的内在联系,即对n h p p 类软件可靠性模型进行了统一 关键词:n h p p ,软件可靠性,软件可靠性增长模型 武汉理工大学硕+ 学位论文 a b s t r a c t t h es t u d yo f t 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 lp l a y sa l li m p o r t a n tr o l ei nt h e s t u d yo fs o f t w a r ee n g i n e e r i n g a tp r e s e n t ,t h e r ea r em a n ys o f t w a r er e l i a b i l i t yg r o w t h m o d e l s , a n dt h eb a s e so f t h e ma r eu s u a l l y 踟er a n d o mo rn o n - r a n d o mp r o c e s s e s s o , i ti sn e c e s s a r yt o s t u d yt 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 sb yt h es o r t so f p r o c e s s e s t h ef i r s tp a r to f t h i st h e s i si n t r o d u c e st h es o f t - w a r er e l i a b i l i t y , t h ei n n e ra n do u t e r h i s t o r ya n da c t u a l i t yo fs o f t w a r er e l i a b i l i t ya n ds 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 s t h e n , e x p a t i a t e do i ls o m ec o n c e p t sa b o u ts o f t w a r er e l i a b i l i t ya n ds o f t w a r er e l i a b i l i t y m o d e l ,i n c l u d i n gt h ef a c t o r sw h i c hi m p a c ts o f t w a r er e l i a b i l i t y , t h ef e a t u r e so f s o f t w a r er e l i a b i l i t y , s o f t w a r er e l i a b i l i t yp a r a m e t e r s , t h em e a n i n go ft h e s t u d yo f 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 s m 地p a r tp r o v i d e st h et h e o r yb a s i sf o rt h es t u d y t h es e c o n dp a r to ft h i st h e s i sf i r s t l yi n t r o d u c e st h em a t hb a s i so ft h es t u d yo f 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 s , s u c ha sr a n d o mv a r i a b l ea n di t sf u n c t i o n i n c l u d i n gb i n o m i a ld i s t r i b u t i o n , p o i s s o nd i s t r i b u t i o n , g e o m e t r i cd i s t r i b u t i o n , i n d e x d i s t r i b u t i o n , w e i b u l id i s t r i b u t i o n , e t c a n ds o m er a n d o mp r o c e s s , s u c ha sp o i s s o n p r o c e s s ,n o n h o m o g e n o u sp o i s s o np r o c e s sa n dm a r k o vp r o c e s s ,a n ds o m em e t h o d s a b o u tp a r m n e t e re s t i m a t i o mt h i sp a r tp r o v i d e st h em a t hb a s i sf o rt h es t u d y o nt h e b a s i so fa b o v e , t h et h e s i si m p o r ts e v e r a lc l a s s i c a ls 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 s , s u c ha sg o c lo k u m o t om o d e l s ,g o m p e r t zg r o w t hc u r v em o d e l s , l o g i s t i eg r o w t h c u r v em o d e l s ,g e n e r a l i z e dg o e ln h p pm o d e l ,y a m a d ad e l a y e ds - s h a p e dm o d e l , a n di n f l e c t e ds - s h a p e dm o d e l ,m o d i f i e dd u a n em o d e l ,t w o - e r r o r - t y p em o d e l t h i s p r o v i d e st h eo b j e c tf o rt h es t u d y t h e n , f o r m u l a t eag e n e r a lw e i g h tf u n c t i o nb a s e do n w e i g h ta r i t h m e t i c , w e i g h tg e o m e t r i ca n dw e i g h t e dh a r m o n i cm c a 1 l w h i c hp r o v i d e s m a t hm e a nf o rt h es t u d y t h et l l i r dp a r ta p p l i e st h eg e n e r a lw e i g h tf u n c t i o ni ns o m em o d e l sm e n t i o n e d a b o v e i nt h ef o r m so fd i s c r e t ea n dc o n t i n u o u s t h et h e s i sp r o p o s e sam o r eg e n e r a l 玎 武汉理i ,人学硕士学位论文 n h p pm o d e l sf o r mt h eg e n e r a lw e i g h tf u n c t i o n u n d e rt h i sg e n e r a lf r a m e w o r k , t h e t h e s i sv e r i f i e st h ee x i s t i n gn h p pm o d e l s ,a n ds h o w st h a tt h e s ea p p r o a c h e sc o v e ra n m b e ro f w e l l - k n o w nm o d e l su n d e rd i f f e r e n tc o n d i t i o n s k e y w o r d s :n o n - h o m o g e n e o u sp o i s s o np r o c e s s , s o f t w a r er e l i a b i l i t y , s o f t w a r e r e l i a b i l i t yg r o w t hm o d e l j i t 武汉珲i :人学硕千= 学位论文 1 1 引言 第1 章绪论 人类在相继经历了蒸汽机时代、电气时代和原子时代后,已将进入“信息时 代”。计算机在已经兴起并高速发展的现代信息化社会中的重要作用己受到了社 会各界的公认,将形成社会经济、生产和生活全面依赖计算机的局面,将引起 社会结构、经济结构和生活方式的巨大变革,大大提高社会生产力,是最具活 力的生产力之一计算机本身就全球来讲,现已是年产值高达5 0 0 0 亿美元的巨 大产业。在这种情况下,对计算机系统的质量和可靠性的要求也越来越高。这 是因为一旦计算机系统发生故障,则其效益就会大幅度的消减,甚至完全丧失, 从而使社会生产和经济活动陷入不可收拾的混乱状态。因此可以说,计算机系 统的高可靠性是实现信息化社会的关键。 计算机系统硬件可靠性,由于可靠性技术己有六十多年的发展历史,冗余 技术、差错控制、故障自动检测、弃错技术、避错技术等可靠性设计技术已经 成熟,以及大规模超大规模集成电路的被采用,可使整机的可靠性大体上每经 过六年就提高十倍。相比之下,软件可靠性的研究只有三十几年的发展历史, 加上软件生产基本上仍处于作坊式的手工制作,其提高软件可靠性的技术与管 理措施还处于十分不完善的状况。 如果把软件同硬件的开发、设计( 包括c a d ) 、制造、运行、维修以及各个 项目的管理活动来对比的话,现有软件生产的状况实在令入不寒而栗。也就是 说,当前危机软件可靠性的问题成堆堆积如山。诸如:固执己见,一味强调软 件的特殊性:逃避卓有成效的集体活动,不愿在同行之间进行互助合作,追求 轻而易举的个人游戏,为所欲为;对世界的重大变故和先进技术听而不闻,视 而不见;拒绝接受用户的合理要求,对正确的意见和批评置之不理:自以为是, 不肯从失败和挫折的教训中吸取经验等等。存在这么多的问题势必使软件故障 层出不穷,可靠性低劣。 在软件质量的范畴内,最重要的固有特性之一就是系统的可靠性,它关心 的问题主要是存在于软件产品中的缺陷,而f 如j o n e s 在1 9 8 6 年指出的那样, 武汉理j :大学硕士学位论文 软件系统中的缺陷代表了程序设计过程中最大的成本因素。软件可靠性关心的 是软件本身的功能如何才能最大限度的满足软件用户的要求j 。 现在有不少人都在热切的追求软件可靠性的目标,不过大多都只停留在理 论的抽象上,却很少有入将它表示成为一个程序本身所具有的属性。理论上的 抽象是可以做得十分完美的,但是在软件产品开发过程中,实际上为获取更高 的软件可靠性目标,其做法通常是以软件产品本身的某些特性( 如程序大小、 程序的运行时间或程序的响应时间、软件产品本身的可维护性,等等) 作为代 价来换取的;或者是在软件产品的开发过程中,采取诸如:增加开发成本、增 加对资源的要求、推迟生产的进度等措施来换取的。b o e h m 等人已将人们希望 予以考虑的某些一般的软件生产的特性进行了分类。人们在软件产品的生产过 程中,一旦想要对这些因素权衡取舍,以取得一个折衷的方案时,软件可靠性 就是一个首先必须加以考虑的因素。在某些情形下,软件可靠性甚至是更重要 的特性之一。比如说,考虑实时系统的工作情况,是使用户的要求得到满足或 提高用户的工作效率,软件可靠性就是一个很重要的因素。 1 2 国内外研究现状 1 2 1 国外研究现状 第一篇关于软件可靠性的论文是1 9 6 7 年h u d o n 提出的生灭过程模型【2 】, 该模型导出了故障间隔的威布尔分布。继h u d o n 之后,1 9 7 2 年j e l i l l s k i 等人进 一步研究了软件的故障率,他们都假定有一个故障的分段常数,故障率同残留 差错数成正比。以上模型中的参数估计大多采用经典统计的方法。但大量的事 实表明,当观察值的分布偏离原来的假设模式时,由经典统计所得的参数估计 值往往很不可靠。因此,1 9 7 7 年j w t u k e y 提出了探索数据分析方法( e d a ) , 该方法区别于经典统计方法的主要之处是:对数据作极少假定或根本不假设模 型,非常不重视问题的数学结构,而强调直接研究数据本身,了解数据的特征、 结构,以此出发,分析如何得到更多的信息,然后采用适合这种数据的估计。 7 0 年代末至8 0 年代初,软件可靠性的研究开始集中于对软件可靠性模型进行 比较和选择。早期工作的不足之处是缺乏较好的故障数据和所需的比较准则。 9 0 年代以来,软件可靠性研究工作进展较快,主要有如下几个方面。 2 武汉理工大学硕十学竹论文 ( 1 ) 软件可靠性设计。在软件设计过程中,为了提高软件可靠性,经常采 用一些专门技术将可靠性“设计”到软件中去。提高软件可靠性的技术主要有2 类:一类是避免故障,即在开发过程中,不让缺陷和差错潜入软件的技术;另 一类是容错技术,其中最常用的设计技术就是恢复块技术和n 版本程序设计技 术。e b e l l e 等人从可靠度优化、费用优化等方面考虑了软件的容错技术。在此 基础上,将上述诸技术结合起来,e b e u e 等人提出了一致性恢复块、接受表决、 n 自检程序设计以及考虑版本问失效相关的容错技术,但目前这些技术仍处于理 论上的研究,其工程上的实践尚有待于进一步探讨【3 j 。 ( 2 ) 软件可靠性测试。通过对软件可靠性的测试发现软件中的故障,从而 不断排除故障以提高软件可靠性。传统的软件测试方法主要有面向程序的静态 测试和动态测试2 大类。1 9 9 1 年,t d o w n s 针对现有大多数软件可靠性模型在 测试阶段将软件处理成黑盒子的作法,提出对测试过程直接建模 4 1 。1 9 9 3 年, w h i t t a k e r 等人采用马尔可夫过程对软件的测试过程和测试用例作了研究。在 1 9 9 7 年的第1 9 届国际软件工程会议上,美国的p f r a n k 在一个发现程序失效并 修改软件而消除失效的模型中,比较了几种测试方法,所考虑的问题是,使用 测试用例来发现失效或通过模拟使用并在使用过程中发现失效是不是最好的。 “最好”是用在所有测试到的失效都消除以后获得的可靠性来度量的【5 】。另外,美 国的a p o d g u r s k i 等人在这次会议上维护之后的软件可靠性重新评价一文中 指出:回归测试中测试用例复用与修改后软件可靠性的评价是不相容的。作者 提出了一种在某些普通环境下评价修改后软件可靠性的比较经济的方法。随着 面向对象编程( o o p ) 技术的兴起,相应地发展了面向对象的软件测试技术,该技 术首先由m j h a r r o l d 等人提出,其基本思想是找出服务内部和服务间的定义一 引用对,围绕定义一引用对的覆盖确定测试用例。针对目前大多数o o p 测试主 要集中在类的测试上,l i u c 等人通过建立一个状态模型来获得软件的动态运行 时行为,提出了一个系统级的o o p 软件测试方法【6 】。 ( 3 ) 软件可靠性数据的收集。软件可靠性数据的收集是估测软件可靠性的 基础,所收集的数据是否有效,是否满足模型的要求,直接影响到软件可靠性 评价的准确性和可靠性。通常收集的软件可靠性数据有2 类:失效计数数据和 失效间隔数据。但由于软件中一个相同的错误可能会导致许多失效,并且若干 个错误之间有时存在相关性,从而会降低所收集到数据的精确度,因此收集软 件可靠性数据时,首先要制订出详细的计划和标准,如人力资源、时间的分配, 3 武汉理l :大学硕十学位论文 所收集数据的形式、记录方式、存储方式等问题。其次,应对数据作具体的分 析处理后方可应用,如数据的提取、合并、相关性分析等,采用的主要技术有 e m 算法、分段拟合技术等。另外,当运用某一具体的软件可靠性模型时,可能 会出现需要的是其中的一类失效数据,而收集到的却是另一类,这时需进行失 效数据间的转换。 目前虽已开发出了一些自动收集软件可靠性数据的支持工具,但局限性很 大,因此,如何准确而高效地自动收集各种软件可靠性数据,还是一项有待于 进一步研究和实践的课题。 ( 4 ) 软件可靠性预测。传统的软件可靠性预测模型大多通过拟合已收集到 的软件失效数据来预测软件在未来时问的失效数。考虑到不同时期软件失效数 据对软件可靠性预测的影响会有所不同,m x i e 提出了一个双指数平滑软件可靠 性预测模型f 4 】,即对近期所观察到的软件失效数据赋予一个较大的权值,与传统 的预测模型相比,该模型简单易行且准确程度高。对于软件可靠性预测中的不 广致问题,k a r u n a n i t h i 等人在1 0 9 1 和1 9 9 2 年这两届的i e e e 关于软件可靠 性工程的国际会议上,提出了利用神经网络来解决该问题。在训练人工神经网 络阶段,使用执行时间作为输入,而将观察到的累积错误数作为目标输出,在 训练结束时,输入一个附加的、未来的、执行时间的区间段,并考察人工神经 网络对累积错误数的估计精度l | ”。h a n s s o n 等人利用熵值论针对软件开发阶段 由于开发方法的差异而引起的软件可靠性预测问题作了定量分析。 ( 5 ) 硬一软件混合系统可靠性问题。计算机系统是由硬件、软件组成的一 个有机整体,硬件与软件之间相互依赖、相互作用,因此为了评价计算机系统 的可靠性,必须从硬软件综合系统的角度来认识问题。国外从7 0 年代中期开 始研究综合系统的可靠性问题。1 9 8 3 年a r m s 会议上开始将“综合硬软件可 靠性”作为会议专题之一同年,还专门召开了“全系统可靠性研讨会”,国外这 方面的研究成果已经在航空等领域得到应用。从8 0 年代中期开始,我国科学 工作者也投入了这项研究及应用。几种常见的硬一软件混合系统可靠性模型有: c o s t c s - l a n d r a u i t - l a p i e 马氏模型,t h o m p s o n 模型,s u m i t a - m a s u d a 模型,s h o o m a n 模型,i b m 模型,l y e r - t a n g 模型等。上述模型大多假定系统包含一个硬件子系 统和一个软件子系统,所以,当任意子系统失效,都会导致系统失效。w e l k e s r 讨论了具有冗余硬件元件和多个软件版本的混合系统可靠性,建立了一个硬软 件统一模型【引,该模型将软件中的g o n h p p 模型与硬件马氏过程模型综合起来 4 武汉理i = 大学硕士学位论文 考虑。通过确定软件失效的转移概率,将软件失效在硬件可靠性模型中体现出 来。 1 2 2 国内研究现状 国内软件可靠性研究始于8 0 年代初,黄锡滋等在软件可靠性建模、软件 可靠性分配及软件可靠性管理等方面作了有益的探索:陈望梅等人开展软件避 错技术研究;姚一平等在软件可靠性建模、软件可靠性评价工具和混合硬件一 软件系统可靠性等方面作了努力;刘纯生在软件容错方面作了重要工作;徐仁 佐、李德银、张宇虹等在软件可靠性理论方面作了研究。在工程实践方面,姚 一平等曾利用自己的软件可靠性评价工具对a c t 验证机软件可靠性给予评价。 蔡开元也将自己的模糊软件可靠性模型应用于a c t 验证机。徐仁佐等人利用 c l i p s 开发了软件可靠性专家系统,从而为软件可靠性模型的选择和比较提供 了有力的支持唧 1 2 3 软件可靠性领域面临的主要问题 软件可靠性的研究虽然己取得了很大的成就,但存在的问题仍很多,主要 有: ( 1 ) 软件可靠性测试。软件可靠性测试是适用于软件可靠性工程中的一种 测试方法,有效地发现程序中影响软件可靠性的缺陷,有别于传统的测试方法 软件可靠性测试在软件可靠性工程中十分重要,甚至必不可少,是正确估计软 件产品的可靠性的基础。但目前在这方面的研究工作报薄弱,急需开展。 ( 2 ) 软件可靠性模型问题。虽然目前已建立了数百种软件可靠性模型,但 均具有一定的局限性,因此,从软件可靠性模型的假设是否合理、实际应用是 否简单方便、适用范围是否广泛等问题出发,如何进一步建立合理、实用的软 件可靠性模塑还有待于进一步研究。 ( 3 ) 软件测试用例的自动生成问题。现有的软件测试用例生成方法缺乏形 式化方式,因此各种软件测试工具中测试用例的自动生成工具还有待于进一步 开发和完善。 ( 4 ) 实时软件的可靠性评价。目前在软件可靠性评价技术的研究中,大多 针对通用软件而忽视了实时软件。虽然两者在评价方法上有一部分是相同的, 武汉理工大学硕十学位论文 但实时软件的l 】丁靠性评价还有自身的特殊性。如对时间资铆的管理与通用软件 存在差异。 ( 5 ) 高可靠性软件的可靠性评价。对某些可靠性要求极高的软件,如核电 站、航天飞机软件,单纯依赖软件可靠性模塑进行软件可靠性评价似乎不现实, 因为必需的测试时间远远超出了有实际意义的界限。怎样对这些软件进行可靠 性评价,目前还缺乏有效方法。 ( 6 ) 硬一软件混合系统可靠性问题计算机系统中硬件、软件故障产生的方 式截然不同,故硬件、软件可靠性不完全一致,同时考虑到人的可靠性,目前 虽然已建立了一些硬软件可靠性模型,但这些模型都是针对一些具体的问题提 出的,其侧重点各不相同,因而模型的问题还很多 1 3 论文的组织内容 本文首先介绍了软件可靠性及软件可靠性模型的发展历史与现状,接下来 介绍了软件可靠性与可靠性模型的相关概念,包括可靠性影响因素分析、软件 可靠性特点、仿硬件的可靠性指标以及软件可靠性模型研究的意义,在软件可 靠性分析的数学基础之上,简要介绍了几种经典的n h p p 类软件可靠性模型, 然后构造一个综合均值函数,结合非齐次泊松过程的定义与特点,以离散和连 续两种形式推导出基于n h p p 过程的软件可靠性模型的一般形式,并在这两个 一般形式的基础之上,对综合均值函数赋予不同的具体函数值,推导出上述几 个经典的n h p p 类软件可靠性模型,发现了几个n h p p 类软件可靠性模型的内 在联系,即对n h p p 类软件可靠性模型进行了统一。 6 武汉理i :人学硕十学位论文 第2 章软件可靠性概述 2 1 软件可靠性及影响因素分析 2 1 1 软件可靠性 ( i ) 软件可靠性定义 1 9 8 3 年,美国i e e e 计算机学会软件工程技术委员会对软件可靠性的定义如 下1 1 0 】: 在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概 率是系统输入和系统使用的函数,也是软件中存在的错误的函数;系统输入将 确定是否会遇到己存在的错误( 如果错误存在的话) 。 在规定的时间周期内,在所述条件下,程序执行所要求的功能的能力 软件可靠性定义中提到的“规定的条件”和“规定的时间”,在工程中有重要的 意义,需要进一步解释。软件测试和运行中有三种时间度量。第一种是日历时 间,日历时问是指日常生活中使用的日、周、月、年等计时单元;第二种是时 钟时间,时钟时间是指从程序运行开始,到运行结束所用的时、分、秒,其中 包括等待时间和其他辅助时间,但是不包括计算机停机占用的时间;第三种是 执行时间,执行时间是指计算机在执行程序时,实际占用的中心处理器( c p u ) 的时间,所以又称为c p u 时间。 定义中所指的“条件”,是指环境条件。环境条件包括了与程序存储、运行 有关的计算机及其操作系统。例如计算机的型号、字长、内存容量、外存介质 的数量及容量、输入和输出设备的数量、通信网络、操作系统和数据管理系统、 编译程序及其他支持软件。这些因素显然对程序的运行有重要的影响,但是这 些因素在使用中一般没有变化。定义中的环境条件还包括软件的输入分布。程 序在启动运行时,需要给变量赋值,即给程序提供输入数据。输入数据可能是 由外部设备输入,也可能早已存储于计算机内存等待读取。 ( 2 ) 软件可靠性定义的数学描述 软件可靠性的数学描述为:以t 表示给定的时间,设系统是时间0 开始运行, 7 武汉理【大学硕士学位论文 直到,时发生故障,则: r ( f ) = e ( r f ) ( 2 1 ) 就表示软件系统在特定的环境下正常工作到时刻f 时的概率,其中,r 是从时刻 0 开始,软件系统运行到发生故障的时间。按照概率论的观点,“软件系统正常 工作”是一事件,则它的对立时间“软件系统运行出错”定义了一个故障率函数 ,( f ) ,因而显然有: r ( f ) + f ( f ) = l( 2 2 ) 一般地,我们用a ( f ) 来表示失效率,也有人称它为“风险函数”,五( f ) 就是 程序正确运行到时刻t 时,单位时间内程序发生失效的概率。于是有: 因此,又可以写: a ( f ) f = e p t ) ( 2 - 3 ) r ( t + a t ) = f ( f + a t ) = ( r f ) 且区间【f ,t + a t p q 程序不发生故障) ( 2 - 4 ) = 胄( 0 【1 一a ( f ) f 】一 对式2 _ 4 对t 求微分,得到: d r = - 3 ( t ) r ( t ) d t 从而可以导出下面的微分方程: 警一砸 ( 2 6 ) 解式2 - 6 ,得到: 邱) = e x 可堋 g ( 2 - 5 ) ( 2 - 7 ) 武汉理工大学硕十学位论文 上式描述了失效函数a ( ,) 与可靠性函数月( f ) 的关系。 2 1 2 软件可靠性影响因素分析 影响软件可靠性的因素是多方面的,从一般意义上而言,任何和软件开发 相关的活动都有可能影响软件的可靠性。它包括技术层面的、经济层面的乃至 社会和文化科学层面的因素的影响。在这罩主要讨论在软件生存期内影响软件 可靠性的因素,也称软件可靠性因素。从软件开发角度而言,影响软件可靠性 的主要因素包括: ( 1 ) 软件规模。从直观上而言,软件的规模越大,影响其可靠性的因素也 就越多。简单软件的可靠性问题很容易通过较为全面的测试而解决,所以软件 可靠性主要针对中型以上的软件而言。对于这点在h a l s t e a d 的“软件科学”的思想 中可以得到体现【i l 】。 ( 2 ) 运行剖面。软件对于不同的运行剖面有着不同的可靠性,所以在软件 可靠性模型和软件可靠性测试中尽量使得操作剖面和运行剖面一致。对于一个 软件而言,其软件故障是因为某个输入激活了软件某个内部的缺陷所致。对输 入空间故障空间的划分可以参考n e l s o n 的输入域模型。 ( 3 ) 软件内部结构。总的来说,软件的内部结构越复杂,所包含的变化也 就越多,它可能的内部缺陷数也就越多,软件的可靠性也就越低。对于这方面 内容可以从h a l s t e a d 的软件科学度量和m c c a b e 的循环c y d o n a t i c 复杂系数中得 到相关论述【1 1 】。 ( 4 ) 软件可靠性测试与投入。不同的软件测试方法对软件可靠性的影响是 不同的,以前我们主要采用调试的方法进行软件测试,但研究表明,采用运行 测试的方法比调试的测试方法更能够提高软件可靠性。同时软件可靠性的资源 投入也是很重要的。对于同样的测试方法,资源投入越大,其测试越完备,软 件达到的可靠性程度也越高。 ( 5 ) 软件可靠性管理。随着软件开发的工程化,软件开发本身也越来越变 成了一种企业行为,所以良好的管理对于合理分配资源、遵守开发规范有着重 要的作用,从而提高软件的可靠性水平。 ( 6 ) 软件开发人员的能力和经验。我们当然希望软件开发人员的能力很强, 经验丰富,但对这方面的需求除了要加强对歼发人员的学习和培训之外,也必 9 武汉理l :人学硕十学位论文 须在软件丌发过程中合理地进行人力资源的分配,在现有的情况下,最大限度 地利用人力资源的结构,达到最佳效果。 ( 7 ) 软件开发方法。采用不同的软件开发方法对系统可靠性的影响是显而 易见的。就目前的软件工程现状而言,采用结构化的、面向对象等软件设计方 法可以明显地减少软件缺陷数。 ( 8 ) 软件开发环境。选择适当的程序开发语言和软件测试工具等软件开发 环境,可以大幅提高软件可靠性。 2 2 软件可靠性度量指标 对软件产品具有可靠性程度的定量评价称为软件可靠性度量。软件可靠性 度量参数( 常简称软件可靠性参数) 是指表示软件可靠性的一个或几个变量。 软件可靠性指标是指从用户的角度对产品的可靠性参数应达到的目标值所作的 规定。 软件可靠性很难用一个度量参数表示。对于不同的软件、不同的应用,可 能使用不同的参数。和硬件可靠性度量一样,软件可靠性度量也可应用概率论 和数理统计的方法、技术,因为软件的失效呈现出随机性。软件可靠性度量可 以分为两类:管理度量和技术度量。管理度量主要面向管理人员,为软件可靠 性管理服务。管理度量仅仅用于反映是否进行某项软件可靠性活动,因此通常 只取“是”或“否”两个值比如:是否进行软件故障树分析,是否收集有关 的可靠性数据等。 一般来说,软件可靠性度量是通过一些仿硬件可靠性度量指标来描述和完 成的。 ( 1 ) 剩余故障数:经测试和故障排除后,尚残留在软件系统中的故障数。 通常它是根据测试的故障数据和可靠性模型来进行估计的,这是一种较为直观 的度量方式。 ( 2 ) 可靠度r ( f ) :表示在t - - o 时,软件能正常运行条件下,在时间【0 ,q 内, 软件能够正常运行的概率。该参数是关于软件失效行为的概率描述,是软件可 0 武汉理 大学硕士学伊论文 靠性的基本定义。 ( 3 ) 失效概率f ( t ) :表示软件失效时间小于或等于t 的概率。由其定义可 知,f ( t ) 和r ( t ) 满足式2 2 中的关系。 ( 4 ) 失效强度( f ) :八f ) 为失效概率f ( t ) 的密度函数,如果f ( o 是可微分 的,则f ( t ) 为f ( f ) 关于时间的一阶导数; 厂( f ) = d f ( t ) d t = f ( f ) ( 2 - 8 ) ( 5 ) 失效率2 ( 0 :由式2 - 3 至式2 7 的推导可知失效率五( f ) 满足如下关系: 狰f ( t ) r = 等警 ( 2 9 ) ( 6 ) 平均无失效时间m a w ( m e a nt u n et of a i l u r e ) :指当前时间到下一次 失效时间的均值。按照可靠度的定义,有: m 7 f2ir ( t ) d t ( 2 - l o ) ( 7 ) 平均失效间隔时间m t b f ( m 啪t i m eb e f o r ef a i l u r e ) :揞2 次相邻失 效时间问隔的均值。当软件从时刻t l 工作到时刻t 2 ,若发生了n 次失效,则: :jr2-r,(2-mtbf f 21 i ) = 11 显然,f ( f ) 、,( f ) 、r ( f ) 、五( f ) 的关系如表2 - - 1 所示。 表2 - 1 软件可靠性指标关系表 ,( f ),( f )月( f )a ( f ) ,( f ) = ,( f )一r ( f ) 五( f ) e 一胁 ,( f ) = f ,( 砷出 1 一月( f ) l e 一胁) 出 r ( f ) = f 厂( 功出 i 一,( f ) p m ) 4 a f t ) = f ( t ) f f ( x ) d x f ( t ) 0 一,( f ) 】 一r ( t ) r ( t ) 武汉理工大学硕十学位论文 2 3 软件可靠性模型研究的意义 软件可靠性模型是随即过程的一种表示,通过这一表示,可以将软件可靠 性或与软件可靠性直接有关的量,如:平均无失效时间或失效率等,表示为时 间以及软件产品的特征,或者开发过程的函数。软件可靠性模型通常描述了软 件可靠性对上述各变量的一种依赖关系。其描述的形式则根据通常由己知的失 效数据出发所作的统计推断过程而定。对于软件的模块、子系统、系统都可以 应用软件可靠性模型。 为了给软件可靠性的估测建立数学模型,应首先考虑影响到估测的基本要 素。它们是:错误引入软件的方式、排错的实际过程以及程序运行的环境。错 误的引入主要依赖于已开发出的程序代码的特性,以及开发过程的特性。最明 显的代码特性就是程序代码的长度。开发过程特性包括:软件工程技术、使用 的工具、以及开发者个人的业务经历有一点必须注意的是;程序既可以开发 出来用以增加软件的功能,也可以开发出来用于排错。排错依赖于用于排错的 时间、排错时的运行环境、用于排错的输入数据、以及修复行为的质量。环境 则直接依赖于操作剖面。操作剖面主要指各种类型的运行出现的概率,而它们 则由各自的输入状态描述其各种运行的性质。因为上述各基本要素大多具有随 机性且均与时间有关,所以软件可靠性估测模型大多都处理成随即过程的形式。 模型与模型之间,大多根据失效时间或者已发生的失效次数的概率分布加以区 分,也可以根据与时间有关的随机过程的不同处理方式来加以区分。 一个好的软件可靠性模型还应描述出上述诸基本要素间的总的失效过程的 依赖关系。一般来说,假定以时间为基础( 这并不等于说不以时间为基础的模 型就不能用) 。对于各种不同的数学表达式,我们可以通过建立模型参数的有效 数据来加以判定。这样就有两种方式可以采用: ( 1 ) 统计模型参数:将统计推断过程应用于程序运行过程中产生的失效数 据。 ( 2 ) 程序将来的故障行为:由软件产品的特性和它的开发过程来进行判断 ( 这可以在程序的任何执行之前进行) , 在对数学表达式进行判定时,总存在某种不确定性。可以考虑采用置信区 间的概念来予以解决。置信区间就是指对于给定的一个确定的置信度,待估计 的参数值确切地可以落在某个范围之内。 1 2 武汉理i :人学硕十学位论文 一旦确立了数学表达式,对许多不同的失效特性都能加以判定。对于各种 不同的模型,它们分别采用了许多不同的表达式: ( 1 ) 在任一时刻所发生的失效的平均数 ( 2 ) 在一时间区间内发生的失效的平均数 ( 3 ) 在任一时刻的失效密度 ( 4 ) 失效间隔的概率分部 一个好的软件可靠性模型应有一系列重要的性质: ( 1 ) 对于将来的失效行为能给出好的预测 ( 2 ) 对有用的量能进行计算 ( 3 ) 简单明了 ( 4 ) 具有广泛的应用 ( 5 ) 它在合理的、与实际情况完全吻合的或十分接近的假设基础上做出 在对将来的失效行为进行预测时,应保证模型参数的值不发生变化如果 在进行预测时发现引入了新的错误,或修复行为使新的失效不发生,就应停止 预测,并等足够多故障出现后,再重新进行模型参数的估计。否则,这样的变 化会因为增加问题的复杂程度而使模型的实用性降低。 一般来说,软件可靠性模型是以在固定不变的运行环境中运行的不变的程 序作为估测实体的。这也就是说,软件的代码和操作剖面都不发生变化。但它 们往往总要发生变化的,于是在这种情况下,就应采取分段处理的方式来进行 工作。因此,模型主要地就要集中注意力排错但是,也有的模型具有能处理 缓慢地引进错误的情况的能力。 对于一个已发行并正在运行的程序,应暂缓安装新的功能和对下一次发行 的版本的修复。如果能保持一个不变的操作剖面,则程序的失效密度将显示为 一个常数。 一般来说,一个好的软件可靠性模型增加了关于开发项目的通讯,并对了 解软件开发过程提供了一个共同的工作基础。它也增加了管理的透明度和其它 令人感兴趣的东西。即使在特殊的情况下,通过模型做出的预测并不是很精确 的话,上面的这些优点也仍然是明显而有价值的。 实际建立一个有用的软件可靠性模型,一一般包括:坚实的理论研究工作。 有关工具的改造、实际工作经验的积累。通常这些工作要求许多人一年的工作 量。相反,要应用一个好的软件可靠性模型,则要求极少的项目资源就可以在 实际工作中产生好的效益。 1 3 武汉理工大学硕士学f 论文 第3 章软件可靠性分析的数学基础 虽然软件可靠性可以用许多变量来定义,但通常都将它作为时间的函数。 关于计算机,一般有三种类型的时间概念是经常使用的:一是关于某个软件的 执行时间概念,它是指实际花在执行该软件的程序的指令上所用的处理时间, 也即指c p u 时间;二是日历时间概念,即平常人们在f 1 常生活中所习惯使用的 时间;三是计算机使用的时钟时间,即指用于软件的时间,它包括在正常运转 的计算机上执行软件从开始启动到终止是所花去的时间,以及等待时间和其他 软件执行的时间,但除开计算机停机时间。如果计算机由该软件使用的利用率 ( 处理机正在执行该软件的时间段) 是一个常数,则时钟时间将与执行时间成 正比。 m u s a 认为在上述三种时间概念中,执行时间是最重要的一种,因为它才是 软件发生故障的最基本的测量单位。因此,本文在涉及时间t 的软件可靠性研究 中,均采用m u s a 的执行时间概念为软件运行的基本单位。 在软件可靠性定义的数学描述和软件可靠性度量指标的分析中,不难看出, 在软件可靠性分析和模型的应用中,常用到随机分布、随机过程、参数估计三 个方面的数学知识,因此本章将就这三个方面介绍一些概率论相关的数学基础。 3 1 常用随机变量及其分布 3 1 1 常用离散型分布 若r 仅在一非连续空间取值,即r 可取值为f l t 2 一且o t l o , q o , p + q = 1 ,则称x 服从几何分布:记作x g ( p ) 。 ( 3 3 ) ( 3 棚 ( 3 5 ) ( 3 6 ) ( 3 - 7 ) 武汉理i 人学硕士学位论文 3 i 2 常用连续型分布 ( 1 ) 指数分布 指数分布函数为可靠性研究中最常见的分布,它的概率密度为: f ( t ) = g e - “, t 0( 3 - 8 ) 它相应的分布函数为: ,( f ) = i e - “, t 0( 3 - 9 ) 可靠性函数为; r ( t ) = 1 一f ( f ) = e - 1 at 0( 3 l o ) 指数分布的最大特点是它的故障函数为一常数,即: ,( f ) = 器= 等i _ 幻。 ( 3 - l ) ( 2 ) w e i b u l l 分布 w e i b u l l 分布是在1 9 3 9 年由瑞典科学家w a l o d d iw e i b u l l 首先提出来的,目 前已成为可靠性研究中常见的寿命分布,它有效地描述了许多产品的可靠性。 w e i b u l l 分布函数主要由它的故障率函数特征化表示, “f ) = 五厦m ) 纠( 3 1 2 ) 其密度函数为 ,( f ) = a p ( , t t ) p - 1 e - 4 ,( 3 1 3 ) 它的可靠性函数表达式为: r ( ,) = p 1 。7( 3 1 4 ) w e i b u l l 分布具有单调的故障率,若 1 ,则故障率递增:若0 ( 1 ,则故障 率递减。 ( 3 ) 极值分布 极值分布的可靠性函数为: r ( f ) = e x p 一e x p ( 三) 】 ( 3 一1 5 ) 相应的密

温馨提示

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

评论

0/150

提交评论