張恩博,趙立東,劉 標,徐 朋,宮成軍
(1.三門核電有限公司,浙江 三門 317112;2.環境保護部華東核與輻射安全監督站,上海 200233;3.福建福清核電有限公司,福建 福清 350318)
在核電領域,全數字化儀控平臺為電廠的非干預保護、自動控制、人機交互等方面提供了極大便利,與此同時也來了新的風險和挑戰。為提高安全性和可靠性,數字化儀控系統軟件的開發過程都要經過確認和獨立驗證(validation and verification,V&V),各設計單位、系統供方、監管方針對軟件的獨立驗證與確認(IV&V)的相關研究也不斷深入。軟件的V&V活動應伴隨軟件的采購、供貨、開發、運行、維護等完整生命周期。目前,核電行業相關研究主要集中在開發階段。涉及臨時或永久的小范圍修改的運行、維護階段,關注較少。本文立足核電廠數字化儀控系統的運行和維護階段,探索適應軟件修改V&V活動的流程和方法,同時從核安全監管角度提出關注點建議,以期為后續相關研究及具體的V&V實踐活動提供借鑒。
儀控系統修改的目的是消除或避免系統故障。儀控系統的硬件故障一般源于設計或制造中的錯誤,或是使用過程中的磨損、老化以及環境改變。軟件故障不存在磨損和老化因素,主要由設計或開發中的錯誤以及使用過程中的環境改變而引起,也是典型的運行核電廠儀控系統軟件的故障來源,軟件故障本身具有隱蔽性[1]。
針對不同的修改類型和范圍,對運行核電廠的軟件修改可進行如下分類[2]。
第一類,因工作需要實施的臨時控制變更。
第二類,因技術改造等需要實施的永久性變更。
第三類,供方軟件配置錯誤或組態邏輯/參數與現場實際要求不一致而產生的修改。
第四類,供方新發布的軟件,現場需要實施的增量式或覆蓋式升版。
數字化儀控系統的軟件V&V的主要任務是查找可能存在的缺陷,評估軟件潛在的風險與危害,并提供解決方案以保證產品質量。重要的技術改造以及廠家發布的增量或覆蓋式修改必須要有針對性的V&V,以保證軟件功能的正確性和安全性。其他幾類變更或修改同樣需要質量管控。雖然無需像初始軟件開發使用完整的V&V流程,但仍應采用某一種或幾種V&V活動子項來進行變更內容的驗證和確認。
軟件V&V的具體階段可劃分為:驗證儀控系統需求到儀控系統設計,儀控系統設計到軟件需求分析,軟件需求分析到軟件設計,軟件設計到軟件實現,軟件實現到軟件集成。通過一系列軟件V&V活動,確認各階段的需求是否均已得到滿足,驗證軟件開發是否按照設計流程和要求開展,從用戶的角度確認軟件是否符合系統設計的真正需求[3]。
典型驗證和確認流程(HAD 102-16)如圖1所示。

