丁義行 谷鵬飛 毛從吉 王升超
(環境保護部核設施安全監管司1,北京 100035;深圳中廣核工程設計有限公司2,廣東 深圳 518172;環境保護部核與輻射安全中心3,北京 100082)
從20 世紀70 年代開始,數字化儀控系統逐漸替代傳統的模擬儀控系統,數字化儀控系統不僅在常規工業領域得到了廣泛應用,在核電廠安全級儀控系統中應用數字計算機亦有近10 年的歷史。數字化儀控系統是以計算機、網絡通信為基礎的分布式控制系統,引入和開發了面向狀態的診斷技術、符合人因工程要求的人機界面和先進的主控室等現代技術,還采用了系統化的控制室功能分析和分配等設計技術以及面向核電廠運行安全狀態的操作員支持系統等。數字化儀控系統主要具有以下優點:①控制精度高,運算能力強;②數據傳輸可靠性高;③易于擴展和配置;④便于維護和管理;⑤設備功能集成度高。目前,核電廠安全級儀控系統中廣泛采用軟件控制邏輯,在現場儀表和執行器中采用內置微處理器,通過軟件實現數字化測量和控制也成為一種趨勢。
數字化儀控系統的廣泛應用大大提高了核電廠的運行和維護經濟性,但是與模擬儀控系統相比,數字化儀控系統設備也給核電廠的安全運行帶來了一些新的風險。例如數字化硬件設備的抗干擾問題以及軟件共模故障等方面的問題,尤其是軟件的質量和可靠性問題已成為數字化儀控系統在核電廠廣泛應用過程中必須要解決的問題。
核安全法規HAF 102(2004)對基于計算機的系統在安全重要系統中的應用以及安全級軟件設計開發方面作了相關要求,其包含了對應標準的制定實施和為了保證軟件質量和可靠性所應采取的技術手段。導則HAD 102/16(2004)是核電廠基于計算機的安全重要系統軟件在生命周期的各個階段。為了安全論證提供收集證據和編制文件的指導性標準文件,其通過技術考慮、安全管理要求的應用和項目計劃來為系統軟件的開發奠定基礎;分別從計算機系統需求和設計、軟件的需求設計和實現兩個方面詳細介紹了系統設計和軟件開發所應遵循的總則性要求,并提供了相關建議。核安全法規HAF 003(1991)及對應導則HAD 003/06(1986)則主要對安全級物項的質量保證作了相關要求。由于我國與核電廠安全級數字化儀控系統軟件相關的標準主要是參考國際上核電發達國家(如美國)的標準所制定,比如GB/T 13629(2008)就是參考美國IEEE 7 -4.3.2(2003)轉化而來,因此,根據核安全法規導則對核電廠安全級數字化儀控系統軟件設計開發所作出的要求,主要對國際上或其他發達國家與安全級數字化儀控系統軟件的相關標準及導則進行研究,進而對比分析了與軟件生命周期相關的標準及導則。此外,還對貫穿于軟件全生命周期、能有效保證軟件安全性和可靠性的V&V 活動的相關標準及導則進行了較為詳細的介紹,為安全級軟件執行體系建立提供參考。本文對核電廠安全級數字化儀控系統軟件相關的標準研究脈絡如圖1 所示。

