王少華,馮素梅,陳日罡,張志良
(中國核電工程有限公司,北京 100840)
由于目前市面上針對核電廠安全重要儀控系統(tǒng)開發(fā)的軟件較少,核電領(lǐng)域的用戶越來越多地關(guān)注基于工業(yè)標(biāo)準(zhǔn)IEC 61508-3[1]開發(fā)的較為成熟的軟件。但由于這類軟件開發(fā)和鑒定過程并不是嚴(yán)格依據(jù)核電質(zhì)保流程[2-3],其用于執(zhí)行A類功能的適用性是一個值得考慮的問題。本文通過對IEC 61508-3與IEC 60880—2009[4]這兩個標(biāo)準(zhǔn)的深入研究,并參考標(biāo)準(zhǔn)NB/T 20054—2011[5]和GB/T 20438—2017[6]進(jìn)行對比分析,總結(jié)出在核電領(lǐng)域應(yīng)用中,IEC 61508-3沒有達(dá)到IEC 60880要求的方面,或者沒有足夠詳細(xì)、足夠明確要求的方面。
針對不同安全完整性等級(safety integrity level,SIL)的軟件(依據(jù)標(biāo)準(zhǔn)IEC 61508-4,SIL是針對的整體安全功能,軟件自身沒有SIL說法。為了便于分析本文用SIL n表示軟件的系統(tǒng)性能力)[7],IEC 61508-3標(biāo)準(zhǔn)針對軟件生命周期所有活動提出軟件需要滿足的基本屬性,提供實(shí)現(xiàn)這些軟件屬性的推薦技術(shù)或措施,并且要求在設(shè)計開發(fā)之前應(yīng)選擇合適的技術(shù)或措施并進(jìn)行論證,以保證軟件屬性得到有效的滿足。因此,為滿足軟件的系統(tǒng)性能力,可能有不同的組合技術(shù)或者措施。本文不能夠分析所有的方案,僅針對IEC 61508-3中對軟件的通用要求以及對SIL3等級強(qiáng)烈推薦的技術(shù)要求,并將其與IEC 60880中對執(zhí)行A類功能的軟件要求進(jìn)行對比分析;依據(jù)對比分析結(jié)果,歸納總結(jié)出通過SIL3等級認(rèn)證的軟件需要進(jìn)一步嚴(yán)格要求的內(nèi)容,從而應(yīng)用于執(zhí)行A類功能的系統(tǒng)。
電氣/電子/可編程電子安全有關(guān)系統(tǒng)(electrical/electronic/programmable electronic safety-related systems,E/E/PES)的功能安全(IEC 61508)是IEC/TC 65下分技術(shù)委員會SC65A“系統(tǒng)方面”的標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)主要針對以E/E/PES組件構(gòu)成的、用于執(zhí)行安全功能的系統(tǒng)安全生命周期的所有活動,提出通用的方法,是一般工業(yè)級標(biāo)準(zhǔn)。基于這個基本原則,各應(yīng)用領(lǐng)域根據(jù)特定的應(yīng)用、潛在風(fēng)險和危險等因素,確定各領(lǐng)域特有的安全要求和措施,制定行業(yè)標(biāo)準(zhǔn),如核電方面的IEC 61513。IEC 61513遵守國際原子能機(jī)構(gòu)(international atomic energy,agency,IAEA)體系下的法規(guī)標(biāo)準(zhǔn)要求,結(jié)合IEC 61508的基本框架,給出了核動力廠安全重要儀表與控制(instrumentation & control,I&C)系統(tǒng)的總體要求。它是IAEA有關(guān)核動力廠安全重要I&C系統(tǒng)的安全文件與IEC相應(yīng)標(biāo)準(zhǔn)之間的接口,將其他IEC核電I&C標(biāo)準(zhǔn)體系與標(biāo)準(zhǔn)法規(guī)緊密聯(lián)系在一起[8-10]。
IEC 61508標(biāo)準(zhǔn)共有7部分。其中,IEC 61508-3是關(guān)于軟件要求方面的標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)提供安全相關(guān)軟件開發(fā)過程中各階段的要求和需要開展的活動,包括為避免和控制失效所采取的技術(shù)和措施,以及軟件確認(rèn)、維護(hù)和修改、支持工具等方面的要求。IEC 60880(儀表和控制系統(tǒng)中執(zhí)行A類功能的軟件部分的需求)是被IEC 61513直接引用的TC45下分技術(shù)委員會SC45A(核反應(yīng)堆儀器)的二級標(biāo)準(zhǔn),規(guī)定了核電廠安全重要儀表和控制系統(tǒng)執(zhí)行A類功能的計算機(jī)軟件的要求,涉及軟件的生成和文檔化過程中的每個階段,包括需求、設(shè)計和實(shí)現(xiàn)、驗(yàn)證和確認(rèn)、運(yùn)行和維護(hù)、支持工具和軟件共因失效等方面的要求。它與IEC 62138、IEC 62566一起組成了各類軟件的要求,對應(yīng)于核電應(yīng)用領(lǐng)域的IEC 61508-3。
標(biāo)準(zhǔn)所屬組織結(jié)構(gòu)及對應(yīng)關(guān)系如圖1所示。圖1中,陰影部分是本文所重點(diǎn)分析的標(biāo)準(zhǔn)。