圖1 典型驗證和確認流程(HAD 102-16)
從V&V活動的流程角度,針對運行核電廠不同類型的軟件修改活動,應選取不同的V&V活動進行適配,確保軟件修改的安全性。
第一類和第二類軟件修改。這兩類軟件修改主要來源于工藝系統需求,軟件修改的量并不大,只涉及部分機柜和部分控制邏輯,對儀控系統沒有全局性影響。對于這些軟件修改,需要把控如下關鍵步驟:工藝系統需求→儀控系統需求→軟件需求。因此,主要采取的是需求V&V、實現V&V和測試V&V活動。活動執行應當以營運單位為主體,應當包括但不限于運行技術人員、工藝需求提出人員、儀控專業執行者等。除采取典型V&V流程以外,還需充分分析變更部分同其他系統的接口影響,以及軟件刪除和下裝過程中帶來的控制狀態的改變,避免在執行軟件變更的時候引入額外風險[4]。
第三類軟件修改。這類修改對儀控系統的邏輯架構以及大部分參數配置無影響,因此軟件原有V&V的有效性得到延續。針對這類修改,必須考慮修改引入的對軟件整體的危險與挑戰,尤其關注邏輯觸發條件的改變。需要關注軟件執行的正確性,即軟件對工藝及儀控需求實現的符合性驗證。在這一類的軟件修改中,如涉及邏輯架構的偏差,則應當參照第一、二類軟件修改的V&V活動方式進行考慮。此類軟件修改的活動主體仍應當以營運單位為主體,但要將工藝設計方、儀控軟件供方協同在V&V組織機構內,以便確認修改方案的完整性和有效性。
第四類軟件修改。這類軟件修改變動的范圍很大,對儀控系統的整體邏輯架構和功能完整性有很大影響,多數情況下軟件要整體重新安裝,因此需要按照新開發儀控系統軟件的要求執行完整的軟件V&V流程。這類軟件修改的V&V活動主體一般應該是軟件的供方。如果條件成熟,也可以采用第三方獨立驗證方式。但作為對核安全負有全面責任的核電廠營運單位應當深度參與V&V活動,確保V&V活動能夠全面準確的排查出儀控軟件安全隱患。同樣,這類修改的執行和V&V需充分分析變更部分同其他系統的接口影響,以及軟件刪除和下裝過程中帶來的控制狀態的改變,避免在執行軟件變更的時候引入額外風險。
電氣和電子工程師協會標準(IEEE 1012)給出了典型的軟件測試和驗證方法[5-6],包括追溯分析、文檔分析與評價、設計圖對比分析、靜態分析、代碼走查、白盒測試、黑盒測試等。針對運行核電廠不同的軟件修改類型,所使用的V&V方法也可以進行適當優化和調整,提高V&V活動的針對性和實效性。
運行核電廠DCS軟件修改V&V方法的選擇并不嚴格對應前文對軟件修改的分類,而是更多地針對軟件修改的內容和形式。
追溯分析、文檔分析與評價等手段更多的是用于對軟件開發的各級需求文檔的符合性驗證。對于大部分的運行核電廠DCS軟件修改,并不一定存在嚴格意義上的各級需求文件,而是在已經具備的很明確的修改需求基礎上直接生成修改方案,因此可以適當開展追溯分析、文檔分析與評價,不必專門去組織這類工作或開發相應的文件。對于修改需求較多或者修改內容層次復雜、關聯邏輯較多的情況,可以采取較為正式的追溯分析和文檔分析與評價,以確保各層級修改需求及開發文檔的正確連貫和范圍準確,剔除不必要的修改源項,也保證修改內容的完整性。
對比分析目前在運行核電廠DCS軟件修改的審查中廣泛應用。除了前文分類中的第三類修改,其他各類修改,不論是圖形化輸入還是代碼輸入的DCS平臺,在修改編輯之前都會優先修改邏輯圖或模擬圖,在此階段執行設計圖對比分析非常有針對性,效果非常顯著。
靜態分析和代碼走查方法針對的是已經成型的軟件修改代碼或組態,是一種對代碼直接檢查的必要方法。執行過程可采用標準化的軟件分析方法、走查工具,在運行核電廠的各類軟件修改中,均需要不同程度的靜態分析和代碼走查;在實際運用中,也可不依賴自動化的工具,采用人工方法沿程序和代碼進行檢查,以找出代碼中存在的各類錯誤[7]。
黑盒測試是指將程序看作是內部不可見的黑盒,不考慮內部/編碼結構和語句路徑,通過專用工具從程序輸入與輸出間的關系檢查測試結果是否滿足預期要求。此方法依靠軟件設計說明書中的功能來設計測試用例,以檢驗軟件的功能完整性。測試用例設計應具有代表性,覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的及極限的輸人數據和期望輸出。目前運行核電廠的軟件修改驗證多采用黑盒測試的方式。這種方式能夠最貼近實際運行環境,能夠直觀給出軟件修改功能完好性的評價。但黑盒測試并不能完整覆蓋全部的軟件結構和語句,尤其對多余語句和其他非預期影響的挖掘能力不足,因此,僅僅執行黑盒測試是不夠的。
白盒測試是通過專用工具設計測試用例分析程序內部邏輯/編碼結構,覆蓋程序的每個語句、每個條件分支、每個控制路徑,檢驗其是否存在缺陷或錯誤。此方法根據軟件內部構造設計測試用例,檢驗代碼測試的完整性。未來運行核電廠可以在DCS系統采購時考慮增加配套V&V工具的開發與服務,在技術上提高運行核電廠對軟件變更質量管控水平[8-9]。
目前,大部分運行電廠DCS系統的V&V活動是由DCS廠家主導執行,一部分小修改的V&V是由運行電廠自己完成。這種局面一是因為DCS供方在售賣系統和設備時的利益考慮,另外也是由于核電廠自身技術能力限制,同時也有核電運營者對數字化系統軟件V&V重要性認識不足的因素。核電廠營運單位對核安全負有全面責任,對運行機組的核安全監管,主要的著力點是核電廠營運單位,在運行機組軟件V&V活動方面,應加強以下幾個方面的監管。
第一,要形成明確的V&V質保要求和相應的管理程序、技術程序,對數字化儀控系統的軟件修改進行有效管控[10-11]。管理和技術程序應包括基本的V&V流程、V&V程序開發方法(包括典型方法、測試用例等)。應當形成一套完整的廠內V&V管理體系,并由專業人員和質保人員對程序進行不定期的修訂和升版,保持廠內V&V管理體系的有效性和活力。在建立程序體系過程中,電廠可參考核安全導則(HAD102/16)中的第15節“交付后的修改”。該章節對運行核電廠安全級軟件修改的V&V提供了較明確的要求和指導原則。
第二,核電廠應具備充足的V&V技術人員。雖然軟件開發流程和V&V活動過程都是類似的,但不同的DCS平臺所使用的操作系統、開發工具、測試環境都有各式各類的差別。執行V&V活動的人員應充分掌握本電廠DCS軟件的開發方法、各應用軟件的使用方法以及V&V工具的使用方法等,同時應當熟悉DCS中的工藝控制邏輯及各變量對電廠狀態的影響,以便分析和弄清V&V活動的風險預案和隔離方法。因此,電廠應當組織和培養相關專業人才隊伍,保證V&V活動有充足、有效的人力保證。
第三,V&V執行工具。電廠應配備適用的V&V活動工具和模擬平臺,用于支持V&V程序、測試用例的開發,支持驗證的模擬、人員的培訓等活動。沒有配套的V&V執行工具,電廠無法真正有效實施IV&V工作。這些工具可以從DCS的供方處進行定制和采購,也可以委托獨立的第三方進行開發。目前,國外已有一些專門的公司負責開發獨立的V&V執行工具,國內也有公司和院所在做相關的研究和開發。這部分工作也是需要電廠的關注與投入以及監管方的推動的[11]。
運行核電廠軟件V&V活動對于保障電廠核安全風險可控是十分重要的,從監管角度看,要對核電廠牽頭組織的這部分工作給予足夠的關注,并要從技術、管理、法規等多方面角度對其進行管控,切實保障核電機組不受軟件問題的侵害。本文立足于數字化儀控系統的V&V活動這一特定技術范疇,側重于軟件交付后的電廠運行階段,結合典型的V&V活動流程和V&V方法,對數字化儀控系統軟件修改的V&V工作進行了探討。同時,結合目前運行核電廠數字化儀控系統工作的實際開展情況,對軟件V&V工作的監管提出建議,為后續的相關研究提供了一些思路和參考。