劉洋 張宏宇 董旭升

摘要:在簡述分析技術的基礎上,提出了以系統(tǒng)危險為基礎的軟件安全性與可靠性分析策略,并結合實例對這一策略的實際應用進行了深入探討,旨在為實際的軟件分析工作提供參考,保證軟件分析結果的真實性與準確性。
關鍵詞:軟件;可靠性;安全性;故障樹
0 引言
在航天、軍事等領域中,軟件密集化程度、規(guī)模、復雜度均大幅提高,作為系統(tǒng)的重要組成部分,軟件對系統(tǒng)的影響日益增大。因此,在軟件研制與管理過程中,如何保證軟件的可靠性和安全性,成為了相關人員關注的焦點。
1 分析技術
1.1? ? FHA
FHA,即功能危險評估,按照從上到下的順序確定系統(tǒng)功能所處狀態(tài),同時對其可能造成的影響進行評估。它能對產品功能進行綜合檢查,對不同的功能狀態(tài)進行識別,判定功能是否存在故障或喪失,并以故障的嚴重程度為依據進行分類。
1.2? ? PHA
PHA,即初步危險分析,可對系統(tǒng)危險進行識別,是對軟件安全性進行分析的主要方法。對于在程序設計與開發(fā)時需要跟蹤和解決的各項危險和風險,該方法可確定危險清單框架,同時記錄通用危險[1]。
1.3? ? SFMEA
SFMEA,即軟件失效模式和影響分析,它是對現有系統(tǒng)分析方法的創(chuàng)新和拓展,基于失效模型,將失效可能造成的影響與后果等作為中心,以分析層次及因果關系等作為依據,通過識別確定軟件存在的薄弱環(huán)節(jié),同時提出相應的改進措施。
1.4? ? SFTA
SFTA,即軟件故障樹分析,它將現有的FTA技術作為基礎,尤其適合在需求階段使用。該技術自頂向下,將對系統(tǒng)有較大影響的故障作為頂事件,分析導致系統(tǒng)產生故障問題的軟件方面的原因。
為確保軟件的安全性和可靠性分析能夠順利開展,下面根據以上4種技術方法,提出以系統(tǒng)危險為基礎的軟件安全性和可靠性分析策略。
2 以系統(tǒng)危險為基礎的軟件安全性和可靠性分析
以系統(tǒng)危險為基礎的軟件安全性和可靠性分析策略分為以下4個步驟:
步驟1:對系統(tǒng)危險進行識別與分析,將系統(tǒng)級功能作為入手點,采用FHA技術確定系統(tǒng)不同功能所處的故障狀態(tài),通過識別確定系統(tǒng)危險,同時對危險可能造成的影響及危險的級別進行分析。
步驟2:對系統(tǒng)危險進行追蹤與控制,根據歷史數據補充已經識別確定的危險,并分析確定危險產生的原因,同時提出相應的控制措施及驗證方法。
步驟3:對軟件失效模式進行識別與分析,以識別出的危險為依據,采用SFMEA技術識別不同的功能故障及其失效模式,同時對失效可能造成的影響及產生原因進行分析,最終制定有針對性的改進措施[2]。
步驟4:對軟件失效的原因進行分析并提取安全性方面的需求,以軟件的失效模式及其影響進行分析后得出的結果為依據,利用SFTA技術分析不同失效模式具體的產生原因,確定具體的失效原因和邏輯關系組合,最后根據以上步驟的結果,提取軟件安全性方面的需求。
2.1? ? 對系統(tǒng)危險進行識別與分析
在對系統(tǒng)危險進行識別與分析時,利用FHA技術,以系統(tǒng)相關設計文件與軟件的任務書為依據,對產品各類功能進行綜合檢查,確定功能是否處在危險狀態(tài),同時結合嚴重程度進行分類,確定不同功能所處危險狀態(tài)及可能造成的影響,最終得出危險清單。
對系統(tǒng)危險進行識別與分析的具體過程:
(1)以針對系統(tǒng)功能進行的描述為依據,對目標系統(tǒng)進行功能分解;(2)確定危險識別對應的分析層次,確定和該分析層次直接有關的各類功能;(3)綜合考慮正常與不正常情況下單個及多個故障對應的情形,并確定和描述與功能存在直接關聯的故障或失效模式[3];(4)對系統(tǒng)危險可能對系統(tǒng)造成的影響進行分析,同時確定故障狀態(tài)屬于何種影響級別;(5)對不同功能故障可能引起的危險及影響等級進行分析和記錄,最終獲得相應的危險清單。
2.2? ? 對系統(tǒng)危險進行追蹤與控制
在對系統(tǒng)危險進行追蹤與控制時,利用PHA技術,以歷史數據為依據補充識別出的系統(tǒng)危險,確定危險產生的原因,同時提出相應的控制方法及驗證措施。
對系統(tǒng)危險進行的追蹤與控制的具體過程:
(1)以歷史經驗數據與該領域的專家經驗為依據,補充危險清單;(2)從硬件失效、人員誤操作和軟件故障等方面考察,確定系統(tǒng)危險產生的具體原因;(3)對所有危險產生的原因,確定一個以上控制措施,并通過軟硬件合理設計或對某個過程的執(zhí)行來避免危險的產生;(4)對于確定的危險控制措施,還要提出一個及以上驗證方法,并通過具體的分析、評審和測試,對控制措施的安全性及可靠性進行綜合驗證。
2.3? ? 對軟件的失效模式進行識別與分析
在對軟件的失效模式進行識別與分析時,利用SFMEA技術,以軟件需求和危險清單等為依據,通過分析確定和系統(tǒng)危險有關的軟件失效可能造成的影響、產生的原因及模式,同時制定改進措施,得出相應的分析表,以此為軟件安全性方面需求的提取提供參考依據。
對軟件失效模式進行識別與分析的具體過程:
(1)以軟件功能描述為依據,在危險清單中確定系統(tǒng)危險,并結合對該失效模式相類似的其他失效模式對應的數據,對該危險可能造成的影響進行識別與分析;(2)以軟件的具體失效模式為依據,結合層次關系,對失效模式可能造成的影響進行分析;(3)以軟件失效模式為依據,分析失效模式產生的原因,并提出有針對性的改進措施;(4)對軟件具體失效模式、產生原因和可能造成的影響進行記錄,并確定有效的改進措施,最終得出相應的分析表。
2.4? ? 對軟件失效產生的原因進行分析并提取安全性方面的需求
在對軟件的失效原因進行分析并提取安全性方面的需求時,利用SFTA技術,將軟件的失效模式和影響分析表確定的不同失效模式作為頂事件,建立故障樹,分析軟件失效具體的產生原因和相應的邏輯關系,最后以此為基礎提取軟件安全性方面的需求。
對軟件失效產生的原因進行分析及提取安全性方面需求時,其具體過程為:(1)在建立故障樹前,先確定目標與分析深度;(2)以軟件具體失效模式和影響分析表對應的失效模式為依據,確定需進行分析的頂事件;(3)收集軟件功能數據及其運行狀態(tài)信息,同時分析頂事件產生的具體原因和相應的邏輯關系;(4)利用邏輯門對不同事件進行關聯,以此形成故障樹;(5)對故障樹對應的底事件進行分析,以提取出軟件安全性方面的需求;(6)對故障樹進行記錄和繪制,對失效模式產生的原因和軟件在安全性方面的需求進行分析。
3 實例應用
在飛機的機載系統(tǒng)中,起落架運行狀態(tài)直接影響飛行安全,機載系統(tǒng)主要負責對起落架進行控制并收放艙門。本文將起落架的控制系統(tǒng)作為主要研究對象,分析系統(tǒng)軟件的安全性和可靠性。
首先,識別和分析系統(tǒng)危險,以系統(tǒng)相關設計文件與軟件任務書為依據,對起落架控制系統(tǒng)各類功能進行綜合檢查,確定功能是否處在危險狀態(tài),同時結合嚴重程度進行分類,確定不同功能所處危險狀態(tài)及可能造成的影響,不同功能層次對應的關系如表1所示。
根據表1可知,第二層功能是危險識別的主要分析層次,從實際的運行狀態(tài)與環(huán)境影響因素等入手對故障進行分析,同時對和功能有關的實際故障狀態(tài)進行分析和描述,實現對系統(tǒng)危險的識別。與此同時,對系統(tǒng)危險可能造成的影響進行分析,并確定相應的影響級別。在以上分析均完成后,在危險清單中記錄分析結果。
以歷史經驗數據和相關領域專家經驗為依據,從電源、環(huán)境和機械結構等不同方面補充系統(tǒng)危險,如收放超時等。然后對識別出的各類危險進行追蹤和控制,從軟硬件失效和人員誤操作等方面確定危險產生的主要原因,同時提出相應的控制措施及驗證方法。以起落架控制系統(tǒng)為例,當其危險產生原因為硬件失效時,可采用增加控制系統(tǒng)和在地面維護過程中增加對這一功能的檢查等措施來控制,采用分析和評審的方法進行驗證。當其危險產生原因為軟件失效時,可采用在軟件設計過程中對危險進行控制的方法來控制,并采用分析和評審的方法進行驗證。當其危險產生原因為人員誤操作時,可通過制定嚴格的操作規(guī)程與加強對操作人員的技能培訓來控制,并采用分析和評審的方法進行驗證。
完成以上工作后,確定第三層功能軟件失效模式。分析時,以軟件說明對軟件功能進行的描述為依據,在危險清單中確定系統(tǒng)危險,根據軟件實際運行狀態(tài)與具體使用場景,對失效模式進行識別與分析。與此同時,結合具體的軟件失效類型,考慮具體輸入輸出關系,對不同失效模式可能造成的影響進行分析;另外,對于不同的失效模式,分析其產生原因,同時提出有效的改進措施。在結束以上分析過程后,繪制相應的分析表。在此之后,將失效模式和可能造成的影響分析結果作為頂事件,借助故障樹分析法確定失效產生的具體原因。收集軟件功能數據與實際運行狀態(tài)信息,分析可能導致故障產生的事件類型及其邏輯關系,進而形成故障樹。
最后以所得故障樹為依據,對其底事件進行分析,并提取相應的安全性及可靠性需求:
(1)當飛機在地面上滑行時,起落架不可收上;(2)飛機起飛后,起落架應收上去或提示操作人員采取應急收放措施;(3)起落架的收上指令需采用二進制碼,同時為錯誤指令提出相應的提示信息;(4)在起落架收上控制過程中,若連續(xù)10個以上的周期起落架收上沒有達到要求,應立即上報故障。
4 結語
綜上所述,在軟件應用過程中,軟件的安全性和可靠性至關重要,為此本文提出了以系統(tǒng)危險為基礎的軟件安全性與可靠性分析策略,并以飛機起落架的控制系統(tǒng)為研究對象,深入分析了這一策略的實際應用過程,可為相關人員的實際軟件分析工作提供參考。
[參考文獻]
[1] 胡春枝,戰(zhàn)京景,崔健祿.軟件可靠性和安全性技術研究[J].黑龍江科技信息,2018(27):91-92.
[2] 農嘉,羅峻文.基于數據驅動的軟件可靠性預測模型[J].內蒙古師范大學學報(自然科學漢文版),2018,47(1):49-54.
[3] 孫肖,周新蕾,楊潔,等.航天軟件需求可靠性與安全性分析驗證技術及工程應用研究[J].質量與可靠性,2016,10(4):31-34.
收稿日期:2020-07-08
作者簡介:劉洋(1977—),女,遼寧人,碩士,高級工程師,研究方向:軟件測評技術、信創(chuàng)軟件適配測試技術、智能網聯車測試技術。