圖1 標(biāo)準(zhǔn)所屬組織結(jié)構(gòu)及對應(yīng)關(guān)系圖 Fig.1 Organizational structure of the standard and corresponding diagram
由于IEC 61508標(biāo)準(zhǔn)并非僅僅面向某個特定應(yīng)用領(lǐng)域而制定,其更具有一般性:針對軟件開發(fā)活動的要求,僅闡述了需要滿足的通用屬性;對不同的SIL等級,提供了對應(yīng)的推薦技術(shù)或措施,實(shí)現(xiàn)要求軟件屬性的有效性取決于所選擇的方案。因此,本文選取滿足SIL3等級要求的軟件,且假定開發(fā)活動充分考慮了標(biāo)準(zhǔn)所強(qiáng)烈推薦的技術(shù)和措施,作為本文的分析對象。而IEC 60880明確規(guī)定是應(yīng)用于核安全重要儀控系統(tǒng)的執(zhí)行A類功能的軟件,對核電領(lǐng)域具體的危險和風(fēng)險考慮得較為具體,所采取的避免措施更有針對性。因此,該標(biāo)準(zhǔn)中的要求更具有行業(yè)特性,且對技術(shù)或措施的要求更確定。此外,IEC 61508-3并非孤立的軟件要求標(biāo)準(zhǔn)。它基于IEC 61508-1[11]和IEC 61508-2[12]標(biāo)準(zhǔn),且多處引用IEC 61508的其他部分。因此,對于IEC 61508的標(biāo)準(zhǔn)的理解,應(yīng)充分結(jié)合其他部分的要求。鑒于以上因素,本文并非針對這兩個標(biāo)準(zhǔn)作逐字逐句的對應(yīng)分析,而是結(jié)合實(shí)際工程經(jīng)驗(yàn),對標(biāo)準(zhǔn)作充分的消化理解,以IEC 60880為基準(zhǔn)文件,按照軟件生命周期所開展的活動分類進(jìn)行對比。本文主要分析以下幾個方面:軟件項目一般要求、軟件需求確定、軟件設(shè)計和開發(fā)過程的要求、軟件驗(yàn)證和確認(rèn)、系統(tǒng)確認(rèn)的軟件方面的要求、軟件修改的要求、支持工具的要求、預(yù)防軟件共因失效的措施、預(yù)開發(fā)軟件的鑒定要求。
利用第2節(jié)所述的分析方法,對標(biāo)準(zhǔn)進(jìn)行綜合分析。
軟件項目的一般要求,主要包括生命周期、軟件類型、項目管理、質(zhì)保、配置管理和安全防范的要求。這些要求貫穿于整個軟件生命周期,是由具體活動保證的,IEC 61508-3以及IEC 61508-1對這方面的要求沒有本質(zhì)的區(qū)別。針對安裝與運(yùn)行的軟件要求,以及對因軟件引起共因故障的防御,標(biāo)準(zhǔn)中沒有明確具體的要求。因此,需要遵守IEC 60880的全部要求。以上這些方面的分析在本文中不再進(jìn)行討論。本文僅針對IEC 61508不能夠完全覆蓋的、或者要求不夠詳盡、不夠具體的方面展開討論,具體分析如下。
在軟件需求方面,IEC 61508-3在運(yùn)行期間能手動修改的軟件參數(shù)、軟硬件之間的約束、自監(jiān)督和特殊工況的影響等方面的要求,沒有IEC 60880中的要求全面、具體。
軟件需求需要額外重點(diǎn)考慮的要求如表1所示。

