張恩博,趙立東,劉 標(biāo),徐 朋,宮成軍
(1.三門(mén)核電有限公司,浙江 三門(mén) 317112;2.環(huán)境保護(hù)部華東核與輻射安全監(jiān)督站,上海 200233;3.福建福清核電有限公司,福建 福清 350318)
在核電領(lǐng)域,全數(shù)字化儀控平臺(tái)為電廠的非干預(yù)保護(hù)、自動(dòng)控制、人機(jī)交互等方面提供了極大便利,與此同時(shí)也來(lái)了新的風(fēng)險(xiǎn)和挑戰(zhàn)。為提高安全性和可靠性,數(shù)字化儀控系統(tǒng)軟件的開(kāi)發(fā)過(guò)程都要經(jīng)過(guò)確認(rèn)和獨(dú)立驗(yàn)證(validation and verification,V&V),各設(shè)計(jì)單位、系統(tǒng)供方、監(jiān)管方針對(duì)軟件的獨(dú)立驗(yàn)證與確認(rèn)(IV&V)的相關(guān)研究也不斷深入。軟件的V&V活動(dòng)應(yīng)伴隨軟件的采購(gòu)、供貨、開(kāi)發(fā)、運(yùn)行、維護(hù)等完整生命周期。目前,核電行業(yè)相關(guān)研究主要集中在開(kāi)發(fā)階段。涉及臨時(shí)或永久的小范圍修改的運(yùn)行、維護(hù)階段,關(guān)注較少。本文立足核電廠數(shù)字化儀控系統(tǒng)的運(yùn)行和維護(hù)階段,探索適應(yīng)軟件修改V&V活動(dòng)的流程和方法,同時(shí)從核安全監(jiān)管角度提出關(guān)注點(diǎn)建議,以期為后續(xù)相關(guān)研究及具體的V&V實(shí)踐活動(dòng)提供借鑒。
儀控系統(tǒng)修改的目的是消除或避免系統(tǒng)故障。儀控系統(tǒng)的硬件故障一般源于設(shè)計(jì)或制造中的錯(cuò)誤,或是使用過(guò)程中的磨損、老化以及環(huán)境改變。軟件故障不存在磨損和老化因素,主要由設(shè)計(jì)或開(kāi)發(fā)中的錯(cuò)誤以及使用過(guò)程中的環(huán)境改變而引起,也是典型的運(yùn)行核電廠儀控系統(tǒng)軟件的故障來(lái)源,軟件故障本身具有隱蔽性[1]。
針對(duì)不同的修改類型和范圍,對(duì)運(yùn)行核電廠的軟件修改可進(jìn)行如下分類[2]。
第一類,因工作需要實(shí)施的臨時(shí)控制變更。
第二類,因技術(shù)改造等需要實(shí)施的永久性變更。
第三類,供方軟件配置錯(cuò)誤或組態(tài)邏輯/參數(shù)與現(xiàn)場(chǎng)實(shí)際要求不一致而產(chǎn)生的修改。
第四類,供方新發(fā)布的軟件,現(xiàn)場(chǎng)需要實(shí)施的增量式或覆蓋式升版。
數(shù)字化儀控系統(tǒng)的軟件V&V的主要任務(wù)是查找可能存在的缺陷,評(píng)估軟件潛在的風(fēng)險(xiǎn)與危害,并提供解決方案以保證產(chǎn)品質(zhì)量。重要的技術(shù)改造以及廠家發(fā)布的增量或覆蓋式修改必須要有針對(duì)性的V&V,以保證軟件功能的正確性和安全性。其他幾類變更或修改同樣需要質(zhì)量管控。雖然無(wú)需像初始軟件開(kāi)發(fā)使用完整的V&V流程,但仍應(yīng)采用某一種或幾種V&V活動(dòng)子項(xiàng)來(lái)進(jìn)行變更內(nèi)容的驗(yàn)證和確認(rèn)。
軟件V&V的具體階段可劃分為:驗(yàn)證儀控系統(tǒng)需求到儀控系統(tǒng)設(shè)計(jì),儀控系統(tǒng)設(shè)計(jì)到軟件需求分析,軟件需求分析到軟件設(shè)計(jì),軟件設(shè)計(jì)到軟件實(shí)現(xiàn),軟件實(shí)現(xiàn)到軟件集成。通過(guò)一系列軟件V&V活動(dòng),確認(rèn)各階段的需求是否均已得到滿足,驗(yàn)證軟件開(kāi)發(fā)是否按照設(shè)計(jì)流程和要求開(kāi)展,從用戶的角度確認(rèn)軟件是否符合系統(tǒng)設(shè)計(jì)的真正需求[3]。
典型驗(yàn)證和確認(rèn)流程(HAD 102-16)如圖1所示。
圖1 典型驗(yàn)證和確認(rèn)流程(HAD 102-16)
從V&V活動(dòng)的流程角度,針對(duì)運(yùn)行核電廠不同類型的軟件修改活動(dòng),應(yīng)選取不同的V&V活動(dòng)進(jìn)行適配,確保軟件修改的安全性。
第一類和第二類軟件修改。這兩類軟件修改主要來(lái)源于工藝系統(tǒng)需求,軟件修改的量并不大,只涉及部分機(jī)柜和部分控制邏輯,對(duì)儀控系統(tǒng)沒(méi)有全局性影響。對(duì)于這些軟件修改,需要把控如下關(guān)鍵步驟:工藝系統(tǒng)需求→儀控系統(tǒng)需求→軟件需求。因此,主要采取的是需求V&V、實(shí)現(xiàn)V&V和測(cè)試V&V活動(dòng)?;顒?dòng)執(zhí)行應(yīng)當(dāng)以營(yíng)運(yùn)單位為主體,應(yīng)當(dāng)包括但不限于運(yùn)行技術(shù)人員、工藝需求提出人員、儀控專業(yè)執(zhí)行者等。除采取典型V&V流程以外,還需充分分析變更部分同其他系統(tǒng)的接口影響,以及軟件刪除和下裝過(guò)程中帶來(lái)的控制狀態(tài)的改變,避免在執(zhí)行軟件變更的時(shí)候引入額外風(fēng)險(xiǎn)[4]。
第三類軟件修改。這類修改對(duì)儀控系統(tǒng)的邏輯架構(gòu)以及大部分參數(shù)配置無(wú)影響,因此軟件原有V&V的有效性得到延續(xù)。針對(duì)這類修改,必須考慮修改引入的對(duì)軟件整體的危險(xiǎn)與挑戰(zhàn),尤其關(guān)注邏輯觸發(fā)條件的改變。需要關(guān)注軟件執(zhí)行的正確性,即軟件對(duì)工藝及儀控需求實(shí)現(xiàn)的符合性驗(yàn)證。在這一類的軟件修改中,如涉及邏輯架構(gòu)的偏差,則應(yīng)當(dāng)參照第一、二類軟件修改的V&V活動(dòng)方式進(jìn)行考慮。此類軟件修改的活動(dòng)主體仍應(yīng)當(dāng)以營(yíng)運(yùn)單位為主體,但要將工藝設(shè)計(jì)方、儀控軟件供方協(xié)同在V&V組織機(jī)構(gòu)內(nèi),以便確認(rèn)修改方案的完整性和有效性。
第四類軟件修改。這類軟件修改變動(dòng)的范圍很大,對(duì)儀控系統(tǒng)的整體邏輯架構(gòu)和功能完整性有很大影響,多數(shù)情況下軟件要整體重新安裝,因此需要按照新開(kāi)發(fā)儀控系統(tǒng)軟件的要求執(zhí)行完整的軟件V&V流程。這類軟件修改的V&V活動(dòng)主體一般應(yīng)該是軟件的供方。如果條件成熟,也可以采用第三方獨(dú)立驗(yàn)證方式。但作為對(duì)核安全負(fù)有全面責(zé)任的核電廠營(yíng)運(yùn)單位應(yīng)當(dāng)深度參與V&V活動(dòng),確保V&V活動(dòng)能夠全面準(zhǔn)確的排查出儀控軟件安全隱患。同樣,這類修改的執(zhí)行和V&V需充分分析變更部分同其他系統(tǒng)的接口影響,以及軟件刪除和下裝過(guò)程中帶來(lái)的控制狀態(tài)的改變,避免在執(zhí)行軟件變更的時(shí)候引入額外風(fēng)險(xiǎn)。
電氣和電子工程師協(xié)會(huì)標(biāo)準(zhǔn)(IEEE 1012)給出了典型的軟件測(cè)試和驗(yàn)證方法[5-6],包括追溯分析、文檔分析與評(píng)價(jià)、設(shè)計(jì)圖對(duì)比分析、靜態(tài)分析、代碼走查、白盒測(cè)試、黑盒測(cè)試等。針對(duì)運(yùn)行核電廠不同的軟件修改類型,所使用的V&V方法也可以進(jìn)行適當(dāng)優(yōu)化和調(diào)整,提高V&V活動(dòng)的針對(duì)性和實(shí)效性。
運(yùn)行核電廠DCS軟件修改V&V方法的選擇并不嚴(yán)格對(duì)應(yīng)前文對(duì)軟件修改的分類,而是更多地針對(duì)軟件修改的內(nèi)容和形式。
追溯分析、文檔分析與評(píng)價(jià)等手段更多的是用于對(duì)軟件開(kāi)發(fā)的各級(jí)需求文檔的符合性驗(yàn)證。對(duì)于大部分的運(yùn)行核電廠DCS軟件修改,并不一定存在嚴(yán)格意義上的各級(jí)需求文件,而是在已經(jīng)具備的很明確的修改需求基礎(chǔ)上直接生成修改方案,因此可以適當(dāng)開(kāi)展追溯分析、文檔分析與評(píng)價(jià),不必專門(mén)去組織這類工作或開(kāi)發(fā)相應(yīng)的文件。對(duì)于修改需求較多或者修改內(nèi)容層次復(fù)雜、關(guān)聯(lián)邏輯較多的情況,可以采取較為正式的追溯分析和文檔分析與評(píng)價(jià),以確保各層級(jí)修改需求及開(kāi)發(fā)文檔的正確連貫和范圍準(zhǔn)確,剔除不必要的修改源項(xiàng),也保證修改內(nèi)容的完整性。
對(duì)比分析目前在運(yùn)行核電廠DCS軟件修改的審查中廣泛應(yīng)用。除了前文分類中的第三類修改,其他各類修改,不論是圖形化輸入還是代碼輸入的DCS平臺(tái),在修改編輯之前都會(huì)優(yōu)先修改邏輯圖或模擬圖,在此階段執(zhí)行設(shè)計(jì)圖對(duì)比分析非常有針對(duì)性,效果非常顯著。
靜態(tài)分析和代碼走查方法針對(duì)的是已經(jīng)成型的軟件修改代碼或組態(tài),是一種對(duì)代碼直接檢查的必要方法。執(zhí)行過(guò)程可采用標(biāo)準(zhǔn)化的軟件分析方法、走查工具,在運(yùn)行核電廠的各類軟件修改中,均需要不同程度的靜態(tài)分析和代碼走查;在實(shí)際運(yùn)用中,也可不依賴自動(dòng)化的工具,采用人工方法沿程序和代碼進(jìn)行檢查,以找出代碼中存在的各類錯(cuò)誤[7]。
黑盒測(cè)試是指將程序看作是內(nèi)部不可見(jiàn)的黑盒,不考慮內(nèi)部/編碼結(jié)構(gòu)和語(yǔ)句路徑,通過(guò)專用工具從程序輸入與輸出間的關(guān)系檢查測(cè)試結(jié)果是否滿足預(yù)期要求。此方法依靠軟件設(shè)計(jì)說(shuō)明書(shū)中的功能來(lái)設(shè)計(jì)測(cè)試用例,以檢驗(yàn)軟件的功能完整性。測(cè)試用例設(shè)計(jì)應(yīng)具有代表性,覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的及極限的輸人數(shù)據(jù)和期望輸出。目前運(yùn)行核電廠的軟件修改驗(yàn)證多采用黑盒測(cè)試的方式。這種方式能夠最貼近實(shí)際運(yùn)行環(huán)境,能夠直觀給出軟件修改功能完好性的評(píng)價(jià)。但黑盒測(cè)試并不能完整覆蓋全部的軟件結(jié)構(gòu)和語(yǔ)句,尤其對(duì)多余語(yǔ)句和其他非預(yù)期影響的挖掘能力不足,因此,僅僅執(zhí)行黑盒測(cè)試是不夠的。
白盒測(cè)試是通過(guò)專用工具設(shè)計(jì)測(cè)試用例分析程序內(nèi)部邏輯/編碼結(jié)構(gòu),覆蓋程序的每個(gè)語(yǔ)句、每個(gè)條件分支、每個(gè)控制路徑,檢驗(yàn)其是否存在缺陷或錯(cuò)誤。此方法根據(jù)軟件內(nèi)部構(gòu)造設(shè)計(jì)測(cè)試用例,檢驗(yàn)代碼測(cè)試的完整性。未來(lái)運(yùn)行核電廠可以在DCS系統(tǒng)采購(gòu)時(shí)考慮增加配套V&V工具的開(kāi)發(fā)與服務(wù),在技術(shù)上提高運(yùn)行核電廠對(duì)軟件變更質(zhì)量管控水平[8-9]。
目前,大部分運(yùn)行電廠DCS系統(tǒng)的V&V活動(dòng)是由DCS廠家主導(dǎo)執(zhí)行,一部分小修改的V&V是由運(yùn)行電廠自己完成。這種局面一是因?yàn)镈CS供方在售賣系統(tǒng)和設(shè)備時(shí)的利益考慮,另外也是由于核電廠自身技術(shù)能力限制,同時(shí)也有核電運(yùn)營(yíng)者對(duì)數(shù)字化系統(tǒng)軟件V&V重要性認(rèn)識(shí)不足的因素。核電廠營(yíng)運(yùn)單位對(duì)核安全負(fù)有全面責(zé)任,對(duì)運(yùn)行機(jī)組的核安全監(jiān)管,主要的著力點(diǎn)是核電廠營(yíng)運(yùn)單位,在運(yùn)行機(jī)組軟件V&V活動(dòng)方面,應(yīng)加強(qiáng)以下幾個(gè)方面的監(jiān)管。
第一,要形成明確的V&V質(zhì)保要求和相應(yīng)的管理程序、技術(shù)程序,對(duì)數(shù)字化儀控系統(tǒng)的軟件修改進(jìn)行有效管控[10-11]。管理和技術(shù)程序應(yīng)包括基本的V&V流程、V&V程序開(kāi)發(fā)方法(包括典型方法、測(cè)試用例等)。應(yīng)當(dāng)形成一套完整的廠內(nèi)V&V管理體系,并由專業(yè)人員和質(zhì)保人員對(duì)程序進(jìn)行不定期的修訂和升版,保持廠內(nèi)V&V管理體系的有效性和活力。在建立程序體系過(guò)程中,電廠可參考核安全導(dǎo)則(HAD102/16)中的第15節(jié)“交付后的修改”。該章節(jié)對(duì)運(yùn)行核電廠安全級(jí)軟件修改的V&V提供了較明確的要求和指導(dǎo)原則。
第二,核電廠應(yīng)具備充足的V&V技術(shù)人員。雖然軟件開(kāi)發(fā)流程和V&V活動(dòng)過(guò)程都是類似的,但不同的DCS平臺(tái)所使用的操作系統(tǒng)、開(kāi)發(fā)工具、測(cè)試環(huán)境都有各式各類的差別。執(zhí)行V&V活動(dòng)的人員應(yīng)充分掌握本電廠DCS軟件的開(kāi)發(fā)方法、各應(yīng)用軟件的使用方法以及V&V工具的使用方法等,同時(shí)應(yīng)當(dāng)熟悉DCS中的工藝控制邏輯及各變量對(duì)電廠狀態(tài)的影響,以便分析和弄清V&V活動(dòng)的風(fēng)險(xiǎn)預(yù)案和隔離方法。因此,電廠應(yīng)當(dāng)組織和培養(yǎng)相關(guān)專業(yè)人才隊(duì)伍,保證V&V活動(dòng)有充足、有效的人力保證。
第三,V&V執(zhí)行工具。電廠應(yīng)配備適用的V&V活動(dòng)工具和模擬平臺(tái),用于支持V&V程序、測(cè)試用例的開(kāi)發(fā),支持驗(yàn)證的模擬、人員的培訓(xùn)等活動(dòng)。沒(méi)有配套的V&V執(zhí)行工具,電廠無(wú)法真正有效實(shí)施IV&V工作。這些工具可以從DCS的供方處進(jìn)行定制和采購(gòu),也可以委托獨(dú)立的第三方進(jìn)行開(kāi)發(fā)。目前,國(guó)外已有一些專門(mén)的公司負(fù)責(zé)開(kāi)發(fā)獨(dú)立的V&V執(zhí)行工具,國(guó)內(nèi)也有公司和院所在做相關(guān)的研究和開(kāi)發(fā)。這部分工作也是需要電廠的關(guān)注與投入以及監(jiān)管方的推動(dòng)的[11]。
運(yùn)行核電廠軟件V&V活動(dòng)對(duì)于保障電廠核安全風(fēng)險(xiǎn)可控是十分重要的,從監(jiān)管角度看,要對(duì)核電廠牽頭組織的這部分工作給予足夠的關(guān)注,并要從技術(shù)、管理、法規(guī)等多方面角度對(duì)其進(jìn)行管控,切實(shí)保障核電機(jī)組不受軟件問(wèn)題的侵害。本文立足于數(shù)字化儀控系統(tǒng)的V&V活動(dòng)這一特定技術(shù)范疇,側(cè)重于軟件交付后的電廠運(yùn)行階段,結(jié)合典型的V&V活動(dòng)流程和V&V方法,對(duì)數(shù)字化儀控系統(tǒng)軟件修改的V&V工作進(jìn)行了探討。同時(shí),結(jié)合目前運(yùn)行核電廠數(shù)字化儀控系統(tǒng)工作的實(shí)際開(kāi)展情況,對(duì)軟件V&V工作的監(jiān)管提出建議,為后續(xù)的相關(guān)研究提供了一些思路和參考。