作者:admin 時間:2022-08-03
編者薦語:
軟件可靠性越來越受到企業和工程領域朋友們的關注;讓我們通過王老師的文章,一起系統地對軟件可靠性作一個了解。
本文為《軟件可靠性簡介》培訓課程中摘錄的公開內容。
本文目錄:
一、軟件可靠性度量
二、可靠性分配簡介
三、軟件配置項簡介
四、軟件可靠性分配方法
五、操作剖面分配法案例
一、軟件可靠性度量
我們在講可靠性的度量時,常常用可靠度、失效率、平均失效前時間、平均失效間隔時間等指標去衡量。軟件作為一種產品,也可以用這些指標。
可靠度:指軟件在規定條件下和規定時間內,不引起系統失效的概率。設規定的時間為t0,軟件發生失效的時間為t,則:
R(t0)=P(t>t0)
失效率:軟件在規定條件下和規定時間內,喪失規定功能的概率。設規定的時間為t0,軟件發生失效的時間為t,則:
F(t0)=P(t<t0)
失效率與可靠度的關系:F(t0)=1-R(t0)
平均失效前時間(MTTF):指當前時間到下一次失效時間的均值。
比如我們舉個例子,某軟件分別在如下時刻失效:477h,389h,532h,則MTTF的觀測值為:(477+389+532)/3=466h
平均失效間隔時間(MTBF):指兩次相鄰失效間隔時間的均值。當軟件從時刻T1工作到時刻T2,若發生了N次失效,則:
MTBF=(T2-T1)/(N+1)
還有一些其他的表征指標,這里不再介紹。
二、可靠性分配簡介
《可靠性工程師手冊》一書中,對可靠性分配是這樣介紹的:將產品可靠性的定量要求合理分配到分系統、設備、組件、元器件等單元上的分解過程。
可靠性分配的目的為:
1.明確各單元的可靠性定量要求
2.發現設計中的薄弱環節
3.對不同的設計方案進行比較,為設計決策提供依據
4.作為可靠性試驗與評估的依據之一
常用的分配方法有評分分配法、比例組合分配法、考慮重要度和復雜度分配法(AGREE法),直接分配法等。
可靠性分配的一般程序:
第一步:明確所分配的產品可靠性參數和指標,如任務可靠度、故障率等。
第二步:選擇可靠性分配方法。
第三步:進行可靠性分配,發現薄弱環節。
第四步:確定分配結果是否滿足產品可靠性要求,如果滿足,完成分配;否則,返回第三步。
三、軟件配置項簡介
一些概念我們需要先了解下,在后面的環節會用到:
軟件:一系列按照特定順序組織的計算機數據和指令的集合。軟件并不只是包括可以在計算機(這里的計算機是指廣義的計算機)上運行的電腦程序,與這些電腦程序相關的文檔一般也被認為是軟件的一部分。
CSCI:CSCI是計算機軟件配置項(Computer Software Configuration Item)簡稱,在軟件設計文檔中經常用到。
什么是配置項?
在國標《GB/T 11457-2006 信息技術與軟件工程術語》里,是這么說的:
配置項(configuration item,縮寫為CI),是為配置管理設計的硬件、軟件或兩者的集合。它在配置管理中作為單個實體來對待。
配置項包含了硬件配置項和軟件配置項。
計算機軟件配置項(computer software configuration item,縮寫為CSCI),是為配置管理設計的軟件的集合,在配置管理的過程中,作為單個實體對待。
這么看上述定義,大家可能還是很難理解。
我用通俗的語言來解釋下:軟件生存周期各個階段活動的產物經審批后即可稱之為軟件配置項。
軟件配置項包括:
①與合同、過程、計劃和產品有關的文檔和資料;
②源代碼、目標代碼和可執行代碼;
③相關產品,包括軟件工具、庫內的可重用軟件、外購軟件及顧客提供的軟件等。
即包括了受控的所有產品特性,其內容及相關文檔,軟件版本,變更文檔,軟件運行的支持數據,以及其他保證軟件一致性的組成要素。
在軟件建立時,變更是不可避免的,而變更又加劇了項目中軟件工程師間的混亂。之所以產生混亂,是因為在進行變更前沒有仔細分析,或沒進行變更控制。相對于硬件類配置,軟件產品的配置”包括更多的內容并具有易變性。
軟件并不是說我們通常意義上理解的簡單的一個程序,而是包括規約和相關文檔。
我們常常說的軟件測試,不僅指的是被測的程序,還包括涉及的軟件需求,設計等文檔(被測對象可能還要包括相關的數據,特別是現在的人工智能軟件,這一點標準里沒有提到),他們共同組成了一個軟件實體。
四、軟件可靠性分配方法
軟件可靠性的分配方法有很多種,有很多各種各樣的研究。
作為通識類教育,我們這次介紹常用的幾種:順序執行分配法;并行執行分配法;復雜度因子分配法;重要度分配法;操作剖面分配法。
因為擔心大家不好理解,下面的講解,用功能組這個詞去取代了CSCI,實際嚴謹點,這些應該是要叫做CSCI的。
1)順序執行分配法
適用前提:
軟件的各個功能組(CSCI)是順序執行,各個功能組(CSCI)中的功能是系統功能的子功能,所有功能組(CSCI)執行時間之和等于系統任務執行時間。
所有的功能組(CSCI)都成功執行才能保證軟件不失效。
使用失效率指標。
分配步驟:
1.使用失效率定義可靠性指標
2.確定整個軟件系統的可靠性需求(λs)
3.確定整個軟件系統的功能組數量(N)
4.對于每個功能組,分配可靠性需求(λi):
λi=λs
2)并行執行分配法
適用前提:
軟件的各個功能組是并行執行,但這些功能組的功能代表了整個軟件的一系列的功能,任何一個功能組的執行不依賴于其他功能組的執行結果。
所有功能組單獨執行時間均等于系統任務執行時間。
任何一個功能組的功能失效意味著軟件系統的功能失效。
每個功能組同等對待。
使用失效率指標。
分配步驟:
1.使用失效率定義可靠性指標
2.確定整個軟件系統的可靠性需求(λs)
3.確定整個軟件系統的功能組數量(N)
4.對于每個功能組,分配可靠性需求(λi):
λi=λs/N
3)復雜度因子分配法
適用前提:
基于每個功能組的相應復雜度分配失效率
計算功能組復雜度時,可以用源代碼行數、功能點、特征點去計算。
使用失效率定義可靠性指標。
注意事項:
為了保證分配的有效性,對于每個功能組采用相同的復雜度度量方法。
選擇的復雜度測量能按線性比例轉化成失效率(如:如果功能組復雜度為4倍,失效率指標應該是等高的比例)。
復雜度更高的功能組,失效率指標也更高。
分配步驟:
1.確定整個軟件系統的可靠性需求(λs)
2.確定整個軟件系統的功能組數量(N)
3.對于每個功能組,確定它的復雜度因子(Wi),功能組的復雜度越高,Wi值越高
4.確定系統的任務持續時間(T)
5.確定系統任務持續期內,每個功能組的活動時間(τi)
6.計算系統的失效率調節因子(K):
7.計算每個功能組分配的失效率指標(λi):
λi=λs*(Wi/K)
4)重要度分配法
適用前提:
基于對軟件失效影響認知來分配失效率,將重要度等級與維持系統運行并且保持故障防護能力聯系起來。
對于確定的操作模式或功能組,如果其重要度等級高,應分配較低的失效率,如果其重要度等級較低,應分配高一些失效率。
如果為某項特定的操作模式分配特別低的失效率,就需要采用容錯或其它失效緩解設計技術。
使用失效率定義可靠性指標。
分配步驟:
1.確定整個軟件系統的可靠性需求(λs)
2.確定整個軟件系統的功能組數量(N)
3.對于每個功能組,確定它的重要度因子(Ci),對于系統更為重要的功能組,賦予較低的Ci值
4.確定系統的任務持續時間(T)
5.確定系統任務持續期內,每個功能組的活動時間(τi)
6.計算系統的失效率調節因子(K):
7.計算每個功能組分配的失效率指標(λi):
λi=λs*(Ci/K)
5)操作剖面分配法
講操作剖面,我們得理解什么是操作剖面?
我們可以把它理解為操作及其發生概率組成的集合。
同一個軟件因為用戶不同,存在多個操作剖面。
不同層面有不同的操作剖面,如客戶剖面,用戶剖面,系統模式剖面,功能剖面,操作剖面等。每個操作對應若干個運行。
適用前提:
軟件可靠性是由用戶的使用決定的,對于同一個軟件,用戶不同的使用方式會導致軟件可靠性的變化。操作剖面用于定義軟件的使用模型,刻畫用戶使用軟件的模式。
使用失效率定義可靠性指標。
分配步驟:
1.確定整個軟件系統的可靠性需求(λs)
2.確定確定整個軟件系統的操作剖面(PF)
PF={(item1,P1),(item2,P2)...(itemn,Pn)}
item1∩item2∩......∩itemn = Φ
P1+P2+......+Pn = 1
3.對于每個功能,分配可靠性需求(λi):
λi=λs*Pi
我們在下面章節舉例子說明下。
五、操作剖面分配法案例
如果軟件可靠性是由用戶的使用決定的,對于同一個軟件,用戶不同的使用方式會導致軟件可靠性的變化,這個時候我們就要去考慮操作剖面。
很多軟件都是這種,例如說郵箱,用戶會進行登錄、寫信、刪信、上傳附件、網盤管理等等一系列操作。
又比如飲水機的操作面板,用戶可以去按各種按鍵,不同的用戶習慣不一樣。
操作剖面分配法,很重要的一點是我們要弄清楚概率。
我們看一個具體的例子:
虛擬維修訓練系統可實現在虛擬環境下對裝備進行維修和拆卸的功能。是一款集訓練、學習、自測于一身的學習訓練系系統,對受訓人員的維修保障能力有大的幫助,其構成如下。
a) 客戶剖面可以表示為:
客戶剖面= {P (院校),P(軍工廠),P(基地)};
本例中,一組模擬數據為:院校有5所,軍工廠10個,基地15個,則概率計算如下:
P (院校) =5/ (5+10+15) = 5/30
P (軍工廠) =10/ (5+10+15) = 10 / 30
P (基地) =15/ (5+10+15) = 15/30
b) 用戶剖面可以表示為:
用戶剖面= {P (管理員), P (受訓者) };
這里模擬一組用戶數據如下:
院校一共500人使用此軟件,其中10人為管理員,490人為受訓者;軍工廠一共50人使用此軟件,管理員5人,受訓者45人;基地一共100人使用此軟件,管理員5人,受訓者95人。
根據這些數據可計算用戶剖面概率:
P (管理員) = (5/30) ? (10/500) + (10/30) ? (5/ 50) + (15/30) ? (5/100) =37/600
P (受 訓 者) = (5/30) ? (490/500) + (10/30) ? (45/50) + (15/30) ? (95/100) =563/600
c) 功能剖面可以表示為:
功能剖面= {P (登錄), P (實施) , P (查詢) };
不同系統使用人員 (管理員和受訓者) 使用系統不同功能的情況如下所示:
P (登錄) =0?7?P (管理員) +0?2?P (受訓者) =0.7*37/600+0.2*563/600 = 0.2308
P (實施) =0?2?P (管理員) +0?6?P (受訓者) =0.2*37/600+0.6*563/600 = 0.5753
P (查詢) =0?1?P (管理員) +0?2?P (受訓者) = 0.1*37/600+0.2*563/600 = 0.1938
根據實際的使用情況對功能剖面中實施部分進行分解實施包括提示和訓練兩大功能,其概率分配比例為0.2,0.8。則:
P (提示) =0?2?P (實施)=0.11506
P (訓練) =0?8?P (實施)=0.46024
這樣我們就計算出了登錄、實施、查詢這三個功能的使用概率。按照同樣的道理,可以去計算再下層的功能剖面,如實施下面的調練,以及再往下的操作剖面:講解演示、引導訓練、自主訓練、自測。
我們計算出了各個概率后,假設虛擬維修訓練系統總的失效率要求是λs,那么對應的操作剖面分配就是λs*Pi,例如上述例子的登錄,那就是分配0.2308λs,上述例子中的提示,那就是分配0.11506λs。
以上文章來源于永恒之地,作者徐步陌上行
國可RFMEA
與傳統的FMEA分析方法和軟件相比,R-FMEA最大的特點是通過其七步的分析流程, 構建了關聯緊密的FMEA基礎數據關系,即FMEA主模型。通過FMEA主模型,工程人員可以根據需要構建簡單的或者復雜的FMEA分析, 并實現企業知識的積累和快速重用。
國可R-FMEA軟件支持免費在線使用,并保證數據。日前,R-FMEA V4.6已正式發布,歡迎感興趣的朋友在線申請
版權所有© 國可工軟科技有限公司 滬ICP備2020030271號