表1 軟件需求需要額外重點(diǎn)考慮的要求 Tab.1 Requirements that require additional emphasis in software requirements
在此階段,與IEC 60880相比,IEC 61508-3在通信方面缺少總體性能要求、獨(dú)立性要求、確定性要求、數(shù)據(jù)傳輸完整性要求、接口要求以及冗余設(shè)計要求。
為保證設(shè)計正確的滿足需求、避免因設(shè)計錯誤引起系統(tǒng)性失效,應(yīng)強(qiáng)制采取自上而下的方法,對操作系統(tǒng)充分的驗(yàn)證;為保護(hù)安全信息,應(yīng)對存儲內(nèi)容采取重點(diǎn)保護(hù)措施。
IEC 61508-3未明確編碼規(guī)則,僅指出應(yīng)遵守應(yīng)用領(lǐng)域的編碼標(biāo)準(zhǔn)。因此,應(yīng)驗(yàn)證所使用的編碼標(biāo)準(zhǔn)和編碼規(guī)則是否滿足IEC 60880的要求。對預(yù)開發(fā)軟件的配置,缺少可追溯性和可維護(hù)性的要求。此外,針對面向應(yīng)用的語言的新軟件的設(shè)計和開發(fā)、時間性能以及自動代碼生成,IEC 61508-3并未提出具體的要求。
軟件設(shè)計及實(shí)現(xiàn)所需額外重點(diǎn)考慮的要求如表2所示。

表2 軟件設(shè)計及實(shí)現(xiàn)所需額外重點(diǎn)考慮的要求 Tab.2 Requirements that require additional focus in software design and implementation
關(guān)于軟件驗(yàn)證活動的獨(dú)立性,IEC 61508-3未對獨(dú)立程度作進(jìn)一步的闡述,僅指出在應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)中可能有的規(guī)定。因此,針對實(shí)際的軟件驗(yàn)證過程,應(yīng)該評估參與驗(yàn)證活動的人員要求以及獨(dú)立程度。
為了提高應(yīng)用軟件的質(zhì)量,標(biāo)準(zhǔn)推薦使用面向應(yīng)用的語言來實(shí)現(xiàn)。針對采用這種方式實(shí)現(xiàn)的軟件,IEC 61508-3標(biāo)準(zhǔn)未給出針對性的要求,在遵守通用基本驗(yàn)證流程的前提下,應(yīng)特別考慮IEC 60880的要求。
由應(yīng)用配置數(shù)據(jù)(如專用于預(yù)期應(yīng)用的數(shù)據(jù))對預(yù)開發(fā)軟件進(jìn)行配置,以提供A類安全功能的情況;應(yīng)對該配置的實(shí)現(xiàn)進(jìn)行驗(yàn)證,而IEC 61508-3沒有針對這方面的內(nèi)容。
軟件驗(yàn)證需要額外重點(diǎn)考慮的要求如表3所示。

