張敏 曲萃萃
摘要:關鍵性分析是核電廠軟件驗證與確認過程最初始的環(huán)節(jié),也是其他V&V工作的基礎。該文針對核電廠安全相關級系統(tǒng)的軟件,結合IEEE Std 1012標準,建立了一種適用于軟件開發(fā)各個階段的關鍵性分析的具體執(zhí)行方法,最大限度地對核電廠安全相關級軟件關鍵性分析工作進行了標準化,從而有效提高了軟件驗證與確認工作的效力。
關鍵詞:軟件完整性等級(SIL);關鍵性分析(Criticality analysis);軟件驗證與確認fV&V);失效模式與影響分析(FMEA)
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2020)05-0100-02
開放科學(資源服務)標識碼(OSID):
1 軟件關鍵性分析中的基本定義
定義1:關鍵性:依據(jù)IEEE Std 1012標準的描述,關鍵性是指一個需求(或模塊、錯誤、故障、失效又或者其他方面)對系統(tǒng)的開發(fā)或運行的影響程度。
定義2:軟件元素:軟件元素在文中是指代關鍵性分析中的各個獨立分析對象,其類型可以是需求、模塊、功能、子系統(tǒng)、或其他軟件劃分的依據(jù)。
IEEE Std 1012依據(jù)功能失效后果產(chǎn)生的影響,將軟件元素的關鍵性等級分成SIL1、SIL2、SIL3、SIL4四種等級,如表1所示。通過關鍵性分析這個過程,可以充分了解、識別目標系統(tǒng)中存在的關鍵軟件元素。
2 軟件關鍵性分析方法
核電廠軟件驗證與確認活動依據(jù)IEEE Std 1012進行,軟件開發(fā)過程的驗證與確認活動分為六個階段:概念階段V&V、需求階段V&V、設計階段v&v、實現(xiàn)階段v&v、測試階段V&V、安裝和檢驗階段V&V。而關鍵性分析將貫穿于軟件開發(fā)過程的概念階段、需求階段、設計階段、實現(xiàn)階段的V&V活動,是一項迭代更新的V&V活動,通過各個階段的關鍵性分析,最終得到一個系統(tǒng)的全過程的關鍵性分析結論。
2.1 概念階段的關鍵性分析
如圖1所示,概念階段的關鍵性分析是在系統(tǒng)概念文檔評估通過的基礎上,依據(jù)系統(tǒng)的軟硬件功能劃分,識別出系統(tǒng)需求中依賴軟件實現(xiàn)的功能,并作為概念階段關鍵性分析的對象(也稱為軟件元素),之后對這部分軟件元素進行FMEA分析。參照表1,依據(jù)功能失效后果產(chǎn)生的影響,在軟件元素已經(jīng)指定了軟件完整性等級的情況下,驗證該指定的軟件完整性等級是否正確,如果不正確則需要進行修正;在軟件元素未被指定軟件完整性等級的情況下,則為軟件元素定義一個新的軟件完整性等級,并依此確定目標系統(tǒng)的軟件完整性等級,最后將概念階段各個軟件元素的軟件完整性等級記錄下來,形成關鍵性分析報告。
需要注意的是,概念階段關鍵性分析的對象始終是系統(tǒng)需求中的軟件相關項,非軟件相關項不在考慮范圍之內(nèi),因此系統(tǒng)的軟硬件功能劃分工作至關重要。
2. 2需求階段的關鍵性分析
需求階段的關鍵性分析是在軟件需求文檔評估通過的基礎上,列出每一項軟件需求及其追蹤到的系統(tǒng)需求的軟件完整性等級,并根據(jù)對軟件需求的FMEA分析結果,檢查所有軟件需求的軟件完整性等級是否發(fā)生變化。軟件需求即是需求階段的軟件元素。當發(fā)生軟件元素的SIL等級發(fā)生提升或下降時,修改并記錄各個軟件元素的新的SIL等級,同時驗證沒有不一致或非預期的軟件完整性后果被引入,最后對概念階段生成的軟件關鍵性分析報告進行更新。
需要注意的是,需求階段關鍵性分析的對象始終是軟件需求項,而確定軟件需求項的軟件完整性等級的基礎是追蹤到系統(tǒng)需求中的軟件相關項,因此可追蹤性分析的工作至關重要??勺粉櫺苑治鲈谠O計階段、實現(xiàn)階段的關鍵性分析活動中的作用也同樣重要。
2.3 設計階段的關鍵性分析
設計階段的關鍵性分析是在軟件設計文檔評估通過的基礎上,依據(jù)軟件概要設計追蹤到系統(tǒng)需求、以及軟件詳細設計追蹤到概要設計的追蹤分析結果,列出每一項軟件概要設計及其對應的軟件需求的軟件完整性等級,以及每一項軟件詳細設計及其對應的概要設計的軟件完整性等級,并根據(jù)對軟件概要設計、詳細設計分析的結果,檢查所有軟件元素的軟件完整性等級是否有變化。軟件概要設計和軟件詳細設計是設計階段的軟件元素。當發(fā)生軟件元素的SIL等級發(fā)生提升或下降時,修改并記錄各個軟件元素的新的SIL等級,同時驗證沒有不一致或非預期的軟件完整性后果被引入,最后對需求階段生成的軟件關鍵性分析報告進行更新。
2.4 實現(xiàn)階段的關鍵性分析
實現(xiàn)階段的關鍵性分析是在軟件源代碼評估通過的基礎上,依據(jù)軟件源代碼到詳細設計的追蹤分析結果,列出每一個軟件函數(shù)及其對應的軟件詳細設計的軟件完整性等級,并根據(jù)對軟件源代碼分析的結果,檢查所有軟件函數(shù)的軟件完整性等級是否有變化。軟件函數(shù)是實現(xiàn)階段的軟件元素。當軟件元素的SIL等級發(fā)生提升或下降時,修改并記錄各個軟件元素的新的SIL等級,同時驗證沒有不一致或非預期的軟件完整性后果被引入,最后對設計階段生成的軟件關鍵性分析報告進行更新。
3 關鍵性分析原則
原則1:在指定或驗證軟件完整性級別的過程中,須檢查軟件元素是否對其他軟件元素有影響,當一個低級別SIL等級的軟件元素影響到比它高級別SIL等級的軟件元素時,則該低級別SIL等級軟件元素的軟件完整性等級須得到提升,與它能夠影響到的最高級別的軟件元素的SIL等級保持一致。且目標系統(tǒng)的軟件完整性等級應該與系統(tǒng)內(nèi)任何獨立軟件元素的最高軟件完整性級別一致。此原則適用于所有概念階段、需求階段、設計階段、實現(xiàn)階段的關鍵性分析。
原則2:在驗證軟件完整性等級的過程中,如出現(xiàn)一條軟件需求可以追蹤到多條系統(tǒng)需求時,則需要列出每一條系統(tǒng)需求的SIL等級后,依據(jù)軟件完整性等級取最高化的原則,該軟件需求項的SIL等級將與其所對應的系統(tǒng)需求中軟件完整性等級最高的一項系統(tǒng)需求的SIL等級保持一致。此原則可以推廣應用到設計階段、實現(xiàn)階段的關鍵性分析。
4 結論
軟件關鍵性分析在核電廠軟件與確認活動中的作用至關重要,是其他V&V活動的基礎,本文所述的軟件關鍵性分析的具體執(zhí)行方法目前已在核電廠安全級相關軟件項目中得到應用實施,并取得了良好的效果。本方法同樣適用于非安全級軟件的關鍵性分析。
參考文獻:
[1] IEEE Standard for Software Verification and Validation[Sl.IEEE Std 1012-2004.
【通聯(lián)編輯:梁書】
收稿日期:2019 -10 -19
作者簡介:張敏(1985-),通信作者,女,內(nèi)蒙古通遼人,工程師,碩士,從事軟件驗證與確認研究。