开源软件的定义
开放源码软件主要被散布在全世界的编程者队伍所开发,但是同时一些大学,政府机构承包商,协会和商业公司也开发它。开放源码软件在历史上曾经与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模型定义如下:
引入S型曲线的原因,是软件的失效数据呈现一个S型曲线,也可以理解成考虑到测试团队成员的学习过程,有一个失效发现率由低到高再降低的过程。
详细的数学描述如下:
可以把开源软件的故障检测看做是服从非齐次泊松分布的随机过程,Li 等人在考虑了开源软件的特点后提出,和闭源软件不同的是,开源软件从发布起就吸引了大量的使用者,其数量远远超过了闭源软件的测试者;但是随着时间的发展,使用者的数量达到最大值后开始下降,表现为驼峰形状(hump-shaped)变化。使用者对开源软件排错过程的贡献不容忽视,因此假定失效检出率符合驼峰形状分布是适合的。
不过该模型并未考虑开源软件故障检测是一个无限的过程,随着时间的发展,可能检测出无穷个错误,即假设a(t)=∞,其含义是:故障检测总量为无穷。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!