【软件可靠性】论文中一些开源软件特点总结 和 对应的模型分析

开源软件的定义

开放源码软件(open-source)是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制: 蓄意的保护它的开放源码状态,著者身份的公告,或者开发的控制。”开放源码”正在被公众利益软件组织注册为认证标记,这也是创立正式的开放源码定义的一种手段。

开放源码软件主要被散布在全世界的编程者队伍所开发,但是同时一些大学,政府机构承包商,协会和商业公司也开发它。开放源码软件在历史上曾经与UNIX,Internet联系的非常紧密。在这些系统中许多不同的硬件需要支持,而且源码分发是实现交叉平台可移植性的唯一实际可行的办法。在DOS,Windows,Macintosh平台上仅仅有很少的用户有可用的编译器,开放源码软件更加不普遍。对开放源码开发模式的更详细的讨论请看Eric Raymond写的”The Cathedral and the Bazaar”。

简单地说,开源软件:

开源软件(OSS),也叫开放源代码软件(Open Source Software), 是一种源代码可以任意获取的计算机软件,这种软件的版权拥有者在软件协议的规定下保留一部分权利并允许使用者自由学习、修改、拷贝、散布(distribution),同时可以改善和提高开源软件的质量。

研究开源软件可靠性的应用场景及展望

应用场景

和传统闭源软件一样,软件可靠性是开源软件从发布、测试到运行的一项重要指标;这不但关系到软件产品质量,也牵涉到开源软件企业的行业声誉

常用指标

  • 不发生失效的概率:

    R( x / t)= exp {- [ m( t + x)- m( t)] }
    R( x / t)表示在给定的区间(t,t+x)内,软件不会发生失效的概率。

  • MTTF (Mean Time To Failure,平均无故障时间),指系统无故障运行的平均时间,取所有从系统开始正常运行到发生故障之间的时间段的平均值。 MTTF =∑T1/ N

  • MTTR (Mean Time To Repair,平均修复时间),指系统从发生故障到维修结束之间的时间段的平均值。MTTR =∑(T2+T3)/ N

  • MTBF (Mean Time Between Failure,平均失效间隔),指系统两次故障发生时间之间的时间段的平均值。 MTBF =∑(T2+T3+T1)/ N。很明显:MTBF= MTTF+ MTTR

解决问题

  • 预测和估计开源软件的版本更新时间。(不是很有用)

    为了让开源软件研究者能够设计开发出可靠性更高的开源软件产品,预测和估计开源软件的版本更新时间就显得尤为重要了。如果版本更新时间过早,则会影响开源软件的可靠性,因为可能会有大量的错误存留于软件中,测试后进行修复,成本相当高。而版本更新时间过晚,则会影响企业产品上市时间,可能错过很好的机会,失去竞争力。
    (此处需要了解开源软件的经营模式)

  • sdfa

展望

随着网络技术的发展,开源软件以其特有的方式显现了其蓬勃发展的生机与活力,开源软件的理念也已逐渐被多家企业和公司所认同与推动。可以肯定的是,不远的将来,开源软件将成为软件发展的主要方向和主体形式。而开源软件的可靠性更是软件发展的重中之重,没有可靠性做保证,开源软件必将失去其发展优势。本文介绍的开源软件的可靠性模型和评测标准,以及版本更新时间均为开源软件发展的必要条件。此外,还应当看到,开源软件的可靠性研究远没有达到成熟,仍属一个新兴领域,亟待开发更多、更好的可靠型模型和可靠性理论对其加以丰富、充实和发展。

常用模型及模型的假设条件

主要分三部分:

  • 基于修改NHPP 开源软件可靠性模型

  • 基于随机微分方程的开源软件可靠性模型

  • 其它开源软件可靠性模型

基于修改NHPP 开源软件可靠性模型

基于修改的NHPP 开源软件可靠性模型主要是从经典的闭源软件NHPP 的可靠性模型发展而来。

NHPP模型定义如下:

【软件可靠性】论文中一些开源软件特点总结 和 对应的模型分析 ,在对应时间段(0,t1),
(t1,t2),…,(ti-1,ti),…,(tm-1,tm)分别发生的失效数f1,f2,…,fm相互独立;
(3)每一缺陷有均等机会被检测发现,且等级相同;
(4)到任一时刻t发生的软件失效累计次数N(t)服从均值为m(t)的Poisson分布,均值m(t)使得微小时间段(t,+t△)t内软件失效发生次数与t时刻软件残留缺陷数成正比;
(5)m(t)是一有界、非减函数,且m(t)=0,t0=0;m(t)=a,t->正无穷,这里
a为测试过程终了时软件失效发生的总数。
模型表示如下:
S型曲线

引入S型曲线的原因,是软件的失效数据呈现一个S型曲线,也可以理解成考虑到测试团队成员的学习过程,有一个失效发现率由低到高再降低的过程。
详细的数学描述如下:

驼峰型

可以把开源软件的故障检测看做是服从非齐次泊松分布的随机过程,Li 等人在考虑了开源软件的特点后提出,和闭源软件不同的是,开源软件从发布起就吸引了大量的使用者,其数量远远超过了闭源软件的测试者;但是随着时间的发展,使用者的数量达到最大值后开始下降,表现为驼峰形状(hump-shaped)变化。使用者对开源软件排错过程的贡献不容忽视,因此假定失效检出率符合驼峰形状分布是适合的。

不过该模型并未考虑开源软件故障检测是一个无限的过程,随着时间的发展,可能检测出无穷个错误,即假设a(t)=∞,其含义是:故障检测总量为无穷。

来源:renxingzhadan

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年11月11日
下一篇 2016年11月11日

相关推荐