圖1 安全級數字化儀控系統軟件相關標準Fig.1 Software-related standards for safety level digitized I&C systems
核電廠安全級數字化儀控系統與傳統的模擬儀控系統最根本的差異就在于軟件的使用,安全級數字化儀控系統執行其安全功能所需要的軟件稱為安全級軟件(1E 級)。安全級數字化儀控系統執行其安全功能的可靠性依賴于安全級軟件的可靠性。
核電廠安全級數字化儀控系統中所包含的軟件,按照其所執行的功能可以分為系統軟件和應用軟件。系統軟件是指儀控系統計算機或設備中運行的、用于支持計算機系統及相關應用軟件(程序)運行和維護的軟件,應用軟件是指被設計來滿足用戶特定需求的軟件[1]。
傳統的儀控系統硬件可以通過試驗、檢查等手段驗證其設計、質量和可靠性,而數字化儀控系統軟件的可靠性和安全性主要依靠制定嚴密、完整的軟件開發計劃及過程管理大綱,嚴格按照經批準的管理程序實施軟件開發過程和軟件V&V 過程來保證。在R. G.1.152(2006)中就明確提出,為保證安全級系統軟件質量,必須具備質量保證計劃以及開展軟件V&V[2]。軟件V&V 是貫穿于軟件生命周期全過程的、用于確認軟件生命周期各個階段的活動輸出滿足此活動的要求、系統可以執行其預期的功能且滿足用戶需求的一組系統化、工程化的活動[1]。
核電廠安全級數字化儀控系統的軟件V&V 是保證安全級數字化儀控系統安全性和可靠性的必要環節,通過V&V 全流程驗證的軟件才能確保安全級數字化儀控系統的安全性和可靠性,安全級數字化儀控系統才能被允許應用到核電廠工程。目前,美國、法國等核電發達國家,已根據各自的核電技術特點、工業發展水平、理論研究情況、實施經驗積累等,建立起了適合其國家核電建設過程中安全級數字化儀控系統軟件V&V 活動的法規標準;國際原子能機構及相關標準組織在各國法規標準研究的基礎上,也形成了一系列軟件V&V 相關的法規標準體系。而我國與安全級數字化儀控系統軟件相關的法規標準建立時間較晚,主要參考上述國家組織的標準轉化建立,但體系不統一,內容還不夠完善。因此,研究國際上成熟完善的相關標準,建立安全級數字化保護儀控系統軟件開發和V&V技術標準體系架構和實施方法、制定適合我國國情的安全級數字化儀控系統軟件的安全審查與評價規范,是推進我國核安全級DCS 產品自主研發工作和打破國外對我國在役和新建核電廠安全級數字化儀控系統(DCS)產品壟斷的關鍵。
IEC 12207(1995)具有很大的適用性,其在很高層次上描述了軟件的生命周期,且具體敘述了軟件生命周期所必須包含的最小執行集,但沒有詳細闡明在軟件生命周期的各個階段該如何去開展相應的任務和活動。
在IEEE 7 -4.3.2(2010)和IEEE 1012(2004)中,均引述了IEC 12207(1995)中所描述的軟件生命周期,如圖2 所示。
其具體分為采購過程、供貨過程、開發過程(該過程包括概念階段、需求階段、設計階段、實現階段、集成測試階段、安裝調試階段)、運行過程、維護過程、組織過程和其他支持性過程(如文檔編制、配置管理、質量保證、聯合評審等)[3],并針對上述軟件生命周期過程提出了軟件生命周期活動和任務的執行準則。其中,管理過程及相關的管理V&V 活動和任務貫穿于軟件整個生命周期,在軟件生命周期的各個階段均需完成相關的V&V 活動和任務。這些V&V 活動和任務具體該如何執行以及執行過程中的一些關注項,將在下面章節中提到。

