【軟件可靠性】論文中一些開源軟件特點總結 和 對應的模型分析

開源軟件的定義

開放源碼軟件(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模型定義如下:

原始模型

其中,Pr{N(t)= x }表示發生N(t)= x 事件的概率。N(t)表示故障計數。m(t)表示平均值函數,即在時間t內,期待的故障檢測數量。a(t)表示故障檢測總量函數。b(t)表示每單位時間內故障檢測率函數。

(一)Goal一OkumotoNHPP模型

模型假設
(1)軟件(測試)運行方式與預計的(實際)運行剖面相同;
(2)對於任一組有限時間點 ,在對應時間段(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爲測試過程終了時軟件失效發生的總數。
模型表示如下:
GO模型

(二)基於修改的NHPP 的S 形狀的可靠性增長模型

Yamada 等人在研究了基於NHPP 的可靠性增長模型後,對於平均值函數呈現的S 形狀,提出了基於修改的NHPP 的S 形狀的可靠性增長模型。可表示爲:
S型曲線

引入S型曲線的原因,是軟件的失效數據呈現一個S型曲線,也可以理解成考慮到測試團隊成員的學習過程,有一個失效發現率由低到高再降低的過程。
詳細的數學描述如下:
SS

(三)基於修改的NHPP 的失效發現率爲駝峯型(hump-shaped)的可靠性增長模型

駝峯型

可以把開源軟件的故障檢測看做是服從非齊次泊松分佈的隨機過程,Li 等人在考慮了開源軟件的特點後提出,和閉源軟件不同的是,開源軟件從發佈起就吸引了大量的使用者,其數量遠遠超過了閉源軟件的測試者;但是隨着時間的發展,使用者的數量達到最大值後開始下降,表現爲駝峯形狀(hump-shaped)變化。使用者對開源軟件排錯過程的貢獻不容忽視,因此假定失效檢出率符合駝峯形狀分佈是適合的。

不過該模型並未考慮開源軟件故障檢測是一個無限的過程,隨着時間的發展,可能檢測出無窮個錯誤,即假設a(t)=∞,其含義是:故障檢測總量爲無窮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章