(南京南瑞繼保電氣有限公司,江蘇 南京 211102)
核電廠用電保護裝置主要用于核電廠線路、電動機、母線及變壓器等廠用電設備的保護,當一次設備發(fā)生故障時,廠用電保護裝置能夠快速動作,隔離故障,保護一次設備的安全,核電廠用電保護裝置的可靠性直接影響整個核電廠的安全穩(wěn)定運行[1]。核電廠用電保護裝置的國產化是核電技術全面國產化的重要一環(huán)。在核電廠用電保護裝置國產化進程中,如何保證核電廠用電保護裝置軟件的安全性和可靠性是設備開發(fā)和研制過程中所要解決的關鍵問題[2-3]。本文以《IEC60880核電廠對基于計算機的安全重要儀器和控制系統(tǒng)執(zhí)行 A 類功能的軟件》標準(下文簡稱IEC60880標準)為依據,參照國產化核電廠用電保護裝置軟件的開發(fā)及驗證與確認(Verification & Validation,V&V)取證整個過程,總結核電廠安全軟件的V&V方法和技術特點,對后續(xù)核電廠國產化設備軟件V&V開發(fā)和取證提供借鑒。
本文設計的核電廠用電保護裝置的整體功能如圖1所示,裝置采用兩片雙核處理器分別實現(xiàn)人機子系統(tǒng)功能與保護子系統(tǒng)功能。人機子系統(tǒng)負責裝置對外人機接口,包括人機界面、事件記錄,錄波、對時及對外通信功能等,保護子系統(tǒng)利用核電廠用電一次設備發(fā)生短路或異常情況時的模擬量(電流、電壓、頻率等)的變化構成繼電保護動作的原理,并結合輸入的開關量進行邏輯判斷,發(fā)出告警、閉鎖信號提醒運行人員,或直接通過出口繼電器動作跳開一次設備開關隔離故障。核電廠用電保護裝置中保護子系統(tǒng)涉及安全功能的執(zhí)行,為保證保護子系統(tǒng)的最大化安全運行,兩個系統(tǒng)互相獨立,人機子系統(tǒng)出現(xiàn)任何異常,不影響保護子系統(tǒng)的正常運行。
圖1 核電廠用電保護功能架構Fig.1 Function of the nuclear power plant protection relay
核電廠用電保護的邏輯處理功能是采用軟件實現(xiàn)的,軟件的可靠性直接影響核電廠的安全性。由于軟件故障具備潛伏性并且易受共因故障的影響,因此只能依靠嚴格的開發(fā)過程來保證核電廠用電保護軟件的質量[4-5]。核電廠用電保護裝置軟件V&V的目的是為了規(guī)范開發(fā)過程,保證開發(fā)過程每個階段產物的正確性,或保證錯誤可以在設計過程中盡早發(fā)現(xiàn),從而提高核電廠用電保護裝置軟件在整個生命周期內的可靠性和穩(wěn)定性,保障核電廠的安全穩(wěn)定運行。
IEC 60880是核電廠對基于計算機的安全重要儀器和控制系統(tǒng)執(zhí)行 A 類功能的軟件標準,該標準詳細規(guī)定執(zhí)行A類功能的高可靠性軟件的整個生命周期的活動,涉及軟件的生成和文檔化的每個階段,包括需求規(guī)格書、設計、實現(xiàn)、驗證、確認和運行[6]。
核級廠用電保護裝置軟件安全生命周期的V&V過程如圖2所示,主要分為以下六個階段:軟件需求評審、軟件設計評審、代碼靜態(tài)驗證、單元測試驗證、集成測試驗證以及系統(tǒng)確認。
整個V&V流程中的產物如表1所示。
圖2 核級廠用電保護裝置軟件V&V過程Fig.2 The V&V process of nuclear power plant protection relay software
表1 核級廠用電保護裝置軟件V&V產出
核級廠用電保護裝置研發(fā)項目在立項初期就根據IEC 60880標準要求建立了軟件項目質量管理體系、軟件質量保證計劃、軟件配置管理以及軟件安全防范等流程體系,并形成正式文檔,項目開發(fā)過程中嚴格按照文檔預先規(guī)定流程執(zhí)行。在項目準備階段,項目組就聘請了具備安全軟件V&V資質的獨立的第三方V&V小組,保證了軟件開發(fā)工作和V&V工作的獨立性,并將V&V工作貫穿于核級廠用電保護裝置軟件整個安全生命周期的全過程中,避免軟件生命周期的各個階段引入錯誤或缺陷。
該階段V&V產出見表1 的 3.1 準備階段。
3.2.1 軟件需求評審
開發(fā)人員根據核級廠用電保護裝置功能需求及安全需求編寫系統(tǒng)需求說明書,并從系統(tǒng)需求說明書中細化軟件需求形成軟件需求說明書,核級廠用電保護裝置軟件需求說明書應明確如下內容:
1)軟件提供的應用功能,如圖1所示;
2)核電廠調試和換料等特殊運行工況下的軟件要求;
3)軟件和硬件之間的約束性描述;
4)軟硬件的自監(jiān)督功能;
5)定期試驗功能。
V&V小組根據IEC 60880:2006 條款 6 Software requirements 的要求對軟件需求進行評審并根據系統(tǒng)需求說明書撰寫軟件確認測試規(guī)格書,作為后續(xù)軟件確認測試的基準。
該階段V&V產出見表1 的3.2.1軟件需求評審。
3.2.2 軟件設計評審
開發(fā)人員根據《核級廠用電保護裝置軟件需求規(guī)格書》為基準,采用自頂向下的模塊化設計方法,詳細設計核級廠用電保護裝置各功能模塊的實現(xiàn)方法,應明確如下內容:
1)軟件語言及開發(fā)工具的選擇;
2)軟件編碼規(guī)范的設計;
3)軟件各功能模塊的詳細設計(包括算法、數據結構、功能接口、約束條件等);
4)人機子系統(tǒng)和保護子系統(tǒng)功能之間的接口設計;
5)自監(jiān)督功能的設計;
6)防止共因故障的設計(包括多樣性和冗余的設計);
7)定期測試的設計;
8)預開發(fā)軟件的配置;
9)軟件的可修改性和可驗證性設計;
10)安裝和運行的軟件方面的設計。
V&V小組根據IEC 60880:2006條款7 Design and implementation 的要求對軟件設計過程進行評審,著重于軟件設計說明書與軟件需求說明書的一致性。根據軟件設計說明書撰寫軟件單元測試驗證規(guī)格書作為后續(xù)軟件單元測試驗證的基準,結合軟件需求說明書和軟件設計說明書撰寫集成測試驗證規(guī)格書作為后續(xù)軟件集成測試驗證的基準。
該階段V&V產出見表1 的3.2.2軟件設計評審。
3.3.1 代碼靜態(tài)驗證
軟件代碼靜態(tài)驗證主要借助自動測試工具和人工走查相結合的方式,以軟件設計評審環(huán)節(jié)產出的《核級廠用電保護裝置編程規(guī)范》為依據,對軟件代碼進行靜態(tài)驗證,以查找源代碼中可能存在的缺陷和錯誤[7]。
核級廠用電保護裝置軟件采用C語言實現(xiàn),《核級廠用電保護裝置編程規(guī)范》編寫主要依據汽車產業(yè)軟件可靠性協(xié)會(MISRA)提出的 C 語言開發(fā)標準MISRA-C: 2004,該標準的目是為了增進嵌入式軟件的的全安性、可靠性、可讀性以及可移植性 ,并廣泛應用于核電、航天、電信、國防、醫(yī)療設備、鐵路等系統(tǒng)的安全軟件領域[8]。
開發(fā)人員通過軟件編程實現(xiàn)《核級廠用電保護裝置軟件詳細設計說明書》中的全部要求,并將軟件全部源代碼提供給V&V小組進行代碼驗證,V&V小組依據《核級廠用電保護裝置編程規(guī)范》以及IEC 60880:2006 條款7.1.2 Implementation of new software in general-purpose languages 的要求,首先采用自動化測試工具,對核級廠用電保護裝置軟件進行初步驗證,并對自動測試工具產出的分析結果進行人工審核,然后對自動化測試工具無法監(jiān)測到的軟件魯棒性、可維護性以及可追溯性等安全要求,采用人工方式進行驗證;最終形成軟件代碼靜態(tài)驗證報告。
該階段V&V產出見表1 的3.3.1代碼靜態(tài)驗證。
3.3.2 單元測試驗證
核級廠用電保護裝置軟件單元測試驗證的目的是為了充分驗證軟件各子模塊的實現(xiàn)與軟件設計規(guī)格書規(guī)定的一致性,單元測試驗證為白盒測試,為了保證軟件各功能模塊行為在核電廠任一工況運行時行為的正確性,單元測試結果需要滿足入口覆蓋率、語句覆蓋率、路徑覆蓋率、MC/DC覆蓋率(修正條件判定覆蓋)四個覆蓋率分別達到100%的要求。
V&V小組依據軟件設計評審環(huán)節(jié)產出的《核級廠用電保護裝置軟件單元測試驗證規(guī)格書》以及 IEC 60880:2006 條款8.2.3 Implementation verification為依據執(zhí)行單元測試。若在單元測試后對源程序的部分進行修改,則需進行回歸測試,遇到不滿足測試目標的需寫明違背理由,并記錄到測試報告中。
該階段V&V產出見表1的3.3.2單元測試驗證。
3.3.3 集成測試驗證
核級廠用電保護裝置系統(tǒng)集成是將經驗證的硬件和軟件模塊合成完整系統(tǒng)的過程,軟件集成驗證是為了充分驗證核級廠用電保護裝置軟件滿足軟件設計說明書以及軟件需求說明書的功能要求。軟件集成驗證是白盒測試,著重于檢驗軟件各模塊之間接口、軟件和硬件的接口以及模塊本身的功能。為證明所有模塊能夠正確地協(xié)同運行,執(zhí)行預期功能,集成驗證結果需要滿足入口覆蓋率、語句覆蓋率、路徑覆蓋率三個覆蓋率分別達到100%的要求。
V&V小組依據軟件設計評審環(huán)節(jié)產出的《核級廠用電保護裝置軟件集成測試驗證規(guī)格書》以及IEC 60880:2006 條款 9 Software aspects of system integration為依據執(zhí)行集成測試,形成正式的測試輸入與結果說明,并分析和記錄軟件集成測試所到達的程度,包括入口覆蓋率、語句覆蓋率和路徑覆蓋率。 分析方法包括自動化工具執(zhí)行集成測試、人工審查和檢查。
該階段V&V產出見表1 的3.3.3集成測試驗證。
核級廠用電保護裝置系統(tǒng)確認要求使用裝置在正常運行、預期運行時間和事故工況中的靜態(tài)與動態(tài)仿真的輸入信號對最終軟件的所有功能進行測試,明確裝置功能與系統(tǒng)需求說明書相一致,系統(tǒng)確認是黑盒測試,重點測試核級廠用電保護裝置的功能、邊界、性能、用戶界面、安全性、安裝/拆卸等。
V&V小組依據軟件需求評審環(huán)節(jié)產出的《核級廠用電保護裝置確認測試規(guī)格書》以及IEC 60880:2006 條款 10 Software aspects of system validation為依據,采用系統(tǒng)的方法并輔以統(tǒng)計方法執(zhí)行系統(tǒng)確認測試,驗證核級廠用電保護裝置功能與需求說明書的一致性。
該階段V&V產出見表1 的3.4系統(tǒng)確認。
核電廠執(zhí)行安全功能的設備軟件必須經過嚴格的V&V活動,以保證軟件運行的可靠性和安全性,確保裝置最終產品與用戶要求的一致性,本文主要依托核級廠用電保護裝置軟件安全開發(fā)和V&V整個過程,對核電廠安全軟件的開發(fā)、V&V流程的方法,要求及產出等進行了系統(tǒng)的總結,期望為后續(xù)核電廠國產化設備安全軟件的開發(fā)和V&V活動提供有益參考。