(南京南瑞繼保電氣有限公司,江蘇 南京 211102)
核電廠(chǎng)用電保護(hù)裝置主要用于核電廠(chǎng)線(xiàn)路、電動(dòng)機(jī)、母線(xiàn)及變壓器等廠(chǎng)用電設(shè)備的保護(hù),當(dāng)一次設(shè)備發(fā)生故障時(shí),廠(chǎng)用電保護(hù)裝置能夠快速動(dòng)作,隔離故障,保護(hù)一次設(shè)備的安全,核電廠(chǎng)用電保護(hù)裝置的可靠性直接影響整個(gè)核電廠(chǎng)的安全穩(wěn)定運(yùn)行[1]。核電廠(chǎng)用電保護(hù)裝置的國(guó)產(chǎn)化是核電技術(shù)全面國(guó)產(chǎn)化的重要一環(huán)。在核電廠(chǎng)用電保護(hù)裝置國(guó)產(chǎn)化進(jìn)程中,如何保證核電廠(chǎng)用電保護(hù)裝置軟件的安全性和可靠性是設(shè)備開(kāi)發(fā)和研制過(guò)程中所要解決的關(guān)鍵問(wèn)題[2-3]。本文以《IEC60880核電廠(chǎng)對(duì)基于計(jì)算機(jī)的安全重要儀器和控制系統(tǒng)執(zhí)行 A 類(lèi)功能的軟件》標(biāo)準(zhǔn)(下文簡(jiǎn)稱(chēng)IEC60880標(biāo)準(zhǔn))為依據(jù),參照國(guó)產(chǎn)化核電廠(chǎng)用電保護(hù)裝置軟件的開(kāi)發(fā)及驗(yàn)證與確認(rèn)(Verification & Validation,V&V)取證整個(gè)過(guò)程,總結(jié)核電廠(chǎng)安全軟件的V&V方法和技術(shù)特點(diǎn),對(duì)后續(xù)核電廠(chǎng)國(guó)產(chǎn)化設(shè)備軟件V&V開(kāi)發(fā)和取證提供借鑒。
本文設(shè)計(jì)的核電廠(chǎng)用電保護(hù)裝置的整體功能如圖1所示,裝置采用兩片雙核處理器分別實(shí)現(xiàn)人機(jī)子系統(tǒng)功能與保護(hù)子系統(tǒng)功能。人機(jī)子系統(tǒng)負(fù)責(zé)裝置對(duì)外人機(jī)接口,包括人機(jī)界面、事件記錄,錄波、對(duì)時(shí)及對(duì)外通信功能等,保護(hù)子系統(tǒng)利用核電廠(chǎng)用電一次設(shè)備發(fā)生短路或異常情況時(shí)的模擬量(電流、電壓、頻率等)的變化構(gòu)成繼電保護(hù)動(dòng)作的原理,并結(jié)合輸入的開(kāi)關(guān)量進(jìn)行邏輯判斷,發(fā)出告警、閉鎖信號(hào)提醒運(yùn)行人員,或直接通過(guò)出口繼電器動(dòng)作跳開(kāi)一次設(shè)備開(kāi)關(guān)隔離故障。核電廠(chǎng)用電保護(hù)裝置中保護(hù)子系統(tǒng)涉及安全功能的執(zhí)行,為保證保護(hù)子系統(tǒng)的最大化安全運(yùn)行,兩個(gè)系統(tǒng)互相獨(dú)立,人機(jī)子系統(tǒng)出現(xiàn)任何異常,不影響保護(hù)子系統(tǒng)的正常運(yùn)行。
圖1 核電廠(chǎng)用電保護(hù)功能架構(gòu)Fig.1 Function of the nuclear power plant protection relay
核電廠(chǎng)用電保護(hù)的邏輯處理功能是采用軟件實(shí)現(xiàn)的,軟件的可靠性直接影響核電廠(chǎng)的安全性。由于軟件故障具備潛伏性并且易受共因故障的影響,因此只能依靠嚴(yán)格的開(kāi)發(fā)過(guò)程來(lái)保證核電廠(chǎng)用電保護(hù)軟件的質(zhì)量[4-5]。核電廠(chǎng)用電保護(hù)裝置軟件V&V的目的是為了規(guī)范開(kāi)發(fā)過(guò)程,保證開(kāi)發(fā)過(guò)程每個(gè)階段產(chǎn)物的正確性,或保證錯(cuò)誤可以在設(shè)計(jì)過(guò)程中盡早發(fā)現(xiàn),從而提高核電廠(chǎng)用電保護(hù)裝置軟件在整個(gè)生命周期內(nèi)的可靠性和穩(wěn)定性,保障核電廠(chǎng)的安全穩(wěn)定運(yùn)行。
IEC 60880是核電廠(chǎng)對(duì)基于計(jì)算機(jī)的安全重要儀器和控制系統(tǒng)執(zhí)行 A 類(lèi)功能的軟件標(biāo)準(zhǔn),該標(biāo)準(zhǔn)詳細(xì)規(guī)定執(zhí)行A類(lèi)功能的高可靠性軟件的整個(gè)生命周期的活動(dòng),涉及軟件的生成和文檔化的每個(gè)階段,包括需求規(guī)格書(shū)、設(shè)計(jì)、實(shí)現(xiàn)、驗(yàn)證、確認(rèn)和運(yùn)行[6]。
核級(jí)廠(chǎng)用電保護(hù)裝置軟件安全生命周期的V&V過(guò)程如圖2所示,主要分為以下六個(gè)階段:軟件需求評(píng)審、軟件設(shè)計(jì)評(píng)審、代碼靜態(tài)驗(yàn)證、單元測(cè)試驗(yàn)證、集成測(cè)試驗(yàn)證以及系統(tǒng)確認(rèn)。
整個(gè)V&V流程中的產(chǎn)物如表1所示。
圖2 核級(jí)廠(chǎng)用電保護(hù)裝置軟件V&V過(guò)程Fig.2 The V&V process of nuclear power plant protection relay software
表1 核級(jí)廠(chǎng)用電保護(hù)裝置軟件V&V產(chǎn)出
核級(jí)廠(chǎng)用電保護(hù)裝置研發(fā)項(xiàng)目在立項(xiàng)初期就根據(jù)IEC 60880標(biāo)準(zhǔn)要求建立了軟件項(xiàng)目質(zhì)量管理體系、軟件質(zhì)量保證計(jì)劃、軟件配置管理以及軟件安全防范等流程體系,并形成正式文檔,項(xiàng)目開(kāi)發(fā)過(guò)程中嚴(yán)格按照文檔預(yù)先規(guī)定流程執(zhí)行。在項(xiàng)目準(zhǔn)備階段,項(xiàng)目組就聘請(qǐng)了具備安全軟件V&V資質(zhì)的獨(dú)立的第三方V&V小組,保證了軟件開(kāi)發(fā)工作和V&V工作的獨(dú)立性,并將V&V工作貫穿于核級(jí)廠(chǎng)用電保護(hù)裝置軟件整個(gè)安全生命周期的全過(guò)程中,避免軟件生命周期的各個(gè)階段引入錯(cuò)誤或缺陷。
該階段V&V產(chǎn)出見(jiàn)表1 的 3.1 準(zhǔn)備階段。
3.2.1 軟件需求評(píng)審
開(kāi)發(fā)人員根據(jù)核級(jí)廠(chǎng)用電保護(hù)裝置功能需求及安全需求編寫(xiě)系統(tǒng)需求說(shuō)明書(shū),并從系統(tǒng)需求說(shuō)明書(shū)中細(xì)化軟件需求形成軟件需求說(shuō)明書(shū),核級(jí)廠(chǎng)用電保護(hù)裝置軟件需求說(shuō)明書(shū)應(yīng)明確如下內(nèi)容:
1)軟件提供的應(yīng)用功能,如圖1所示;
2)核電廠(chǎng)調(diào)試和換料等特殊運(yùn)行工況下的軟件要求;
3)軟件和硬件之間的約束性描述;
4)軟硬件的自監(jiān)督功能;
5)定期試驗(yàn)功能。
V&V小組根據(jù)IEC 60880:2006 條款 6 Software requirements 的要求對(duì)軟件需求進(jìn)行評(píng)審并根據(jù)系統(tǒng)需求說(shuō)明書(shū)撰寫(xiě)軟件確認(rèn)測(cè)試規(guī)格書(shū),作為后續(xù)軟件確認(rèn)測(cè)試的基準(zhǔn)。
該階段V&V產(chǎn)出見(jiàn)表1 的3.2.1軟件需求評(píng)審。
3.2.2 軟件設(shè)計(jì)評(píng)審
開(kāi)發(fā)人員根據(jù)《核級(jí)廠(chǎng)用電保護(hù)裝置軟件需求規(guī)格書(shū)》為基準(zhǔn),采用自頂向下的模塊化設(shè)計(jì)方法,詳細(xì)設(shè)計(jì)核級(jí)廠(chǎng)用電保護(hù)裝置各功能模塊的實(shí)現(xiàn)方法,應(yīng)明確如下內(nèi)容:
1)軟件語(yǔ)言及開(kāi)發(fā)工具的選擇;
2)軟件編碼規(guī)范的設(shè)計(jì);
3)軟件各功能模塊的詳細(xì)設(shè)計(jì)(包括算法、數(shù)據(jù)結(jié)構(gòu)、功能接口、約束條件等);
4)人機(jī)子系統(tǒng)和保護(hù)子系統(tǒng)功能之間的接口設(shè)計(jì);
5)自監(jiān)督功能的設(shè)計(jì);
6)防止共因故障的設(shè)計(jì)(包括多樣性和冗余的設(shè)計(jì));
7)定期測(cè)試的設(shè)計(jì);
8)預(yù)開(kāi)發(fā)軟件的配置;
9)軟件的可修改性和可驗(yàn)證性設(shè)計(jì);
10)安裝和運(yùn)行的軟件方面的設(shè)計(jì)。
V&V小組根據(jù)IEC 60880:2006條款7 Design and implementation 的要求對(duì)軟件設(shè)計(jì)過(guò)程進(jìn)行評(píng)審,著重于軟件設(shè)計(jì)說(shuō)明書(shū)與軟件需求說(shuō)明書(shū)的一致性。根據(jù)軟件設(shè)計(jì)說(shuō)明書(shū)撰寫(xiě)軟件單元測(cè)試驗(yàn)證規(guī)格書(shū)作為后續(xù)軟件單元測(cè)試驗(yàn)證的基準(zhǔn),結(jié)合軟件需求說(shuō)明書(shū)和軟件設(shè)計(jì)說(shuō)明書(shū)撰寫(xiě)集成測(cè)試驗(yàn)證規(guī)格書(shū)作為后續(xù)軟件集成測(cè)試驗(yàn)證的基準(zhǔn)。
該階段V&V產(chǎn)出見(jiàn)表1 的3.2.2軟件設(shè)計(jì)評(píng)審。
3.3.1 代碼靜態(tài)驗(yàn)證
軟件代碼靜態(tài)驗(yàn)證主要借助自動(dòng)測(cè)試工具和人工走查相結(jié)合的方式,以軟件設(shè)計(jì)評(píng)審環(huán)節(jié)產(chǎn)出的《核級(jí)廠(chǎng)用電保護(hù)裝置編程規(guī)范》為依據(jù),對(duì)軟件代碼進(jìn)行靜態(tài)驗(yàn)證,以查找源代碼中可能存在的缺陷和錯(cuò)誤[7]。
核級(jí)廠(chǎng)用電保護(hù)裝置軟件采用C語(yǔ)言實(shí)現(xiàn),《核級(jí)廠(chǎng)用電保護(hù)裝置編程規(guī)范》編寫(xiě)主要依據(jù)汽車(chē)產(chǎn)業(yè)軟件可靠性協(xié)會(huì)(MISRA)提出的 C 語(yǔ)言開(kāi)發(fā)標(biāo)準(zhǔn)MISRA-C: 2004,該標(biāo)準(zhǔn)的目是為了增進(jìn)嵌入式軟件的的全安性、可靠性、可讀性以及可移植性 ,并廣泛應(yīng)用于核電、航天、電信、國(guó)防、醫(yī)療設(shè)備、鐵路等系統(tǒng)的安全軟件領(lǐng)域[8]。
開(kāi)發(fā)人員通過(guò)軟件編程實(shí)現(xiàn)《核級(jí)廠(chǎng)用電保護(hù)裝置軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)》中的全部要求,并將軟件全部源代碼提供給V&V小組進(jìn)行代碼驗(yàn)證,V&V小組依據(jù)《核級(jí)廠(chǎng)用電保護(hù)裝置編程規(guī)范》以及IEC 60880:2006 條款7.1.2 Implementation of new software in general-purpose languages 的要求,首先采用自動(dòng)化測(cè)試工具,對(duì)核級(jí)廠(chǎng)用電保護(hù)裝置軟件進(jìn)行初步驗(yàn)證,并對(duì)自動(dòng)測(cè)試工具產(chǎn)出的分析結(jié)果進(jìn)行人工審核,然后對(duì)自動(dòng)化測(cè)試工具無(wú)法監(jiān)測(cè)到的軟件魯棒性、可維護(hù)性以及可追溯性等安全要求,采用人工方式進(jìn)行驗(yàn)證;最終形成軟件代碼靜態(tài)驗(yàn)證報(bào)告。
該階段V&V產(chǎn)出見(jiàn)表1 的3.3.1代碼靜態(tài)驗(yàn)證。
3.3.2 單元測(cè)試驗(yàn)證
核級(jí)廠(chǎng)用電保護(hù)裝置軟件單元測(cè)試驗(yàn)證的目的是為了充分驗(yàn)證軟件各子模塊的實(shí)現(xiàn)與軟件設(shè)計(jì)規(guī)格書(shū)規(guī)定的一致性,單元測(cè)試驗(yàn)證為白盒測(cè)試,為了保證軟件各功能模塊行為在核電廠(chǎng)任一工況運(yùn)行時(shí)行為的正確性,單元測(cè)試結(jié)果需要滿(mǎn)足入口覆蓋率、語(yǔ)句覆蓋率、路徑覆蓋率、MC/DC覆蓋率(修正條件判定覆蓋)四個(gè)覆蓋率分別達(dá)到100%的要求。
V&V小組依據(jù)軟件設(shè)計(jì)評(píng)審環(huán)節(jié)產(chǎn)出的《核級(jí)廠(chǎng)用電保護(hù)裝置軟件單元測(cè)試驗(yàn)證規(guī)格書(shū)》以及 IEC 60880:2006 條款8.2.3 Implementation verification為依據(jù)執(zhí)行單元測(cè)試。若在單元測(cè)試后對(duì)源程序的部分進(jìn)行修改,則需進(jìn)行回歸測(cè)試,遇到不滿(mǎn)足測(cè)試目標(biāo)的需寫(xiě)明違背理由,并記錄到測(cè)試報(bào)告中。
該階段V&V產(chǎn)出見(jiàn)表1的3.3.2單元測(cè)試驗(yàn)證。
3.3.3 集成測(cè)試驗(yàn)證
核級(jí)廠(chǎng)用電保護(hù)裝置系統(tǒng)集成是將經(jīng)驗(yàn)證的硬件和軟件模塊合成完整系統(tǒng)的過(guò)程,軟件集成驗(yàn)證是為了充分驗(yàn)證核級(jí)廠(chǎng)用電保護(hù)裝置軟件滿(mǎn)足軟件設(shè)計(jì)說(shuō)明書(shū)以及軟件需求說(shuō)明書(shū)的功能要求。軟件集成驗(yàn)證是白盒測(cè)試,著重于檢驗(yàn)軟件各模塊之間接口、軟件和硬件的接口以及模塊本身的功能。為證明所有模塊能夠正確地協(xié)同運(yùn)行,執(zhí)行預(yù)期功能,集成驗(yàn)證結(jié)果需要滿(mǎn)足入口覆蓋率、語(yǔ)句覆蓋率、路徑覆蓋率三個(gè)覆蓋率分別達(dá)到100%的要求。
V&V小組依據(jù)軟件設(shè)計(jì)評(píng)審環(huán)節(jié)產(chǎn)出的《核級(jí)廠(chǎng)用電保護(hù)裝置軟件集成測(cè)試驗(yàn)證規(guī)格書(shū)》以及IEC 60880:2006 條款 9 Software aspects of system integration為依據(jù)執(zhí)行集成測(cè)試,形成正式的測(cè)試輸入與結(jié)果說(shuō)明,并分析和記錄軟件集成測(cè)試所到達(dá)的程度,包括入口覆蓋率、語(yǔ)句覆蓋率和路徑覆蓋率。 分析方法包括自動(dòng)化工具執(zhí)行集成測(cè)試、人工審查和檢查。
該階段V&V產(chǎn)出見(jiàn)表1 的3.3.3集成測(cè)試驗(yàn)證。
核級(jí)廠(chǎng)用電保護(hù)裝置系統(tǒng)確認(rèn)要求使用裝置在正常運(yùn)行、預(yù)期運(yùn)行時(shí)間和事故工況中的靜態(tài)與動(dòng)態(tài)仿真的輸入信號(hào)對(duì)最終軟件的所有功能進(jìn)行測(cè)試,明確裝置功能與系統(tǒng)需求說(shuō)明書(shū)相一致,系統(tǒng)確認(rèn)是黑盒測(cè)試,重點(diǎn)測(cè)試核級(jí)廠(chǎng)用電保護(hù)裝置的功能、邊界、性能、用戶(hù)界面、安全性、安裝/拆卸等。
V&V小組依據(jù)軟件需求評(píng)審環(huán)節(jié)產(chǎn)出的《核級(jí)廠(chǎng)用電保護(hù)裝置確認(rèn)測(cè)試規(guī)格書(shū)》以及IEC 60880:2006 條款 10 Software aspects of system validation為依據(jù),采用系統(tǒng)的方法并輔以統(tǒng)計(jì)方法執(zhí)行系統(tǒng)確認(rèn)測(cè)試,驗(yàn)證核級(jí)廠(chǎng)用電保護(hù)裝置功能與需求說(shuō)明書(shū)的一致性。
該階段V&V產(chǎn)出見(jiàn)表1 的3.4系統(tǒng)確認(rèn)。
核電廠(chǎng)執(zhí)行安全功能的設(shè)備軟件必須經(jīng)過(guò)嚴(yán)格的V&V活動(dòng),以保證軟件運(yùn)行的可靠性和安全性,確保裝置最終產(chǎn)品與用戶(hù)要求的一致性,本文主要依托核級(jí)廠(chǎng)用電保護(hù)裝置軟件安全開(kāi)發(fā)和V&V整個(gè)過(guò)程,對(duì)核電廠(chǎng)安全軟件的開(kāi)發(fā)、V&V流程的方法,要求及產(chǎn)出等進(jìn)行了系統(tǒng)的總結(jié),期望為后續(xù)核電廠(chǎng)國(guó)產(chǎn)化設(shè)備安全軟件的開(kāi)發(fā)和V&V活動(dòng)提供有益參考。