圖2 IEC 12207(1995)軟件生命周期過程Fig.2 The software life cycle process in IEC 12207(1995)
此外,在IEEE 1074(1995)中描述了開發軟件的生命周期過程,并提供了構成開發軟件生命周期過程的系列活動。美國核管會通過R. G. 1.173(1997)認可了IEEE 1074(1995)中所描述的軟件生命周期過程的開發方法和過程,但是在R.G. 1.173(1997)中也特別指出美國核管會不認可IEEE 1074(1995)中的附件。附件分別介紹了4 種軟件生命周期過程的籌劃、軟件項目管理的定制模板以及過程之間的相互關系[4]。
在R.G. 1.173(1997)中,美國核管會關于安全級軟件的生命周期過程提出了若干要求,主要包括:①按照IEEE 1074(1995)進行軟件生命周期過程開發時,所要求的輸入信息、生命周期活動和輸出信息描述中應該說明適用的法規、設計基準和導則;②按照IEEE 1074(1995)進行軟件生命周期過程開發時,應該執行該標準中所有規定執行的活動;③應該在軟件生命周期的各個階段有計劃、有記錄地執行軟件安全性分析[5]。
在相關的軟件工程標準和文獻中,提出了多種軟件生命周期模型,典型模型有瀑布模型和螺旋型模型。瀑布模型將軟件生命周期過程的各階段要執行的活動任務通過一定的順序連接,形成如同瀑布水流的臺階式步驟流程,上一步驟作為下一步驟的輸入,這就使得相鄰兩個步驟流程聯系緊密。該模型用工序將問題簡化,將軟件的功能的實現與設計分開,便于分工協作,即采用結構化的分析與設計方法將邏輯實現與物理實現分開。螺旋型模型是一種演化軟件開發過程模型,它兼顧了快速原型迭代的特征以及瀑布模型的系統化與嚴格監督。該模型的最大特點在于引入了其他模型不具備的風險分析,使軟件在無法排除重大風險分析時有機會停止,以減少損失。同時,在每個迭代階段構建原型是螺旋模型用以減小風險的途徑。需要特別說明的是,在R.G. 1.173(1997)和IEEE 1074(1995)中均沒有要求或推薦某種特定的軟件生命周期模型用于開發安全級軟件的生命周期。在NUREG 0800(2007)-BTP14 的詳細技術見解中,美國核管會強調,軟件開發方應該選擇適當的軟件生命周期模型,安全級軟件的開發過程應該按照事先確定的軟件生命周期模型執行各項活動和任務[6]。盡管基于不同模型的安全級軟件生命周期在生命周期過程中的活動定義和活動執行的順序方面有所差異,但是不同生命周期中所進行的活動類別是基本一致的。這些活動類別包括概念活動、需求活動、設計活動、實現活動、集成測試活動、安裝活動、調試活動以及運行和維護活動等。
對于安全級軟件生命周期開發的適用標準,推薦使用IEEE 1074(1995)中所描述的方法,同時還應當滿足美國核管會R. G. 1.173(1997)中的相關規定。另外,鑒于IEEE 7 -4.3.2(2010)和IEEE 1012(2004)中均引述了IEC 12207(1995)中所描述的軟件生命周期,因此推薦采用該軟件生命周期的概念。即軟件生命周期分為采購過程、供貨過程、開發過程(該過程包括概念階段、需求階段、設計階段、實現階段、集成測試階段、安裝調試階段)、運行維護過程以及管理等支持性過程,在各個生命周期過程需完成IEEE 1012(2004)所規定的V&V 活動和任務。
在軟件生命周期的各個階段,都有可能出現錯誤或缺陷。與隨機性的硬件失效不同,軟件的錯誤和缺陷可能由人為錯誤、工具故障或系統性的設計缺陷等因素造成。目前,尚沒有定量的、確定性的方法可以用于衡量和判斷軟件的可靠性。因此,衡量軟件可靠性的方法注重于證明在軟件開發各個階段的輸出滿足輸入的要求;在各個階段沒有引入軟件錯誤且最終軟件中的錯誤極少,以保證最終系統的故障率是可接受的。軟件V&V 過程為上述證明產生可審查、可追溯的證據。
目前,國際核工業界實施核電廠安全級軟件的V&V 過程和活動所遵循的標準體系主要有美國的IEEE 系列標準、法國的RCC-E 系列規范和國際電工協會的IEC 系列標準。在軟件設計和研發過程中,安全級數字化儀控系統軟件相關標準研究主要是:①確定在安全級軟件生命周期過程中,軟件開發階段V&V任務和活動所遵循的標準;②明確各個標準之間的層次關系,建立安全級軟件V&V 的標準體系;③為安全級軟件開發過程中的V&V 任務過程指導書的編制建立標準體系基礎。
對于安全級數字化儀控系統軟件在生命周期開發階段的V&V 任務和活動,IEEE 1012(2004)[7]對其整個實施過程進行了詳細規定,包括整個軟件生命周期中各項V&V 任務和活動的內容、范圍、方法及文檔規范等,具有很高的可實施性。值得注意的是,IEEE 1012(2004)并非專門針對核電領域,如果安全級數字化儀控系統軟件的設計開發僅滿足該行業標準,并不能保證一定滿足相關法規中對安全級數字化儀控系統軟件的所有要求。為了更好地幫助核電領域的軟件開發者或相關用戶理解和運用該標準,美國核管會出版了R.G. 1.168(2004)對該標準進行了指導說明[8]。IEEE 1012(2004)以及R. G. 1.168(2004)中對IEEE 1012(2004)的指導說明一起構成了針對核電廠安全級儀控系統軟件的V&V 活動的標準,并完全符合美國核電法規以及質量保證標準。
IEC 60880(2006)是核電廠對基于計算機的安全重要儀器和控制系統執行A 類功能的軟件標準[9]。該標準覆蓋了所有最重要的軟件安全問題,并詳細規定了核電廠基于計算機的儀器和控制系統所要求的相關軟件。為了確保這些設備和系統的高可靠性,該標準描述了軟件產生和文件化的每個步驟,包括要求規范、設計、執行、鑒定、確認和操作等,為軟件V&V 過程產生可證明的、可審查的和可追溯的證據提供有力參考。
安全級數字化儀控系統軟件V&V 任務和活動的開展需要進行過程策劃,這就需要在軟件開發的早期階段根據軟件完整性需求指定軟件的完整性級別。軟件完整性級別基于軟件預期用途及關鍵或非關鍵的系統應用,展示了軟件不同的關鍵性[10]。安全級數字化儀控系統軟件應該按最高的完整性等級4 級(A 類)來開展V&V 活動和任務,依據選定的軟件完整性級別對軟件開發過程(包括概念階段、需求階段、設計階段、實現階段、集成測試階段、安裝調試階段)的各個子階段執行最低限度的V&V 活動和任務,才能確保軟件開發滿足相應的安全級軟件要求、并遵循其產品的質量保證體系要求。同時,軟件生命周期開發階段的各個子階段在進行具體的V&V 活動和任務時,由于各子階段的V&V 重點不同,為了滿足軟件完整性級別需求,需要參考和遵循的標準也會有適應性的不同,如在實現階段會涉及到代碼測試,該階段可借鑒參考航天和軍工等比較成熟的測試經驗和所遵循的標準,從而滿足核電廠安全級儀控系統軟件的V&V 要求。
依據我國核安全法規及相關導則對核電廠安全級儀控系統軟件設計開發所做的要求,參考比對了國際上安全級儀控系統軟件相關的完整成熟的標準體系,對安全級數字化儀控系統軟件、軟件生命周期以及軟件開發階段的V&V 活動所宜遵循的標準進行了分析。重點指明軟件V&V 是安全級軟件設計開發過程中能有效地提高軟件可靠性的方法,并就安全級軟件在設計開發過程中如何執行及如何審查提出了相關建議,以期為后續核電廠安全級數字化儀控系統軟件的設計審查提供技術參考。
[1] Nuclear Power Engineering Committee of the IEEE Power Engineering Committee. IEEE 7 - 4. 3. 2 IEEE standard criteria for digital computers in safety systems of nuclear power generating stations[S].New York:Institute of Electrical and Electronics Engineers,2010.
[2]Office of Nuclear Regulatory Research. R.G. 1.152 Criteria for use of computers in safety systems of nuclear power plants [S].Washington D.C. U.S. Nuclear Regulatory Commission,2006.
[3]Joint Technical Committee ISO/IEC JTC 1,Information technology,Subcommittee SC 7,Software engineering. IEC 12207 Software Life Cycle Processes[S]. Switzerland:International Electrotechnical Commission,1995.
[4] Software Engineering Standards Committee of the IEEE Computer Society. IEEE 1074 IEEE standard for developing software life cycle processes[S]. New York:Institute of Electrical and Electronics Engineers,1997.
[5] Office of Nuclear Regulatory Research. R. G. 1. 173 Developing software life cycle processes for digital computer software used in safety systems of nuclear power plants[S]. Washington D.C.:U.S. Nuclear Regulatory Commission,1997.
[6] Office of Nuclear Reactor Regulation. NUREG -0800 - chpt.7,Appendix 7 -A,Branch Technical Position HICB -14. Guidance on software reviews for digital computer-based instrumentation and control systems [Z]. Washington, D. C.: U. S. Nuclear Regulatory Commission,2007.
[7] Software Engineering Standards Committee of the IEEE Computer Society. IEEE 1012 IEEE standard for software verification and validation[S]. New York:Institute of Electrical and Electronics Engineers,2004.
[8] Office of Nuclear Regulatory Research. R. G.1.168 Verification,validation,reviews,and audits for digital computer software used in safety systems of nuclear power plants[S]. Washington D.C.:U.S. Nuclear Regulatory Commission,2004.
[9]International Electrotechnical Commission. IEC 60880 Nuclear power plants- instrumentation and control systems important to safety -software aspects for computer -based systems performing category A functions [S]. Switzerland: International Electrotechnical Commission,2006.
[10]中國人民解放軍總裝備部電子信息基礎部. GJB 5234 軍用軟件驗證和確認[S]. 北京:中國人民解放軍總裝備部,2004.