表3 軟件驗(yàn)證需要額外重點(diǎn)考慮的要求 Tab.3 Requirements that require additional emphasis in software verification
關(guān)于系統(tǒng)集成的軟件方面的要求,主要包括系統(tǒng)集成計劃的軟件相關(guān)部分、驗(yàn)證、缺陷解決規(guī)程和報告的要求。IEC 61508-3針對這部分的要求應(yīng)結(jié)合IEC 61508-1和IEC 61508-2。經(jīng)分析,除了缺陷解決規(guī)程,其余的要求基本能夠滿足。IEC 60880對缺陷解決規(guī)程的要求更系統(tǒng),詳細(xì)要求見IEC 60880的9.4節(jié)。
系統(tǒng)確認(rèn)的軟件方面的要求,主要包括確認(rèn)計劃、驗(yàn)證、報告以及缺陷解決規(guī)程。這兩個標(biāo)準(zhǔn)的主要差異有:IEC 60880規(guī)定由未參與設(shè)計和實(shí)現(xiàn)的人員評估確認(rèn)的結(jié)果,IEC 61508-3沒有明確要求;此外,IEC 61508-3也缺少對缺陷解決規(guī)程的要求,詳細(xì)要求見IEC 60880的10.4節(jié)。
關(guān)于軟件修改的申請過程,修改執(zhí)行的要求,兩者要求基本一致。對于交付使用后的軟件修改,IEC 61508-3沒有提供詳盡的介紹,應(yīng)按照IEC 60880的要求執(zhí)行。具體要求見IEC 60880的11.3節(jié)。
針對軟件工具的要求,主要包括工具的選擇和對工具自身的要求。這兩個標(biāo)準(zhǔn)對工具的類型以及對工具的選擇要求一致。對工具自身要求包括軟件工程環(huán)境、工具要求、工具配置管理、翻譯器或編譯器以及應(yīng)用數(shù)據(jù)工具的要求。在這些方面,IEC 61508-3存在未能達(dá)到IEC 60880的要求的情況。軟件工具需要額外重點(diǎn)考慮的要求如表4所示。

表4 軟件工具需要額外重點(diǎn)考慮的要求 Tab.4 Requirements for software tools that require additional focus
IEC 61508-3標(biāo)準(zhǔn)針對預(yù)開發(fā)軟件,在以下幾個方面提出要求:執(zhí)行適宜性評價要求、軟件組件的配置要求以及需要滿足的質(zhì)量要求。在這些要求中,重點(diǎn)指出預(yù)開發(fā)軟件組件應(yīng)明確所提供的安全功能,以及該功能對安全相關(guān)系統(tǒng)安全完整性的貢獻(xiàn)、對于非預(yù)期功能的限制等,并提出為支持預(yù)開發(fā)軟件的集成及質(zhì)量鑒定應(yīng)提供的資料及要求。以上要求總體上能夠覆蓋IEC 60880關(guān)于預(yù)開發(fā)軟件質(zhì)量鑒定的要求,但對具體執(zhí)行細(xì)節(jié)的要求不夠詳細(xì)。因此,建議參考IEC 60880的規(guī)定執(zhí)行鑒定程序。
本文通過IEC 61508-3和IEC 60880的對比分析,討論了具有SIL3資質(zhì)的數(shù)字化儀控系統(tǒng)軟件在核電廠安全重要儀控系統(tǒng)中執(zhí)行A類功能的適用性情況。從分析結(jié)果可知,基于IEC 61508-3開發(fā)的SIL3軟件,在軟件項目的一般要求、軟件需求、設(shè)計及實(shí)現(xiàn)、系統(tǒng)集成和確認(rèn)的軟件方面,以及軟件修改、軟件工具和對預(yù)開發(fā)軟件的質(zhì)量鑒定等方面,與IEC 60880整體要求基本一致。但是,對于在一些更具體和更確定性的要求方面,基于IEEE 61508-3開發(fā)的SIL3軟件存在不能完全覆蓋的情況,應(yīng)對軟件作進(jìn)一步補(bǔ)充驗(yàn)證。其主要涉及以下方面:自監(jiān)督,面向應(yīng)用的語言的新軟件的設(shè)計、實(shí)現(xiàn)和驗(yàn)證;預(yù)開發(fā)軟件的質(zhì)量鑒定、配置和驗(yàn)證;系統(tǒng)集成和確認(rèn)過程中缺陷處理規(guī)程;軟件工具的評價和配置管理,交付運(yùn)行后軟件的修改。此外,IEC 61508-3針對安裝與運(yùn)行的軟件,以及避免軟件共因故障的措施這兩個方面,沒有明確詳盡的要求。因此,應(yīng)對軟件按照IEC 60880的全部要求進(jìn)行補(bǔ)充驗(yàn)證。