王少華,馮素梅,陳日罡,張志良
(中國核電工程有限公司,北京 100840)
由于目前市面上針對核電廠安全重要儀控系統(tǒng)開發(fā)的軟件較少,核電領域的用戶越來越多地關注基于工業(yè)標準IEC 61508-3[1]開發(fā)的較為成熟的軟件。但由于這類軟件開發(fā)和鑒定過程并不是嚴格依據(jù)核電質保流程[2-3],其用于執(zhí)行A類功能的適用性是一個值得考慮的問題。本文通過對IEC 61508-3與IEC 60880—2009[4]這兩個標準的深入研究,并參考標準NB/T 20054—2011[5]和GB/T 20438—2017[6]進行對比分析,總結出在核電領域應用中,IEC 61508-3沒有達到IEC 60880要求的方面,或者沒有足夠詳細、足夠明確要求的方面。
針對不同安全完整性等級(safety integrity level,SIL)的軟件(依據(jù)標準IEC 61508-4,SIL是針對的整體安全功能,軟件自身沒有SIL說法。為了便于分析本文用SIL n表示軟件的系統(tǒng)性能力)[7],IEC 61508-3標準針對軟件生命周期所有活動提出軟件需要滿足的基本屬性,提供實現(xiàn)這些軟件屬性的推薦技術或措施,并且要求在設計開發(fā)之前應選擇合適的技術或措施并進行論證,以保證軟件屬性得到有效的滿足。因此,為滿足軟件的系統(tǒng)性能力,可能有不同的組合技術或者措施。本文不能夠分析所有的方案,僅針對IEC 61508-3中對軟件的通用要求以及對SIL3等級強烈推薦的技術要求,并將其與IEC 60880中對執(zhí)行A類功能的軟件要求進行對比分析;依據(jù)對比分析結果,歸納總結出通過SIL3等級認證的軟件需要進一步嚴格要求的內(nèi)容,從而應用于執(zhí)行A類功能的系統(tǒng)。
電氣/電子/可編程電子安全有關系統(tǒng)(electrical/electronic/programmable electronic safety-related systems,E/E/PES)的功能安全(IEC 61508)是IEC/TC 65下分技術委員會SC65A“系統(tǒng)方面”的標準。該標準主要針對以E/E/PES組件構成的、用于執(zhí)行安全功能的系統(tǒng)安全生命周期的所有活動,提出通用的方法,是一般工業(yè)級標準?;谶@個基本原則,各應用領域根據(jù)特定的應用、潛在風險和危險等因素,確定各領域特有的安全要求和措施,制定行業(yè)標準,如核電方面的IEC 61513。IEC 61513遵守國際原子能機構(international atomic energy,agency,IAEA)體系下的法規(guī)標準要求,結合IEC 61508的基本框架,給出了核動力廠安全重要儀表與控制(instrumentation & control,I&C)系統(tǒng)的總體要求。它是IAEA有關核動力廠安全重要I&C系統(tǒng)的安全文件與IEC相應標準之間的接口,將其他IEC核電I&C標準體系與標準法規(guī)緊密聯(lián)系在一起[8-10]。
IEC 61508標準共有7部分。其中,IEC 61508-3是關于軟件要求方面的標準。該標準提供安全相關軟件開發(fā)過程中各階段的要求和需要開展的活動,包括為避免和控制失效所采取的技術和措施,以及軟件確認、維護和修改、支持工具等方面的要求。IEC 60880(儀表和控制系統(tǒng)中執(zhí)行A類功能的軟件部分的需求)是被IEC 61513直接引用的TC45下分技術委員會SC45A(核反應堆儀器)的二級標準,規(guī)定了核電廠安全重要儀表和控制系統(tǒng)執(zhí)行A類功能的計算機軟件的要求,涉及軟件的生成和文檔化過程中的每個階段,包括需求、設計和實現(xiàn)、驗證和確認、運行和維護、支持工具和軟件共因失效等方面的要求。它與IEC 62138、IEC 62566一起組成了各類軟件的要求,對應于核電應用領域的IEC 61508-3。
標準所屬組織結構及對應關系如圖1所示。圖1中,陰影部分是本文所重點分析的標準。
圖1 標準所屬組織結構及對應關系圖 Fig.1 Organizational structure of the standard and corresponding diagram
由于IEC 61508標準并非僅僅面向某個特定應用領域而制定,其更具有一般性:針對軟件開發(fā)活動的要求,僅闡述了需要滿足的通用屬性;對不同的SIL等級,提供了對應的推薦技術或措施,實現(xiàn)要求軟件屬性的有效性取決于所選擇的方案。因此,本文選取滿足SIL3等級要求的軟件,且假定開發(fā)活動充分考慮了標準所強烈推薦的技術和措施,作為本文的分析對象。而IEC 60880明確規(guī)定是應用于核安全重要儀控系統(tǒng)的執(zhí)行A類功能的軟件,對核電領域具體的危險和風險考慮得較為具體,所采取的避免措施更有針對性。因此,該標準中的要求更具有行業(yè)特性,且對技術或措施的要求更確定。此外,IEC 61508-3并非孤立的軟件要求標準。它基于IEC 61508-1[11]和IEC 61508-2[12]標準,且多處引用IEC 61508的其他部分。因此,對于IEC 61508的標準的理解,應充分結合其他部分的要求。鑒于以上因素,本文并非針對這兩個標準作逐字逐句的對應分析,而是結合實際工程經(jīng)驗,對標準作充分的消化理解,以IEC 60880為基準文件,按照軟件生命周期所開展的活動分類進行對比。本文主要分析以下幾個方面:軟件項目一般要求、軟件需求確定、軟件設計和開發(fā)過程的要求、軟件驗證和確認、系統(tǒng)確認的軟件方面的要求、軟件修改的要求、支持工具的要求、預防軟件共因失效的措施、預開發(fā)軟件的鑒定要求。
利用第2節(jié)所述的分析方法,對標準進行綜合分析。
軟件項目的一般要求,主要包括生命周期、軟件類型、項目管理、質保、配置管理和安全防范的要求。這些要求貫穿于整個軟件生命周期,是由具體活動保證的,IEC 61508-3以及IEC 61508-1對這方面的要求沒有本質的區(qū)別。針對安裝與運行的軟件要求,以及對因軟件引起共因故障的防御,標準中沒有明確具體的要求。因此,需要遵守IEC 60880的全部要求。以上這些方面的分析在本文中不再進行討論。本文僅針對IEC 61508不能夠完全覆蓋的、或者要求不夠詳盡、不夠具體的方面展開討論,具體分析如下。
在軟件需求方面,IEC 61508-3在運行期間能手動修改的軟件參數(shù)、軟硬件之間的約束、自監(jiān)督和特殊工況的影響等方面的要求,沒有IEC 60880中的要求全面、具體。
軟件需求需要額外重點考慮的要求如表1所示。
表1 軟件需求需要額外重點考慮的要求 Tab.1 Requirements that require additional emphasis in software requirements
在此階段,與IEC 60880相比,IEC 61508-3在通信方面缺少總體性能要求、獨立性要求、確定性要求、數(shù)據(jù)傳輸完整性要求、接口要求以及冗余設計要求。
為保證設計正確的滿足需求、避免因設計錯誤引起系統(tǒng)性失效,應強制采取自上而下的方法,對操作系統(tǒng)充分的驗證;為保護安全信息,應對存儲內(nèi)容采取重點保護措施。
IEC 61508-3未明確編碼規(guī)則,僅指出應遵守應用領域的編碼標準。因此,應驗證所使用的編碼標準和編碼規(guī)則是否滿足IEC 60880的要求。對預開發(fā)軟件的配置,缺少可追溯性和可維護性的要求。此外,針對面向應用的語言的新軟件的設計和開發(fā)、時間性能以及自動代碼生成,IEC 61508-3并未提出具體的要求。
軟件設計及實現(xiàn)所需額外重點考慮的要求如表2所示。
表2 軟件設計及實現(xiàn)所需額外重點考慮的要求 Tab.2 Requirements that require additional focus in software design and implementation
關于軟件驗證活動的獨立性,IEC 61508-3未對獨立程度作進一步的闡述,僅指出在應用領域的標準中可能有的規(guī)定。因此,針對實際的軟件驗證過程,應該評估參與驗證活動的人員要求以及獨立程度。
為了提高應用軟件的質量,標準推薦使用面向應用的語言來實現(xiàn)。針對采用這種方式實現(xiàn)的軟件,IEC 61508-3標準未給出針對性的要求,在遵守通用基本驗證流程的前提下,應特別考慮IEC 60880的要求。
由應用配置數(shù)據(jù)(如專用于預期應用的數(shù)據(jù))對預開發(fā)軟件進行配置,以提供A類安全功能的情況;應對該配置的實現(xiàn)進行驗證,而IEC 61508-3沒有針對這方面的內(nèi)容。
軟件驗證需要額外重點考慮的要求如表3所示。
表3 軟件驗證需要額外重點考慮的要求 Tab.3 Requirements that require additional emphasis in software verification
關于系統(tǒng)集成的軟件方面的要求,主要包括系統(tǒng)集成計劃的軟件相關部分、驗證、缺陷解決規(guī)程和報告的要求。IEC 61508-3針對這部分的要求應結合IEC 61508-1和IEC 61508-2。經(jīng)分析,除了缺陷解決規(guī)程,其余的要求基本能夠滿足。IEC 60880對缺陷解決規(guī)程的要求更系統(tǒng),詳細要求見IEC 60880的9.4節(jié)。
系統(tǒng)確認的軟件方面的要求,主要包括確認計劃、驗證、報告以及缺陷解決規(guī)程。這兩個標準的主要差異有:IEC 60880規(guī)定由未參與設計和實現(xiàn)的人員評估確認的結果,IEC 61508-3沒有明確要求;此外,IEC 61508-3也缺少對缺陷解決規(guī)程的要求,詳細要求見IEC 60880的10.4節(jié)。
關于軟件修改的申請過程,修改執(zhí)行的要求,兩者要求基本一致。對于交付使用后的軟件修改,IEC 61508-3沒有提供詳盡的介紹,應按照IEC 60880的要求執(zhí)行。具體要求見IEC 60880的11.3節(jié)。
針對軟件工具的要求,主要包括工具的選擇和對工具自身的要求。這兩個標準對工具的類型以及對工具的選擇要求一致。對工具自身要求包括軟件工程環(huán)境、工具要求、工具配置管理、翻譯器或編譯器以及應用數(shù)據(jù)工具的要求。在這些方面,IEC 61508-3存在未能達到IEC 60880的要求的情況。軟件工具需要額外重點考慮的要求如表4所示。
表4 軟件工具需要額外重點考慮的要求 Tab.4 Requirements for software tools that require additional focus
IEC 61508-3標準針對預開發(fā)軟件,在以下幾個方面提出要求:執(zhí)行適宜性評價要求、軟件組件的配置要求以及需要滿足的質量要求。在這些要求中,重點指出預開發(fā)軟件組件應明確所提供的安全功能,以及該功能對安全相關系統(tǒng)安全完整性的貢獻、對于非預期功能的限制等,并提出為支持預開發(fā)軟件的集成及質量鑒定應提供的資料及要求。以上要求總體上能夠覆蓋IEC 60880關于預開發(fā)軟件質量鑒定的要求,但對具體執(zhí)行細節(jié)的要求不夠詳細。因此,建議參考IEC 60880的規(guī)定執(zhí)行鑒定程序。
本文通過IEC 61508-3和IEC 60880的對比分析,討論了具有SIL3資質的數(shù)字化儀控系統(tǒng)軟件在核電廠安全重要儀控系統(tǒng)中執(zhí)行A類功能的適用性情況。從分析結果可知,基于IEC 61508-3開發(fā)的SIL3軟件,在軟件項目的一般要求、軟件需求、設計及實現(xiàn)、系統(tǒng)集成和確認的軟件方面,以及軟件修改、軟件工具和對預開發(fā)軟件的質量鑒定等方面,與IEC 60880整體要求基本一致。但是,對于在一些更具體和更確定性的要求方面,基于IEEE 61508-3開發(fā)的SIL3軟件存在不能完全覆蓋的情況,應對軟件作進一步補充驗證。其主要涉及以下方面:自監(jiān)督,面向應用的語言的新軟件的設計、實現(xiàn)和驗證;預開發(fā)軟件的質量鑒定、配置和驗證;系統(tǒng)集成和確認過程中缺陷處理規(guī)程;軟件工具的評價和配置管理,交付運行后軟件的修改。此外,IEC 61508-3針對安裝與運行的軟件,以及避免軟件共因故障的措施這兩個方面,沒有明確詳盡的要求。因此,應對軟件按照IEC 60880的全部要求進行補充驗證。