《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 形式化規范在軟件可靠性早期估計中的應用研究
形式化規范在軟件可靠性早期估計中的應用研究
來源:微型機與應用2011年第11期
呂閩暉1,呂敏蓉2
(1. 海軍工程大學裝備經濟研究所,湖北 武漢 430033; 2.湖南女子學院,湖南 長沙 410
摘要: 隨著軟件的廣泛應用,特別是軟件在尖端領域的應用,軟件可靠性成為一個非常重要的問題。形式化規范在軟件可靠性研究中能夠起到的作用是多方面的。本文針對非形式化統計使用測試的不足,結合已有的早期可靠性估計方法,設計了優化算法,并提出了即使在設計中采用了形式化規范仍然需要測試的結論。
Abstract:
Key words :

摘  要: 隨著軟件的廣泛應用,特別是軟件在尖端領域的應用,軟件可靠性成為一個非常重要的問題。形式化規范在軟件可靠性研究中能夠起到的作用是多方面的。本文針對非形式化統計使用測試的不足,結合已有的早期可靠性估計方法,設計了優化算法,并提出了即使在設計中采用了形式化規范仍然需要測試的結論。
關鍵詞: 形式化規范;軟件可靠性;早期估計;測試

 軟件可靠性研究的主要目的是評價和度量軟件的可靠性和預測軟件可靠性。軟件可靠性估計主要指應用數理統計分析處理系統測試和系統運行期間得到的失效數據,對軟件系統當前的可靠性進行估計。主要目的是估計當前可靠性,并確定可靠性模型水平的依據。
1 非形式化統計使用測試的不足
1.1 傳統使用剖面的不足

 軟件使用剖面[1]是關于如何使用軟件系統的一種量化描述,一個剖面就是一組操作及某個操作發生概率所組成的集合。例如:如果A在60%的時間內發生,B在40%的時間內發生,使用剖面就是A:0.6,B:0.4。
傳統理論認為,剖面是反映軟件不同的客戶、用戶、系統模式、功能和操作的發生概率的一個量化特征,其目的是為軟件測試及其他軟件開發階段進行資源分配提供相應的參考信息,決定如何在軟件測試中進行測試實例的生成,如何在測試過程中分配測試資源。
 傳統的剖面生成方法已經為統計測試提供了一個良好的基礎,然而這并不說明傳統的使用剖面的數據本身和相應的獲得方法沒有缺陷。事實上,以下問題在傳統剖面中一直沒有得到有效解決:(1)剖面獲得方法主觀性較強。(2)統計所得使用頻率并不能完全代表軟件的實際應用情況[2]。(3)影響可靠性度量[2]。
1.2 非形式化統計使用測試的不足
 軟件測試占用了軟件開發過程中大量的人力物力資源,然而軟件測試卻往往缺乏較好的理論基礎,測試數據即測試實例的選擇通常根據經驗作出,因此具有主觀性,并依賴于個人經驗。
 統計使用測試則是一種按軟件實際使用的方法來測試軟件的方法。測試實例是按照使用規范得到的,而使用規范是軟件預期使用的描述。統計測試根據用戶對軟件可靠性的期望,最大程度地利用可以支配的資源。另外,因為統計使用測試是以概率統計為基礎的,因此利用統計測試得到的數據也可以利用概率統計的方法來預測軟件可靠性,從而為可靠性度量提供數據,并可以相應進行軟件的可靠性度量,另外還可以決定軟件測試可以停止的標準。這一切都可以使得軟件可靠性處在嚴密控制之下[4,6]。
2 早期可靠性估計方法及其改進
2.1 使用SDL進行使用實例建模

 在文獻[5]中通過引入狀態層次模型,有可能減少統計使用測試中的狀態爆炸問題,該方法采用馬爾科夫鏈描述技術描述用戶及其對系統的使用。
 使用SDL可結合狀態層次模型的方法進行軟件可靠性早期估計,就是用SDL的替換形式SHY-SDL(State Hierarchy with SDL)對使用的層次化描述建模形式化。
 目前已有基于使用剖面的測試用例選擇算法可以應用于系統的使用模型,算法的結果產生測試序列,測試序列可以用SDL或其他方法描述。因此,在進行可靠性早期估計時,用SDL描述測試用例很重要,優點是:(1)用SDL描述使用,就容易用SDL自動生成測試用例。(2)用SDL描述測試用例,有可能使用SBA。
2.2 分析和使用實例建模
 SBA應根據對用戶及系統使用的描述和系統的原始SDL描述。使用結合SHY-SDL的SBA有三種方式:
 (1)原始SDL系統成為一個塊,SHY-SDL模型作為另一個塊,形成新的系統,如圖1。這種方案不能直接實現,因為SBA工具將對SDL系統進行充分的動態分析,這與統計質量控制過程的目標相沖突。該方案的主要好處是檢查系統描述與獲得的真實環境的一致性,但一般作為其他方法的補充。

 (2)修改SBA工具,使之適合于統計分析,可以按隨機的步驟采用第一種方案執行,但同時通過SHY-SDL模型根據使用剖面選擇特定的執行路徑。所以在執行路徑的決策處理和調度兩個方面必須對SBA加以補充。
 (3)根據SHY-SDL模型生成分析(測試)序列,使分析實例的SDL描述成為新的SDL系統中的塊,這種方法意味著用SBA分析選擇的使用實例。
2.3 根據分析進行可靠性估計
 初步的可靠性估計可用如下兩種方式:(1)失效間隔時間和相關模型進行比較;(2)計算成功執行的分析實例數與總分析實例數的比。
 第一種方法意味著分析是一個序列,第二種則要求把環境行為描述分成幾個分析實例。在使用SBA分析時,將報告連續兩次失效間分析的狀態數,這就對第一種方法形成了簡單的支持。如果失效被糾正,將看到可靠性增長,并作為測試和運行期間的可靠性增長的估計,對可靠性增長的早期估計可以更好地規劃達到質量目標的測試時間。如果不糾正失效,將得到實際可靠性估計,這種情況只有當分析工具的執行是連續、不糾正失效時才有可能。
 第二種分析方法的主要問題在于SBA工具交互性很差,如果一個塊中實現幾個實例,很難分析其中某一個,解決辦法是一次只實現一個分析實例,但這又使得工具用戶為每個分析實例重新生成代碼。
結合SBA的方法可獲得第二步軟件可靠性估計,采用剖面的動態分析可以結合充分分析(SBA的完整形式)如下:
 (1)基于使用剖面進行部分分析,獲得可靠性增長估計;
 (2)進行充分動態分析;
 (3)將規格化的失效時間與可靠性增長估計相比較。
 必須規格化失效時間,這樣能夠比較充分分析和按使用剖面進行部分分析的結果。通過記錄失效在使用描述中發生的位置來規格化時間,如果分析根據剖面進行,可以計算失效發生的平均時間。這個時間被認為是實際的失效時間。
2.4 導出失效時間算法及其優化

 


 通過分析可以得到動態失效與實際操作中失效的關系。下面介紹通過分析檢測的動態失效是否代表了運行中的實際失效。
 首先給出以下假設:
 (1)由SBA動態分析找出的失效集是所有可能失效的子集;
 (2)動態分析中找出的失效隨機分布于所有失效中,例如在某段時間內,隨機失效與動態失效的比例因子用c表示;
 (3)根據使用剖面測試是操作的近似,這也是統計使用測試的基礎和大多可靠性估計模型的基礎;
 (4)而采用SBA根據使用剖面分析是采用SBA進行充分分析的近似,充分動態分析遍歷所有狀態,采用使用剖面進行有選擇的動態分析時,是根據所有可能的狀態集選擇進入的狀態,選擇是根據特定的使用剖面的取樣,而不是隨機取樣。
 (5)SBA利用使用剖面進行動態分析與統計使用測試是可以比較的,從相同的使用剖面選擇用于動態分析的實例類似于選擇統計使用測試實例,區別為后者是隨機的。
 要使根據動態分析估計的可靠性增長可應用于考慮隨機失效的可靠性增長,必須將動態分析失效數據對應代表所有失效。以某軟件為例,可采用以下算法[3]:
 (1)根據使用剖面進行動態分析。圖2中,t1、t2、t3是失效時間。失效數據可以用來估計SBA分析所得動態失效的MTTF(平均失效時間),估計模型可以采用凈室可靠性估計模型。

 (2)確定c。如:包括隨機失效在內的實際總失效數與SBA找出的動態失效數之比;c值主要根據早期開發的項目,程序特點不同可以采用不同的c值,而且分析不同階段c值也又可能不同。
 (3)根據第一步計算的MTTF,確定每個時間間隔發生的失效數。如果c不是整數,間隔內的失效數按trunc(c-1)和trunc(c)之間的兩點分布選擇,則c-1為平均值,如果是整數,則每個間隔失效數為c-1。
 (4)在時間間隔內隨機選擇失效時間放入根據不同c值得到的失效,如:t1a、t2a、t2b和t3a。
 (5)根據分析和計算的失效數據估計MTTF,這就是對所有失效類型MTTF的估計。
分析的實際值和可能值應該進一步根據理論和實踐研究,但可以肯定,初步估計考慮的是動態分析軟件規范期間的動態失效。
3 算法改進
 (1)改進使用剖面
 通常隨機測試也是一種使用剖面,例如:系統所有的事件或信號是等可能出現的,這樣可以測試系統將來的可靠性。考慮軟件可靠性時,有必要對關鍵部分加以特別重視,生成這樣的剖面在某類嚴重失效不常發生時是很有價值的[4]。
 另外,即使考慮了使用剖面中的重要度和使用頻繁度,仍需改變使用剖面,尤其是在動態分析期間,很容易進行第二次分析。改變使用剖面的目的是檢查其他使用剖面的可靠性,因為系統的使用情況不斷變化,這意味著高可靠的系統由于使用情況的改變有可能變得不可靠了,所以,改變使用剖面有意義。
還有一種方法可以獲得在正常使用中較少出現情況的可靠性,即使用充分動態分析考慮軟件中易產生故障的部分,找出這些部分可以說明軟件使用剖面的改變是可以改變了軟件可靠性的。
 (2)該方法中選擇的時間間隔是兩個失效間的間隔,但如果把時間間隔擴大為幾個失效的間隔,則在可靠性估計時計算MTTF時更準確,更接近于項目的真實情況。當然,這又依賴于對c值的進一步確定。
 (3)該方法在時間間隔中放入隨機失效時采用的是隨機放置的方法,但采用什么方式放置對于統計最后的MTTF是很關鍵的。從統計意義上來說,可以按指數分布在時間間隔內放置隨機失效,因為假設X為某系統發生故障的時間,它服從指數分布,則對νs,νt>0,有:

 這表明,在時段(s,s+t)內無故障的概率只與時段的長度t有關,而與系統過去無故障的工作時間s無關。這正好滿足選擇動態失效間隔放置隨機失效的條件。
即使在設計中采用了形式化方法,仍然需要測試。測試可以檢查出早期檢測所遺留的或求精過程中所引起的錯誤,如T800晶片機的浮點部件在測試中發現了一個對微代碼改變而產生的錯誤,這個改變是發生在形式化開發后。可以說,測試永遠是有用的檢查手段,因此建議:
 (1)開發軟件測試平臺
 研究、開發軟件測試平臺是很有現實意義,國內外軟件測試工具很多,應針對開發軟件所常用的語言,利用現有的技術,開發軟件測試平臺。
 (2)建立軟件測試和評估中心
 軟件的專業性很強,因此,軟件測試評估中心應由計算機軟件、可靠性工程、系統工程等領域的專家組成,負責制定軟件可靠性各種標準,并監督實施,做好軟件可靠性管理工作;建立軟件測試平臺,做好軟件可靠性技術保障工作;由軟件生產單位協助,建立可靠性測試實例庫,客觀、公正地驗收軟件;做好可靠性數據的收集、整理、分析工作,開展軟件可靠性模型的研究,建立適用于軟件的可靠性模型,并進行可靠性評估。
參考文獻
[1] MUSA J D. Operational profiles in software-reliability engineering[J]. IEEE Software, 1993,10(2):14-32.
[2] KITCHENHAM B. Validation verification and testing. diversity rules[J]. IEEE Software, 1998,15(4):46-49.
[3] WOHLIN C, RUNESON P. A method proposal for early software reliability estimation [C]. Proceedings of 3th International Symposium on Software Reliability Engineering, 1992.
[4] 顏炯,艦載指控軟件操作剖面研究[D].武漢:海軍工程大學,2000.
[5] Runeson. Usage modeling: The basis for statistical quality control. Proceedings of SRS’92, Denver, USA, June 1992,77-84.
[6] STOCKS P A, CARRINGTON D A. A framework for specification-based testing [ J]. IEEE SE, 1996,22(11):777-793.
[7] RUSHBY J, PARK M. Formal methods and their role in the certification of critical systems[C]. In: Safety and Reliability of Software Based Systems, 12th Annual CSR Workshop, Springer, 1997.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产成人综合在线 | 成人精品一区二区三区校园激情 | 日韩在线二区全免费 | 免费大黄网站在线看 | 免费日韩在线视频 | 成人在线网| 亚洲午夜久久久久久尤物 | 在线视频天堂 | 性欧美极品xxxx欧美一区二区 | 黄色小视频在线播放 | 日本人乱人乱亲乱色视频观看 | 在线网站黄色 | 日韩综合久久 | 国产精品香蕉成人网在线观看 | 亚洲五月六月丁香激情 | 亚洲免费一 | 2022国产精品最新在线 | 亚洲国产欧美在线 | 黄色片视频免费观看 | 日韩欧美国产中文字幕 | 最近2019中文字幕大全视频1 | 中国国产高清一级毛片 | 夜夜穞狠狠穞 | 激情网五月天 | 99re九精品视频在线视频 | 成人免费视频网站 | 大尺度激烈叫床视频免费 | 国产精品午夜剧场 | 亚洲免费成人网 | 插吧插吧综合网 | 亚洲国产精品久久久天堂 | 人人艹人人爽 | 免费视频 久久久 | 成人国产精品免费视频不卡 | 日日好吊妞 | 无毒不卡在线播放 | 一级做a爱过程免费观看 | 波多野结衣 在线资源观看 波多野结衣 一区二区 | 欧美日韩精品在线视频 | 俄罗斯一级毛片免费播放 | 欧美视频一二三区 |